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 ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
Apr 01 Javascript
url 编码 js url传参中文乱码解决方案
Apr 11 Javascript
JavaScript执行效率与性能提升方案
Dec 21 Javascript
JQuery插件jcarousellite的参数中文说明
May 11 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
May 25 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
Dec 24 Javascript
bootstrap侧边栏圆点导航
Jan 11 Javascript
js实现五星评价功能
Mar 08 Javascript
JavaScript表单验证实现代码
May 22 Javascript
浅谈在koa2中实现页面渲染的全局数据
Oct 09 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
Jun 01 Javascript
react使用antd表单赋值,用于修改弹框的操作
Oct 29 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面向对象全攻略 (十五) 多态的应用
2009/09/30 PHP
php array_filter除去数组中的空字符元素
2020/06/21 PHP
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
Laravel 6.2 中添加了可调用容器对象的方法
2019/10/22 PHP
jQuery之按钮组件的深入解析
2013/06/19 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
jQuery中:reset选择器用法实例
2015/01/04 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
使用JS和canvas实现gif动图的停止和播放代码
2017/09/01 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
2017/11/07 Javascript
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
python和ruby,我选谁?
2017/09/13 Python
python逆向入门教程
2018/01/15 Python
python中的变量如何开辟内存
2018/06/26 Python
pycharm创建一个python包方法图解
2019/04/10 Python
详解python uiautomator2 watcher的使用方法
2019/09/09 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
浅谈Python中re.match()和re.search()的使用及区别
2020/04/14 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
2020/06/08 Python
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
应聘医学检验人员自荐信
2013/09/27 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
学校门卫岗位职责
2014/03/16 职场文书
农村优秀教师事迹材料
2014/08/27 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
法制教育主题班会
2015/08/13 职场文书