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 相关文章推荐
IE autocomplete internet explorer's autocomplete
Jun 30 Javascript
JavaScript 对象、函数和继承
Jul 07 Javascript
javascript中的delete使用详解
Apr 11 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
Jun 16 Javascript
详解jquery事件delegate()的使用方法
Jan 25 Javascript
简单实现js放大镜效果
Jul 24 Javascript
JavaScript实现数值自动增加动画
Dec 28 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
Aug 09 Javascript
Vue点击切换颜色的方法
Sep 13 Javascript
用js简单提供增删改查接口
May 12 Javascript
react 生命周期实例分析
May 18 Javascript
如何通过Proxy实现JSBridge模块化封装
Oct 22 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中的MVC模式运用技巧
2007/05/03 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
PHP连接MYSQL数据库的3种常用方法
2017/02/27 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
浅谈PHP之ThinkPHP框架使用详解
2020/07/21 PHP
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
正则表达式优化JSON字符串的技巧
2015/12/24 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
使用React实现轮播效果组件示例代码
2016/09/05 Javascript
让编辑器支持word复制黏贴、截屏的js代码
2016/10/17 Javascript
详解微信小程序开发之下拉刷新 上拉加载
2016/11/24 Javascript
浅谈js中function的参数默认值
2017/02/20 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
Python与shell的3种交互方式介绍
2015/04/11 Python
python中查看变量内存地址的方法
2015/05/05 Python
Python中%r和%s的详解及区别
2017/03/16 Python
Python中turtle作图示例
2017/11/15 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
pytorch自定义二值化网络层方式
2020/01/07 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
如何在python中处理配置文件代码实例
2020/09/27 Python
与世界上最好的跑步专业品牌合作:Fleet Feet
2019/03/22 全球购物
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
乌克兰鞋类购物网站:Eobuv.com.ua
2020/11/28 全球购物
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
常用UNIX 命令(Linux的常用命令)
2015/12/26 面试题
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
旅游安全责任协议书
2016/03/22 职场文书
教你使用vscode 搭建react-native开发环境
2021/07/07 Javascript