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网页制作特殊效果用随机数
May 22 Javascript
理解Javascript_14_函数形式参数与arguments
Oct 20 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
Nov 23 Javascript
子窗体与父窗体传值示例js代码
Aug 01 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
Jun 08 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
Sep 05 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
Mar 02 Javascript
vue下跨域设置的相关介绍
Aug 26 Javascript
基于iScroll实现内容滚动效果
Mar 21 Javascript
vue如何通过id从列表页跳转到对应的详情页
May 01 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
Jan 18 Javascript
详解vue中axios请求的封装
Apr 08 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针对常规模板引擎中与CSS/JSON冲突的解决方法
2014/08/19 PHP
详解PHP swoole process的使用方法
2017/08/26 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
jquery如何判断某元素是否具备指定的样式
2013/11/05 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
2015/08/28 Javascript
jquery获取img的src值的简单实例
2016/05/17 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
JavaScript正则表达式简单实用实例
2017/06/23 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
基于vue.js无缝滚动效果
2018/01/25 Javascript
js+css实现红包雨效果
2018/07/12 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
ES6字符串的扩展实例
2020/12/21 Javascript
[46:23]OG vs EG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python for Informatics 第11章 正则表达式(一)
2016/04/21 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
Python并发:多线程与多进程的详解
2019/01/24 Python
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
财务主管自我鉴定
2014/01/17 职场文书
商场中秋节广播稿
2014/01/17 职场文书
党的群众路线教育实践活动个人承诺书
2014/05/22 职场文书
基层党员对照检查材料
2014/09/24 职场文书
工作经历证明书范文
2014/11/02 职场文书
门面房租房协议书
2014/12/01 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
浅谈Python基础之列表那些事儿
2021/05/11 Python
python百行代码实现汉服圈图片爬取
2021/11/23 Python