使用Javascript为样式切换器添加样式表的最佳方法
Best way to add a stylesheet using Javascript for style switcher?
我正在为我的网站开发样式切换器。我能够让它与.append()
和if and else
声明一起工作。这是代码:
.HTML
<select name="active_style" id="lol" class="dropdownselect" >
<option value="default" selected="selected">Default</option>
<option value="dark" selected="selected">Dark</option>
</select>
爪哇语
$(document).ready(function() {
var item = window.localStorage.getItem('active_style');
$('select[name=active_style]').val(item);
$('select[name=active_style]').change(function() {
window.localStorage.setItem('active_style', $(this).val());
});
if (item == "dark") {
$("head").append('<link rel="stylesheet" type="text/css" id="gdgt-dark" href="LINK");
};
});
现在,上面的代码有效。但是当我加载页面时,由于某种原因加载 CSS 需要一些时间,因此,用户可以看到轻量级(默认)CSS。有没有办法添加CSS,以便在加载页面之前加载它更快更好?
请帮忙。
不要为此使用 jQuery,它需要一些时间来加载。纯JS会快得多:
var head= document.getElementsByTagName('head')[0];
var link= document.createElement('link');
link.type= 'text/css';
link.rel= 'stylesheet';
link.href= 'style.css';
head.appendChild(link);
好吧,
你自己回答了你的问题。您希望异步加载 CSS 文件。
1)您可以使用Filament Group制造的loadCSSPlugin来做到这一点。这是文章的链接,解释了如何使用此插件(http://deanhume.com/home/blogpost/loading-css-asynchronously/7104)。
2)如果您不想使用此插件,还有另一种方法。您可以在加载函数中放置时间延迟并显示加载图标。(更改 CSS ...
3)您也可以使用AJAX加载CSS文件。在这里你可以找到如何(http://www.w3schools.com/jquery/jquery_ajax_load.asp)。您还可以在 ajax (http://deano.me/2012/09/jquery-load-css-with-ajax-all-browsers/) 的success
方法中进行后处理。
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 将样式表插入iframe
- 跟踪在页面加载时应用内联样式的JavaScript
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 有条件更新d3.js力图中节点的最佳方法
- 定义完全独立的样式信息
- W3C循环样式的JavaScript
- jQuery/JavaScript在线公文包表单-打印样式表
- 使用递归、Ramda.js和无点样式重构字符串的getPermutations()
- 为react组件传递道具的最佳方式
- FF和Chromium中CSS样式按钮的外观差异
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- HTML + JS:设置文本区域内容样式的最佳方式
- 将元素保留在 DIV 中而不继承页面样式的最佳方法
- 使用Javascript为样式切换器添加样式表的最佳方法
- 样式选择选项最佳做法
- 我在哪里可以找到一些关于最佳脚本/缩进样式的文档
- MVC / jquery生成括号样式图像或视图的最佳方式
- 变化的初始状态的最佳样式