没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:吉炜炜|2024-10-29 16:05:19.223|阅读 15 次
概述:本文将指导您在 DHTMLX Scheduler 中实现动态主题切换,使其适应用户设置的首选系统主题。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
创建响应式、直观的 UI 需要适应用户对应用程序各个方面的偏好。其中一项可显著提升用户体验的热门功能是能够在明暗主题之间切换。它在日程安排日历等综合组件中尤其有用。
本文将指导您在 DHTMLX Scheduler 中实现动态主题切换,使其适应用户设置的首选系统主题。
在 DHTMLX Scheduler 中引入主题切换
DHTMLX Scheduler 是一个功能强大的 JavaScript 调度小部件,内置对不同主题的支持。在本指南中,我们将重点介绍如何在“深色”和默认“浅色”(露台)主题之间切换。可以使用setSkin()方法以编程方式在 DHTMLX Scheduler 中切换主题:
// Switch to the default light theme scheduler.setSkin("terrace"); // Switch to the dark theme scheduler.setSkin("dark");
这些命令允许动态更新调度程序的外观,提供无缝的用户体验。
识别浏览器的首选主题
现代浏览器可以通过CSS 媒体功能 prefers-color-scheme检测用户的首选主题。您可以利用此功能相应地调整我们的 Scheduler 主题:
const prefersDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
此代码检查用户是否将其偏好设置为暗模式,并返回布尔值。
把所有东西放在一起
让我们将主题检测与组件的初始化结合起来,以确保 Scheduler 在加载时满足用户的系统主题偏好。此外,您还将确保 Scheduler 动态适应这些偏好的变化:
window.addEventListener("DOMContentLoaded", function(){ // Initialize Scheduler plugins and configurations scheduler.plugins({ quick_info: true }); scheduler.config.cascade_event_display = true; // Function to dynamically update the Scheduler's theme function updateSchedulerTheme() { const prefersDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches; if (prefersDarkMode) { scheduler.setSkin("dark"); } else { scheduler.setSkin("terrace"); } } // Set the initial theme based on the user's preference updateSchedulerTheme(); // Listen for changes in the preferred color scheme and update the theme window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', updateSchedulerTheme); // Initialize the DHTMLX Scheduler scheduler.init('scheduler_here', new Date(2024, 3, 20), "week"); });
通过在DOMContentLoaded事件监听器中嵌入主题更新逻辑,您可以确保 Scheduler 不仅使用其配置和插件进行初始化,而且还会立即采用用户首选的主题。这种集成提供了主题之间的无缝过渡,从而增强了整体用户体验。因此,应用程序变得更加个性化和易于访问。
添加用于切换主题的 UI 控件
不要忘记让最终用户能够手动切换主题。您需要对代码进行一些调整才能做到这一点。您必须添加一个简单的控件,让最终用户可以从三个选项中选择一个主题:浏览器默认、浅色和深色。
您需要修改updateSchedulerTheme函数。为用户选择的主题添加一个参数。如果最终用户选择浅色或深色主题,您将直接应用该主题。如果在浏览器中选择了默认主题,请使用浏览器设置中的首选主题。
function updateSchedulerTheme(selectedTheme) { // We use "default" for the Browser Default option if (!selectedTheme || selectedTheme === 'default') { const prefersDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches; if (prefersDarkMode) { scheduler.setSkin("dark"); } else { scheduler.setSkin("terrace"); } } else { scheduler.setSkin(selectedTheme); } }
切换器控件的标记如下所示:
function updateSchedulerTheme(selectedTheme) { // We use "default" for the Browser Default option if (!selectedTheme || selectedTheme === 'default') { const prefersDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches; if (prefersDarkMode) { scheduler.setSkin("dark"); } else { scheduler.setSkin("terrace"); } } else { scheduler.setSkin(selectedTheme); } }
最后一步是将控件连接到updateSchedulerTheme函数。可以使用以下代码完成:
const themeSwitcher = document.querySelectorAll('input[name="theme"]'); themeSwitcher.forEach(radio => { radio.addEventListener('change', function() { updateSchedulerTheme(this.value); }); });
在此示例中,您可以看到一切是如何组合在一起的。
结论
在 Web 应用程序中集成响应式主题切换(如 DHTMLX Scheduler 所示)可使应用程序适应用户的偏好,从而提升用户体验。通过采用此类以用户为中心的功能,您可以强调 Web 应用程序的适应性和现代性,使其更具吸引力,更易于所有用户使用。
慧都21周年庆年终大促现已开启,DHTMXL全线产品参与优惠活动,联系了解活动详情。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn
DHTMLX 产品支持构建功能丰富的预订系统,从而简化针对不同行业的预约安排。Scheduler 组件丰富的功能(可自定义的日历视图、重复事件等)与 Booking 小部件现成的预订管理 UI 相结合,满足您构建现代化 Web 预订解决方案所需。
在 Excel 中删除重复行对于维护干净、准确和一致的数据集至关重要。在本篇博文中,我们将向您展示如何使用 Python 以编程方式删除 Excel 工作表中的重复行。
无论是零售、物流还是医疗保健,旋转条形码图像的功能都能增强不同应用的灵活性和适应性。使用Aspose.BarCode for Java,您可以轻松旋转条形码图像,确保它们无缝融入应用程序的设计和布局。
借助Aspose.Slides for Java,开发人员可以轻松编辑 PowerPoint 幻灯片(包括表格),以增强演示文稿的效果。
一个用于构建跨浏览器Web应用和移动应用的强大JavaScript UI库。
DHTMLX Scheduler一个类似于Google日历的强大JavaScript日程安排控件。
DHTMLX 超值正版套包DHTMLX旗下Diagram、Sute、Pivot、Gantt等插件正版授权合集
DHTMLX Gantt针对您的解决方案的交互式JavaScript / HTML5甘特图
DHTMLX PivotdhtmlxPivot数据透视表能更快地对数据进行计数、总计、平均和执行许多其他操作。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@wqylolg.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢