一段非常简单的js判断浏览器的内核


Posted in Javascript onAugust 17, 2014

大家应该还记得JavaScript行内样式怎么写吧?(看来我是废话了!)

在前端开发过程中,有时我们需要判断浏览器的内核前缀,对不同的浏览器做出不同的处理,因此我们可以这么做。

alert(element.style.webkitTransition); 这个是获取以webkit为前缀的transition值。但如果不是webkit为前缀的浏览器,则会返回undefined。而我们可以将所有的内核前缀给枚举出来,然后获取其某个CSS的值,即可做出判断。代码如下:

function getVendorPrefix() {
  // 使用body是为了避免在还需要传入元素
  var body = document.body || document.documentElement,
    style = body.style,
    vendor = ['webkit', 'khtml', 'moz', 'ms', 'o'],
    i = 0;

  while (i < vendor.length) {
    // 此处进行判断是否有对应的内核前缀
    if (typeof style[vendor[i] + 'Transition'] === 'string') {
      return vendor[i];
    }
    i++;
  }
}

然后只需要调用getVendorPrefix()即可知道浏览器的内核前缀,如果返回undefined则证明浏览器不支持CSS3属性,即没有内核前缀。

大家应该知道,我们在写代码的过程中,能写CSS就不写JavaScritp,毕竟CSS的性能会比自己写JS的高一些,因此,我们在开发一些实际应该中,会用到transition,比如一个简单的图片轮播,我们可以使用CSS3的transition,也可以使用jQuery的animate或自己写原生,但CSS3的性能肯定会高一些,因此我们可以写两套代码,对于支持CSS3的浏览器则使用animation,而不支持的则使用计时器或animate。这样的话能够获取更好的用户体验。

以上是看jquery.slides.js的插件心得,如有更好的方法,请一定告知笔者。

Javascript 相关文章推荐
ajax处理php返回json数据的实例代码
Jan 24 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
Jun 21 Javascript
jquery 通过name快速取值示例
Jan 24 Javascript
原生js配合cookie制作保存路径的拖拽
Dec 29 Javascript
js获取时间精确到秒(年月日)
Mar 16 Javascript
Bootstrap每天必学之警告框插件
Apr 26 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
Oct 30 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
Dec 23 Javascript
vue打包后显示空白正确处理方法
Nov 01 Javascript
webpack 样式加载的实现原理
Jun 12 Javascript
VUE实现密码验证与提示功能
Oct 18 Javascript
vue获取form表单的值示例
Oct 29 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
Aug 16 #Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
Aug 16 #Javascript
Node.js安装教程和NPM包管理器使用详解
Aug 16 #Javascript
Node.js中的事件驱动编程详解
Aug 16 #Javascript
Node.js文件操作详解
Aug 16 #Javascript
Node.js中使用Buffer编码、解码二进制数据详解
Aug 16 #Javascript
Node.js中创建和管理外部进程详解
Aug 16 #Javascript
You might like
phpmyadmin的#1251问题
2006/11/25 PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
2010/08/21 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
PHP自动识别字符集并完成转码详解
2013/08/02 PHP
smarty自定义函数用法示例
2016/05/20 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
2018/10/14 PHP
PHP fclose函数用法总结
2019/02/15 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
Jquery知识点一 Jquery的ready和Dom的onload的区别
2011/01/15 Javascript
js 分页全选或反选标识实现代码
2011/08/09 Javascript
如何获取select下拉框的值(option没有及有value属性)
2013/11/08 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
基于JavaScript实现复选框的全选和取消全选
2017/02/09 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
JavaScript中arguments的使用方法详解
2020/12/20 Javascript
Python多线程编程(八):使用Event实现线程间通信
2015/04/05 Python
深入理解python try异常处理机制
2016/06/01 Python
详解Python开发中如何使用Hook技巧
2017/11/01 Python
Python用Try语句捕获异常的实例方法
2019/06/26 Python
python scatter函数用法实例详解
2020/02/11 Python
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
杭州时比特电子有限公司SQL
2013/08/22 面试题
你对IPv6了解程度
2016/02/09 面试题
会展中心部门工作职责
2013/11/27 职场文书
党日活动总结
2014/05/07 职场文书
企业晚会策划方案
2014/05/29 职场文书
公司总经理任命书
2014/06/05 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
超市仓管员岗位职责范本
2014/09/18 职场文书
法学专业毕业实习自我鉴定2014
2014/09/27 职场文书
2014年租房协议书范本
2014/10/30 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书
暑期家教宣传单
2015/07/14 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书