一段非常简单的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获取location.href的参数实例代码
Aug 02 Javascript
script不刷新页面的联动前后代码
Sep 18 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
Jan 31 Javascript
JavaScript实现同一个页面打开多张图片
Dec 29 Javascript
简单实现js选项卡切换效果
Feb 09 Javascript
JavaScript反弹动画效果的实现代码
Jul 13 Javascript
jquery写出PC端轮播图实例
Jan 26 jQuery
Vue 页面切换效果之 BubbleTransition(推荐)
Apr 08 Javascript
使用Vue组件实现一个简单弹窗效果
Apr 23 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
Jul 10 Javascript
基于JS实现数字动态变化显示效果附源码
Jul 18 Javascript
微信小程序input抖动问题的修复方法
Mar 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获取301跳转URL简单实例
2013/12/16 PHP
Zend Framework入门教程之Zend_Config组件用法详解
2016/12/09 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
为javascript添加String.Format方法
2020/08/11 Javascript
div移动 输入框不能输入的问题
2009/11/19 Javascript
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
两种简单实现菜单高亮显示的JS类代码
2010/06/27 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
js 遍历json返回的map内容示例代码
2013/10/29 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
javascript中返回顶部按钮的实现
2015/05/05 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
深入理解Vue router的部分高级用法
2018/08/15 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
JavaScript实现点击切换功能
2021/01/27 Javascript
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
python中常用检测字符串相关函数汇总
2015/04/15 Python
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
python标记语句块使用方法总结
2019/08/05 Python
关于阿里云oss获取sts凭证 app直传 python的实例
2019/08/20 Python
django和vue实现数据交互的方法
2019/08/21 Python
Python面向对象特殊属性及方法解析
2020/09/16 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
标准的毕业生自荐信
2014/04/20 职场文书
市场营销毕业求职信
2014/08/07 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书