JS/CSS module LazyLoad 之二
上一篇完成的JS的按需加载,这篇添加个新方法css,完成对CSS文件的加载。接口与JS相同,示例如下
LazyLoad.css(['a.css', 'b.css', 'c.css'], function(){ console.log('css模块加载完毕'); });
Firebug中效果如下,
上一篇对JS的加载实现是通过script元素,css则是通过link元素。而link元素仅IE6/7/8/9和Opera中支持其onreadystatechange事件,Firefox/Safari/Chrome既不支持onreadystatechange,也不支持onload。这里取了一个巧使用setTimeout延迟加载。
HTML如下
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>LazyLoad_0.2.js</title> <script src="https://files.cnblogs.com/snandy/LazyLoad_0.2.js"></script> <script type="text/javascript"> var ary = [ 'https://files.cnblogs.com/snandy/a.css', 'https://files.cnblogs.com/snandy/b.css', 'https://files.cnblogs.com/snandy/c.css' ]; function start(){ LazyLoad.css(ary, function(){ }); } </script> </head> <body> <button onclick="start()">Start loading</button> </body> </html>
页面初始时字体颜色,背景色等都是默认的。点击按钮“Start loading”后会载入a,b,c三个css文件。此时字体颜色变成红色,背景色为黄色。文字也居中了。