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 字符串与数组转换函数[不用split与join]
Dec 13 Javascript
跟我学习javascript的循环
Nov 18 Javascript
javascript 数组的定义和数组的长度
Jun 07 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
Jul 11 Javascript
Vue方法与事件处理器详解
Dec 01 Javascript
javascript 判断当前浏览器版本并判断ie版本
Feb 17 Javascript
Vue下拉框回显并默认选中随机问题
Sep 06 Javascript
详解Vue中watch对象内属性的方法
Feb 01 Javascript
Vue如何基于es6导入外部js文件
May 15 Javascript
小程序实现上传视频功能
Aug 18 Javascript
vue中实现点击变成全屏的多种方法
Sep 27 Javascript
JavaScript中arguments的使用方法详解
Dec 20 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官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
2015/12/21 PHP
PHP实现伪静态方法汇总
2016/01/13 PHP
php mysql 封装类实例代码
2016/09/18 PHP
简单谈谈PHP中的Reload操作
2016/12/12 PHP
javascript multibox 全选
2009/03/22 Javascript
js 返回时间戳所对应的具体时间
2010/07/20 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
jQuery之选项卡的简单实现
2014/02/28 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
vue 修改 data 数据问题并实时显示操作
2020/09/07 Javascript
Python中模拟enum枚举类型的5种方法分享
2014/11/22 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
django创建超级用户过程解析
2019/09/18 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
怎么解决pycharm license Acti的方法
2020/10/28 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
英语专业应届生求职信范文
2013/11/15 职场文书
项目副经理岗位职责
2013/12/30 职场文书
中文教师求职信
2014/02/22 职场文书
初中生评语大全
2014/04/24 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
商业门面租房协议书
2014/11/25 职场文书
给病人的慰问信
2015/03/23 职场文书
仰望星空观后感
2015/06/10 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
简单了解 MySQL 中相关的锁
2021/05/25 MySQL
浅谈MySQL函数
2021/10/05 MySQL