一段非常简单的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 相关文章推荐
一个小型js框架myJSFrame附API使用帮助
Jun 28 Javascript
ASP 过滤数组重复数据函数(加强版)
May 31 Javascript
Jquery为单选框checkbox绑定单击click事件
Dec 18 Javascript
从jquery的过滤器.filter()方法想到的
Sep 29 Javascript
使用jQuery实现更改默认alert框体
Apr 13 Javascript
JavaScript中的Math.LOG2E属性使用详解
Jun 14 Javascript
js实现tab切换效果实例
Sep 16 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
Dec 04 Javascript
JS轮播图实现简单代码
Feb 19 Javascript
浅谈Webpack下多环境配置的思路
Jun 27 Javascript
vue在自定义组件中使用v-model进行数据绑定的方法
Mar 25 Javascript
Vuex模块化应用实践示例
Feb 03 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
php中对xml读取的相关函数的介绍一
2008/06/05 PHP
解析link_mysql的php版
2013/06/30 PHP
PHP中生成UUID自定义函数分享
2015/06/10 PHP
PHP自定义函数实现数组比较功能示例
2017/10/19 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
用jquery.sortElements实现table排序
2014/05/04 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
微信小程序 slider的简单实例
2017/04/19 Javascript
JavaScript实现反转字符串的方法详解
2017/04/27 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
layui select动态添加option的实例
2018/03/07 Javascript
vue调试工具vue-devtools安装及使用方法
2018/11/07 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
node.js中module模块的功能理解与用法实例分析
2020/02/14 Javascript
[16:14]教你分分钟做大人:米拉娜(HEROS)
2014/11/24 DOTA
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
python opencv设置摄像头分辨率以及各个参数的方法
2018/04/02 Python
Sanic框架Cookies操作示例
2018/07/17 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
python利用小波分析进行特征提取的实例
2019/01/09 Python
python set内置函数的具体使用
2019/07/02 Python
应届本科生推荐信范文
2013/12/25 职场文书
数控技校生自我鉴定
2014/04/19 职场文书
工作说明书范文
2014/05/07 职场文书
社区志愿者活动方案
2014/08/18 职场文书
单位作风建设自查报告
2014/10/23 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
讲解MySQL增删改操作
2022/05/06 MySQL