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 相关文章推荐
input 和 textarea 输入框最大文字限制的jquery插件
Oct 27 Javascript
关于删除时的提示处理(确定删除吗)
Nov 03 Javascript
js实现全屏漂浮广告移入光标停止移动
Dec 02 Javascript
Js冒泡事件详解及阻止示例
Mar 21 Javascript
js实现按一下删除键删除整个单词附demo
Sep 05 Javascript
js实现显示当前状态的导航效果代码
Aug 28 Javascript
基于BootStarp的Dailog
Apr 28 Javascript
基于JS实现bookstore静态页面的实例代码
Feb 22 Javascript
详解微信小程序中的页面代码中的模板的封装
Oct 12 Javascript
axios+Vue实现上传文件显示进度功能
Apr 14 Javascript
vux-scroller实现移动端上拉加载功能过程解析
Oct 08 Javascript
微信小程序开发打开另一个小程序的实现方法
May 17 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
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
php实现用户注册密码的crypt加密
2017/06/08 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
php+ajax实现商品对比功能示例
2019/04/13 PHP
jQuery UI Autocomplete 1.8.16 中文输入修正代码
2012/04/16 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
jquery如何判断表格同一列不同行input数据是否重复
2014/05/14 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
实例讲解React 组件
2020/07/07 Javascript
python+pandas分析nginx日志的实例
2018/04/28 Python
详解numpy的argmax的具体使用
2019/05/27 Python
调试Django时打印SQL语句的日志代码实例
2019/09/12 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
俄罗斯最大的消费电子连锁零售商:Mvideo
2017/06/25 全球购物
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
家得宝墨西哥官网:The Home Depot墨西哥
2019/11/18 全球购物
巴西购物网站:Submarino
2020/01/19 全球购物
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
成功的餐厅经营创业计划书
2014/01/15 职场文书
个性车贴标语
2014/06/24 职场文书
运动会演讲稿200字
2014/08/25 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
故意伤害罪辩护词
2015/05/21 职场文书
应收账款管理制度
2015/08/06 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
MySQL数据库必备之条件查询语句
2021/10/15 MySQL