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 相关文章推荐
JQuery 入门实例1
Jun 25 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
Jun 08 Javascript
javascript模块化是什么及其优缺点介绍
Sep 02 Javascript
jquery attr()设置和获取属性值实例教程
Sep 25 Javascript
pc加载更多功能和移动端下拉刷新加载数据
Nov 07 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
Jan 20 Javascript
JavaScript事件方法(实例讲解)
Jun 27 Javascript
解决webpack -p压缩打包react报语法错误的方法
Jul 03 Javascript
Vue底层实现原理总结
Feb 17 Javascript
r.js来合并压缩css文件的示例
Apr 26 Javascript
JS实现的雪花飘落特效示例
Dec 03 Javascript
vue实现路由懒加载的3种方法示例
Sep 01 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
ini_set的用法介绍
2014/01/07 PHP
destoon公司主页模板风格的添加方法
2014/06/20 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
2016/11/14 PHP
php显示页码分页类的封装
2017/06/08 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
百度留言本js 大家可以参考下
2009/10/13 Javascript
jQuery的ready方法详解
2014/11/27 Javascript
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
H5移动端图片压缩上传开发流程
2016/11/09 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
2017/02/10 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
js验证账户名是否重复
2020/05/26 Javascript
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
Python实现配置文件备份的方法
2015/07/30 Python
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
在python中只选取列表中某一纵列的方法
2018/11/28 Python
Python 日期与时间转换的方法
2020/08/01 Python
python FTP编程基础入门
2021/02/27 Python
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
局域网标准
2016/09/10 面试题
前台接待的工作职责
2013/11/21 职场文书
商务专员岗位职责
2013/11/23 职场文书
大学生党员承诺书
2014/05/20 职场文书
市场营销工作计划书
2014/09/15 职场文书
2014年财政所工作总结
2014/11/22 职场文书
期末个人总结范文
2015/02/13 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
小学生组织委员竞选稿
2015/11/21 职场文书
德劲DE1108畅想
2021/04/22 无线电
OpenCV-Python实现油画效果的实例
2021/06/08 Python
如何正确理解python装饰器
2021/06/15 Python
Java spring单点登录系统
2021/09/04 Java/Android
千万级用户系统SQL调优实战分享
2022/03/03 MySQL