博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript快速检测浏览器对CSS3特性的支持情况
阅读量:6947 次
发布时间:2019-06-27

本文共 1613 字,大约阅读时间需要 5 分钟。

  项目中使用动画效果在IE9下不支持,所以写了个判断浏览器是否支持动画的函数,进而扩展到下面判断浏览器支持任一特定CSS3属性的函数。

function supportAnimation(){    var domPrefixes = 'webkit Moz o ms Khtml'.split(' '),        len = domPrefixes.length,        htmlStyle = document.documentElement.style;    if(htmlStyle.animationName !== undefined) return true;    for(var i = 0; i < len; i++){        if(htmlStyle[domPrefixes[i] + "AnimationName"] !== undefined){            return true;        }    }    return false;}

1、背景:

  CSS3的出现让浏览器的表现更加的丰富多彩,表现冲击最大的就是动画了,在日常书写动画的时候,很有必要去事先判断浏览器是否支持,尤其是在写CSS3动画库的时候。比如transition的animation-play-state,就只有部分浏览器支持。

2、检测方法:

下面的方法可以使用脚本判断浏览器是否支持某一个CSS3属性:

/*  判断浏览器是否支持某一个CSS3属性   @param {String} 属性名称   @return {Boolean} true/false */function supportCss3(style) {     var prefix = ['webkit', 'Moz', 'ms', 'o'],         i,         humpString = [],         htmlStyle = document.documentElement.style,         _toHumb = function (string) {                     return string.replace(/-(\w)/g, function ($0, $1) {                         return $1.toUpperCase();                     });                 };     if(style in htmlStyle) return true;    for (i in prefix){        humpString.push(_toHumb(prefix[i] + '-' + style));    }    humpString.push(_toHumb(style));     for (i in humpString) {        if(humpString[i] in htmlStyle) return true;    }    return false; }

3、使用方法:

window.οnlοad=function(){    alert(supportCss3('animation-play-state'));}

 4、原理:

(1)浏览器所支持的属性的数组列表:

(2)检查属性text是否包含在数组中,如果是,直接返回true。

(3)检查各种前缀,比如webkit加上text,即webkitTransition,如果包含在style中,返回true。

值得注意的是在CSS中属性名为:-webkit-transition,但是在DOM的style中 ,却是对应webkitTransition。

 

转载地址:http://xrhnl.baihongyu.com/

你可能感兴趣的文章
思科HyperFlex系统提供最完整的新一代超融合解决方案
查看>>
中国电信明确物联网技术路标:7月启动Cat1
查看>>
市场需求持续增长,云计算或将成为资本市场下一个焦点
查看>>
《 FreeSWITCH权威指南》——3.6 小结
查看>>
JMeter的基本介绍和入门(1)
查看>>
网络电话让毕业季不再有“情感真空”
查看>>
疑似微信企业版曝光 网友留言称“心疼阿里”
查看>>
高通每天提供超过一百万颗芯片 助力物联网发展
查看>>
Python Selenium的js扩展实现
查看>>
全球最大规模窄带物联网智慧水务商用项目在福州启动
查看>>
iDTRONIC推出RFID平板和手持移动设备
查看>>
圆通速递率先推出隐形面单 为个人信息安全再添安全锁
查看>>
当200亿个物联网设备同时产生数据 是时候重新认识传感器了
查看>>
深度专访:深谈的故事 (LinuxDeepin)
查看>>
《构建高可用Linux服务器 第3版》—— 1.2 全面了解Linux服务器
查看>>
《开放复杂智能系统——基础、概念、分析、设计与实施》—第1章1.5节 小结...
查看>>
《测试驱动数据库开发》——2.4 增量构建
查看>>
网站图片优化你需要知道的地方
查看>>
《计算机科学概论》—第3章3.4节音频数据表示法
查看>>
深入理解Java内存模型(一)——基础
查看>>