JavaScript判断浏览器对CSS3属性是否支持的多种方法


Posted in Javascript onNovember 13, 2016

前言

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

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

第一种:javascript比较常用下面这个代码:

var support_css3 = (function() {
 var div = document.createElement('div'),
  vendors = 'Ms O Moz Webkit'.split(' '),
  len = vendors.length;
 
 return function(prop) {
  if ( prop in div.style ) return true;
 
  prop = prop.replace(/^[a-z]/, function(val) {
   return val.toUpperCase();
  });
 
  while(len--) {
   if ( vendors[len] + prop in div.style ) {
   return true;
   } 
  }
  return false;
 };
})();

使用:检查是否支持transform

if(support_css3('transform')){

}else{

}

第二:JavaScript方法2:不支持ie6

function isPropertySupported(property)
{
 return property in document.body.style;
}

使用:

记得上面的属性,要用backgroundColor替换background-color

if(isPropertySupported('opacity')){

}else{

}

第三:CSS.supports

CSS.suports是CSS3 @support 规则中比较特别的一个,每一个支持@support规则的都支持下面这个函数(不推荐这种方法,毕竟@support也有兼容性,某些浏览器可能支持CSS3属性中的一个,但却不支持@support

//pass the same string as you pass to the @supports rule
if(CSS.supports("(background-color: red) and (color:white"))
{
 document.body.style.color = "white";
 document.body.style.backgroundColor = "red";
}

最后再分享一个判断浏览器是否支持某些HTML5属性的函数,比如input属性是否支持palaceholder.

function elementSupportsAttribute(element, attribute) {
 var test = document.createElement(element);
 if (attribute in test) {
 return true;
 } else {
 return false;
 }
};

用法:

if (elementSupportsAttribute("textarea", "placeholder") {

} else {
 // fallback
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
Nov 04 Javascript
读jQuery之五(取DOM元素)
Jun 20 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
Oct 11 Javascript
如何解决Jquery库及其他库之间的$命名冲突
Sep 15 Javascript
js实现Form栏显示全格式时间时钟效果代码
Aug 19 Javascript
JavaScript函数中关于valueOf和toString的理解
Jun 14 Javascript
轻松掌握JavaScript状态模式
Sep 07 Javascript
Angular.js中$resource高大上的数据交互详解
Jul 30 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
Sep 03 Javascript
Vue实现数字输入框中分割手机号码的示例
Oct 10 Javascript
jQuery发请求传输中文参数乱码问题的解决方案
May 22 jQuery
浅谈Layui的eleTree树式选择器使用方法
Sep 25 Javascript
JS实现的几个常用算法
Nov 12 #Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
Nov 12 #Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
Nov 12 #Javascript
Angular学习笔记之angular的$filter服务浅析
Nov 12 #Javascript
使用JS代码实现点击按钮下载文件
Nov 12 #Javascript
JavaScript中浅讲ajax图文详解
Nov 11 #Javascript
javascript 实现动态侧边栏实例详解
Nov 11 #Javascript
You might like
比较好用的PHP防注入漏洞过滤函数代码
2012/04/11 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
PHP类的声明与实例化及构造方法与析构方法详解
2016/01/26 PHP
Yii视图操作之自定义分页实现方法
2016/07/14 PHP
CakePHP框架Session设置方法分析
2017/02/23 PHP
微信公众平台开发教程②微信端分享功能图文详解
2019/04/10 PHP
PHP内存溢出优化代码详解
2021/02/26 PHP
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
js函数与php函数的区别实例浅析
2015/01/12 Javascript
jQuery formValidator表单验证
2016/01/07 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
2018/01/17 Javascript
讲解vue-router之什么是动态路由
2018/05/28 Javascript
Layui 数据表格批量删除和多条件搜索的实例
2019/09/04 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
python matplotlib 绘图 和 dpi对应关系详解
2020/03/14 Python
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
员工培训心得体会
2013/12/30 职场文书
微信营销策划方案
2014/02/24 职场文书
机械生产实习心得体会
2016/01/22 职场文书
python 经纬度求两点距离、三点面积操作
2021/06/03 Python
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL
浅谈redis的过期时间设置和过期删除机制
2022/03/18 MySQL
Java完整实现记事本代码
2022/06/16 Java/Android
JavaScript中10个Reduce常用场景技巧
2022/06/21 Javascript