判断浏览器是否支持CSS3 已经初步探索JS 惰性加载

分享一个判断浏览器是否支持的函数,然后有牵扯到了一个懒性加载的概念。

var iscss3=(function(){
            var _style=document.createElement("div").style;
            return 'transition' in _style||'mozTransition' in _style||'webkitTransition' in _style;
        })()

什么是惰性加载呢,像我们JS和CSS一样 很多浏览器属性和方法都不兼容,需要用到大量的分支来兼容。

比如说常用事件绑定:

function addEvent (type, element, fun) {
    if (element.addEventListener) {
        element.addEventListener(type, fun, false);
    }
    else if(element.attachEvent){
        element.attachEvent('on' + type, fun);
    }
    else{
        element['on' + type] = fun;
    }
}

每次我们运行它都要进行分支判断,这样针对性能来说就不高了。我们如果换成这样,以匿名函数的方式结合函数表达式。就懒惰了。

var addEvent = (function () {
    if (document.addEventListener) {
        return function (type, element, fun) {
            element.addEventListener(type, fun, false);
        }
    }
    else if (document.attachEvent) {
        return function (type, element, fun) {
            element.attachEvent('on' + type, fun);
        }
    }
    else {
        return function (type, element, fun) {
            element['on' + type] = fun;
        }
    }
})();

这样的话,只要执行一次,就会把正确的函数赋值给变量。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-04 16:22:41

判断浏览器是否支持CSS3 已经初步探索JS 惰性加载的相关文章

document.documentElement.style判断浏览器是否支持Css3属性

1.document.documentElement.style 属性定义了当前浏览器支持的所有Css属性 包括带前缀的和不带前缀的 例如:animation,webkitAnimation,msAnimation等 2.判断浏览器是否支持制定的css属性 function support(cssName) { var htmlStyle = document.documentElement.style; if (cssName in htmlStyle) return true; return

判断浏览器是否支持某个css3属性的javascript方法

判断浏览器是否支持css3某个属性的方法: /** * 判断浏览器是否支持某一个CSS3属性 * @param {String} 属性名称 * @return {Boolean} true/false * @version 1.0 * @author ydr.me * 2014年4月4日14:47:19 */   function supportCss3(style) { var prefix = ['webkit', 'Moz', 'ms', 'o'], i, humpString = [],

现代浏览器JS异步加载方案

好,不说废话,要凌晨了我快点写完,关于JS加载阻塞之类的不做科普,本文也不讨论IE9以下的浏览器. headjs:"异步.并行加载并按你的顺序执行",这个是最符合广大码农需求的,只是它越来越臃肿,连CSS Respone什么的都加进去了,没必要那么复杂 Loadjs:今天刚刚出现在OSC首页本人疯狂测试后发现,如果需要并行加载就是乱序的(哪个JS先下载完就先执行谁),如果要顺序下载就不能并发,经测试是下载一个执行一个,每个JS文件之间有10ms的空隙(JS下载和加载时所有渲染操作都要暂

JS判断浏览器是否支持某一个CSS3属性的最佳实践

css3的出现让浏览器的表现更加的丰富多彩,表现冲击最大的就是动画了,在日常书写动画的时候,很有必要去事先判断浏览器是否支持,尤其是在写CSS3动画库的时候.比如transition的animation-play-state,就只有部分浏览器支持. 检测方法 下面的方法可以使用脚本判断浏览器是否支持某一个CSS3属性: /**2017-01-05 * 判断浏览器是否支持某一个CSS3属性 * @param {String} 属性名称 * @return {Boolean} true/false

JS判断浏览器是否支持某一个CSS3属性

1.引子 css3的出现让浏览器的表现更加的丰富多彩,表现冲击最大的就是动画了,在日常书写动画的时候,很有必要去事先判断浏览器是否支持,尤其是在写CSS3动画库的时候.比如transition的animation-play-state,就只有部分浏览器支持. 2.检测方法 下面的方法可以使用脚本判断浏览器是否支持某一个CSS3属性: Js代码   /** * 判断浏览器是否支持某一个CSS3属性 * @param {String} 属性名称 * @return {Boolean} true/fa

HTML5:判断浏览器是否支持date类型

在某些情况下,我们需要判断当前浏览器是否支持date类型,如果支持的话,可以让用户用原生的datepicker来选取日期.如果不支持,则我们需要用自己实现的datepicker类库,来提供给用户. 在这里,我们使用Modernizr来实现这一功能,代码如下: 1 if (!Modernizr.inputtypes.date) { 2 $('input[type=date]').datepicker({ 3 }); 4 } HTML5:判断浏览器是否支持date类型,布布扣,bubuko.com

IE8及低版本浏览器不支持CSS3 media queries的解决方法

问题:IE8及其以下低版本IE浏览器在缩小窗口时,UI没有按照相应的要求显示窗口缩小时对应的布局:其他浏览器正常. 定位过程: 其实开始拿到问题时是无从下手,不知所以然,根本就没听说还有media这个CSS属性,就更不知道它的功能了.但是对于解决UI问题,有自己的一套思路,就是首先要思考为什么会错误以及为什么没有错误两个方面,然后针对这两个方面的疑问把html或js或css文件简化再简化,修改再修改,查看UI变化,从而缩小问题范围,最后找出问题根源. 如此我就想为什么其他浏览器界面布局没有问题呢

判断浏览器是否支持javascript脚本语言及处理方法

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getS

判断浏览器是否支持FileReader

1.js代码: //判断浏览器是否支持FileReader if (typeof FileReader == "undefined") { document.write("您的浏览器不支持FileReader"); } else { document.write("您的浏览器支持FileReader"); } /** * 测试结果说明:Google,FF,IE都支持FileReader * 但是IE9及以下浏览器不支持FileReader */