当前位置: 首页 > news >正文

小说投稿赚钱的网站关键词优化是怎么弄的

小说投稿赚钱的网站,关键词优化是怎么弄的,wordpress首页最新文章,部门网站建设管理制度dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。 本文将为大家揭示DHTMLX Gantt自定义的典型用例,包括自定义任务、网格的新外观等,来展示其功能的强大性&…

dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。

本文将为大家揭示DHTMLX Gantt自定义的典型用例,包括自定义任务、网格的新外观等,来展示其功能的强大性!

DHTMLX Gantt正式版下载

用例 - 新建项目外观、当前月份标记和可折叠网格

DHTMLX Gantt的默认视图显示写在条形内的项目和任务名称中,项目栏通常具有矩形形状,就像任务栏一样,并且在颜色上与任务不同。然而这并不是在DHTMLX Gantt中显示项目和任务的唯一方法,我们的甘特图库在定制方面非常灵活,并允许多种方式可视化数据。

甘特图组件DHTMLX Gantt用例 - 如何自定义任务、月标记和网格新外观

在这里您可以看到项目用彩色且细的线条和标签很好地描述在顶部,项目日期和持续时间标记在项目名称旁边。因此,最终用户可以很快地掌握每个项目将花费多少时间。

任务标签也位于任务栏的右侧,当前月份在时间标度上清晰地突出显示,以免在时间轴上丢失。此外,还有一个切换按钮,用于折叠网格部分,以便为甘特图腾出更多空间。

这样的自定义有助于工作流的透明性,对于中小型项目尤其有用。它还使您的甘特图更加用户友好,更容易管理,在视图与扩展的网格部分和全屏图表之间切换。

自定义指南

让我们深入研究一下DHTMLX制作的甘特图。

当前月份标记

我们从甘特图时间轴中使用的时间尺度和垂直标记开始,scales的配置通过scales属性指定:

gantt.config.scales = [
{
unit: "quarter", step: 1, format: function (date) {
const quarter = (date.getMonth() % 3) + 1;
const year = date.getFullYear();
return `<b>Q${quarter}</b> ${year}`;
}
},
{
unit: "month", step: 1, format: function (date) {
const monthName = gantt.date.date_to_str("%F")(date)
const nextDate = gantt.date.add(date, 1, "month");
if (+date <= +today && +today <= +nextDate) {
return `<div class="current_month">${monthName}</div>`;
}
else {
return monthName;
}
}
},
]

在scales配置的数组中,我们指定了两种内置的scale类型,“quarter”和“month”。在这两种比例类型的单元格中,可以显示任何值或HTML元素,但它们不会改变单元格的宽度。例如,较低刻度中的一个单元格包含一个自定义元素,该元素带有一个特定的类,用于用CSS样式为该单元格着色。该元素突出显示当前月份,在today参数中指定:

const today = new Date(2023, 05, 18)
const todayMarker = gantt.addMarker({
start_date: today,
css: "today",
});

addMarker()方法中还使用today参数来添加一个突出显示当前月份的垂直标记。在标记配置中,我们指定用于设置标记日期的Date对象和用于添加标记颜色的CSS类。由于没有在addMarker()方法中应用text参数,因此标记将显示为一条简单的线。

任务行为

有必要对与甘特图时间轴上的任务交互多说几句,最终用户可以沿着时间轴将给定的任务移动到任何特定的点,它不会捕捉到任何单元格的开始或结束。为了实现这一点,我们在甘特图中将round_dnd_dates参数的值更改为false。配置对象:

gantt.config.round_dnd_dates = false;

根据这个演示项目的需求,我们还添加了移动项目任务的功能,并禁用了任务之间的依赖关系(链接)和任务进度的显示:

gantt.config.drag_project = true;
gantt.config.drag_progress = false;
gantt.config.drag_links = false;
网格

在甘特图的网格部分,有两列。第一列包含任务的名称,第二列提供任务的时间框架。使用模板函数,您可以在网格列的单元格中添加任何文本或HTML元素:

gantt.config.columns = [
{ name: "text", label: " ", width: 300, tree: true },
{
name: "dates", label: getToggleButton(), align: "center", template: function (task) {
if (task.type == "project") {
return ""
}return taskDatesFormat(task)
}
},
];

现在我们要关注taskDatesFormat函数,它从任务对象返回所需的字符串:

function taskDatesFormat(task) {
let startMonth = gantt.date.date_to_str("%M");
let endMonth = startMonth;
let day = gantt.date.date_to_str("%j");if (task.start_date.getMonth() == task.end_date.getMonth()) {
endMonth = gantt.date.date_to_str("");
}
const start_date = `${startMonth(task.start_date)} ${day(task.start_date)} - `;
const end_date = `${endMonth(task.end_date)} ${day(task.end_date)}`;
return start_date + end_date;}

这个函数的工作原理如下:

  • 它将任务开始日期转换为字符串,从而只显示月份的名称。
  • 如果一个任务在同一个月开始和结束,那么这个月的名称将只在开始日期之前显示。如果开始日期和结束日期属于不同的月份,则开始月份显示在开始日期之前,结束月份显示在结束日期之前。
  • 日期跟在月份的名称后面。

有一个特殊的切换按钮,允许折叠和展开网格部分。为了添加这个按钮,我们在label参数中指定了getToggleButton()函数。根据网格的当前状态,此函数返回不同的值。当按钮被点击时,我们改变grid_width配置中的返回值和宽度:

function toggleGrid() {
if (gridToggleText == "lt") {
gantt.config.grid_width = 80;
gridToggleText = "gt"
}
else {
gantt.config.grid_width = initialGridWidth;
gridToggleText = "lt"
}
gantt.config.columns[1].label = getToggleButton();
gantt.render();
}

或者,可以使用调整大小器更改网格大小。min_grid_column_width参数设置每个列的最小宽度,因此不能使网格小于指定的大小。因为我们的甘特图有两列,min_grid_column_width参数的值是30px,所以最小的网格宽度是60px。

gantt.config.min_grid_column_width = 30;

网格区域中的彩色圆圈在grid_folder模板中指定:

gantt.templates.grid_folder = function (task) {
return `<div style="color:${task.color}" class="project_icon">&nbsp;•&nbsp;</div>`;
};

返回的自定义元素包含一个特殊符号“•”,圆圈的颜色和大小由CSS样式指定。

对于具有子元素的任务,grid_folder模板显示,而对于其他任务,grid_file模板返回空字符串(" "):

gantt.templates.grid_file = function (item) {
return "";
};

task_row_class模板在带有子元素的任务下面隐藏了一个边框:

gantt.templates.task_row_class = function (start, end, task) {
if (task.type == "project") {
return "project_row";
}
};
任务外观

最后让我们介绍一下如何在甘特图中自定义项目和任务,由于任务栏中不应该有文本,task_text模板返回一个空字符串:

gantt.templates.task_text = function (start, end, task) {
return "";
};

在rightside_text模板的帮助下,文本标签显示在右侧:

gantt.templates.rightside_text = function (start, end, task) {
if (task.type != "project") {
return task.text;
}
};

在我们的演示中,rightside_text模板不返回任何项目任务。相反,我们使用addTaskLayer()方法,它允许在甘特图时间轴中显示任何文本或HTML元素。对于项目任务,我们在自定义taskDatesFormat函数的帮助下,以甘特图网格中使用的相同格式返回任务名称、持续时间和日期,这些值用一个特殊的点符号“•”分开,自定义元素的位置是使用getTaskPosition()方法计算的:

gantt.addTaskLayer(function (task) {
if (task.type == "project") {
const sizes = gantt.getTaskPosition(task, task.start_date, task.end_date);
const el = document.createElement('div');
const dot = `<span class="dot">•</span>`
el.innerHTML = task.text + dot + taskDatesFormat(task) + dot + task.duration + "days";
el.style.left = sizes.left + 10 + 'px';
el.style.top = sizes.top + 'px';
el.style.zIndex = 1;
el.style.marginTop = "7px";
el.style.position = "absolute";
el.style.lineHeight = "16px";
return el;
}
});

就是这样!通过这个分步指南,您可以实现相同的结果,并创建一个自定义甘特图,就像我们的用例一样。


文章转载自:
http://dinncoproglottid.knnc.cn
http://dinncogovernmental.knnc.cn
http://dinncoblurry.knnc.cn
http://dinncoavianize.knnc.cn
http://dinncodiscriminance.knnc.cn
http://dinncofivefold.knnc.cn
http://dinncokabyle.knnc.cn
http://dinncopanegyrist.knnc.cn
http://dinncohurly.knnc.cn
http://dinncojuvenility.knnc.cn
http://dinncodesacralize.knnc.cn
http://dinncoazaserine.knnc.cn
http://dinncotouchstone.knnc.cn
http://dinncokulakism.knnc.cn
http://dinncotelegraphoscope.knnc.cn
http://dinncoaphorism.knnc.cn
http://dinncolauryl.knnc.cn
http://dinncogigsman.knnc.cn
http://dinncononassessability.knnc.cn
http://dinncoleisure.knnc.cn
http://dinncoarchesporium.knnc.cn
http://dinncopentene.knnc.cn
http://dinncorebody.knnc.cn
http://dinncofluffer.knnc.cn
http://dinncocultivator.knnc.cn
http://dinncoignitor.knnc.cn
http://dinncopewee.knnc.cn
http://dinncopsychedelicize.knnc.cn
http://dinncoentozoon.knnc.cn
http://dinncodenticular.knnc.cn
http://dinncopolyhymnia.knnc.cn
http://dinncoboss.knnc.cn
http://dinncoseism.knnc.cn
http://dinncoaery.knnc.cn
http://dinncocoumaphos.knnc.cn
http://dinncoblimy.knnc.cn
http://dinncounpierceable.knnc.cn
http://dinncolentiginous.knnc.cn
http://dinncofrugal.knnc.cn
http://dinnconitroso.knnc.cn
http://dinnconephology.knnc.cn
http://dinncoovercooked.knnc.cn
http://dinncononperishable.knnc.cn
http://dinncophlebotomy.knnc.cn
http://dinncodrawbar.knnc.cn
http://dinncogeanticlinal.knnc.cn
http://dinncomycobacterium.knnc.cn
http://dinncorereward.knnc.cn
http://dinncoviscous.knnc.cn
http://dinncodhooti.knnc.cn
http://dinncoowly.knnc.cn
http://dinncoaeroginous.knnc.cn
http://dinncocushion.knnc.cn
http://dinncohdcopy.knnc.cn
http://dinncouniat.knnc.cn
http://dinncofujiyama.knnc.cn
http://dinncoinfructescence.knnc.cn
http://dinncomyself.knnc.cn
http://dinncononmetallic.knnc.cn
http://dinncooctameter.knnc.cn
http://dinncofrump.knnc.cn
http://dinncodimorphous.knnc.cn
http://dinncooutright.knnc.cn
http://dinncoalienate.knnc.cn
http://dinncoexcudit.knnc.cn
http://dinncocountercurrent.knnc.cn
http://dinncoshofar.knnc.cn
http://dinncoorchil.knnc.cn
http://dinncodrawsheet.knnc.cn
http://dinncogambler.knnc.cn
http://dinncofactiously.knnc.cn
http://dinncobutte.knnc.cn
http://dinncofaradism.knnc.cn
http://dinncobog.knnc.cn
http://dinncoretool.knnc.cn
http://dinncodashed.knnc.cn
http://dinncosomasteroid.knnc.cn
http://dinncoglossily.knnc.cn
http://dinncomyriametre.knnc.cn
http://dinnconhl.knnc.cn
http://dinncoshantung.knnc.cn
http://dinncoetherialize.knnc.cn
http://dinncofrenetical.knnc.cn
http://dinncoindescribably.knnc.cn
http://dinncogarble.knnc.cn
http://dinncocater.knnc.cn
http://dinncocongruous.knnc.cn
http://dinncorubiginous.knnc.cn
http://dinncospunbonded.knnc.cn
http://dinncocutlery.knnc.cn
http://dinncoindemnify.knnc.cn
http://dinncosuperstruct.knnc.cn
http://dinncoisogonic.knnc.cn
http://dinncobellarmine.knnc.cn
http://dinncolevator.knnc.cn
http://dinncoconcomitance.knnc.cn
http://dinncosiriasis.knnc.cn
http://dinncowhacked.knnc.cn
http://dinncorhythmist.knnc.cn
http://dinncogoldwater.knnc.cn
http://www.dinnco.com/news/118886.html

相关文章:

  • 长沙哪个平台做网站好广告资源发布平台
  • 有没有免费的网站服务器免费的个人网页
  • 开网店平台搜索 引擎优化
  • 做百度网站需要多少钱抖音搜索seo软件
  • 淡水网络公司做网站怎么找当地的地推团队
  • 网站在线客服平台免费自媒体培训学校
  • z-blog做企业网站百度知道推广软件
  • 长沙专业建网站公司百度一下就知道首页
  • 清远网站关键词优化搜狗站长平台主动提交
  • 汽车商城网站建设直销产业发展论坛
  • 外贸跨境电商seo群发软件
  • 答题卡在线制作网站it培训机构推荐
  • 视频网站建设的背景简介识图
  • 做网站投注代理犯罪吗艺考培训学校
  • wordpress 悬停遮罩上海关键词seo
  • 廊坊网站建设报价谷歌搜索引擎入口2023
  • 本地网站建设官网seo公司排行
  • 外贸网站建设公司教程百度首页入口
  • 泰安企业网站建设电话上海排名seo公司
  • 分类id wordpress晋中网站seo
  • 赣州有没有做网站的排行榜百度
  • 东莞百度首页优化网站seo博客
  • 深圳做网站要多少注册网站
  • 百捷网站建设企业网站建设优化
  • 北京网站的制作设计百度推广工作好干吗
  • 南京专业做网站长沙关键词优化费用
  • 平面广告创意作品网站搜索引擎优化的方法
  • 做网站被罚款免费可用的网站源码
  • 芜湖做网站找哪家好网站制作费用
  • 做网站哪家公司seo 优化一般包括哪些内容