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与Firefox在JavaScript上的7个不同句法分享
Oct 30 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
Apr 27 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
Jun 01 Javascript
jquery-tips悬浮提示插件分享
Jul 31 Javascript
举例讲解如何判断JavaScript中对象的类型
Apr 22 Javascript
jQuery EasyUI常用数据验证汇总
Sep 18 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
Nov 29 Javascript
ES6新特性之模块Module用法详解
Apr 01 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
Aug 07 Javascript
微信小程序返回上一页传参并刷新过程解析
Dec 13 Javascript
vue中使用vue-print.js实现多页打印
Mar 05 Javascript
vue-cli3使用mock数据的方法分析
Mar 16 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
一个改进的UBB类
2006/10/09 PHP
使用PHP批量生成随机用户名
2008/07/10 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
2011/03/31 PHP
微信支付开发交易通知实例
2016/07/12 PHP
php引用和拷贝的区别知识点总结
2019/09/23 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
jQuery EasyUI API 中文文档 - Parser 解析器
2011/09/29 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
Javascript动态创建div的方法
2015/02/09 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
2016/06/27 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
webpack中使用iconfont字体图标的方法
2018/02/22 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
浅谈js闭包理解
2019/04/01 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
nodejs中的异步编程知识点详解
2021/01/17 NodeJs
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
python类和继承用法实例
2015/07/07 Python
深入理解python中的select模块
2017/04/23 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
python 计算一个字符串中所有数字的和实例
2019/06/11 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
英国运动风奢侈品购物网站:Maison De Fashion
2020/08/28 全球购物
宝宝周岁宴答谢词
2014/01/26 职场文书
楼面部长岗位职责范本
2014/02/14 职场文书
投标承诺书范本
2014/03/27 职场文书
大学生党性分析材料
2014/12/19 职场文书
入党现实表现材料
2014/12/23 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS