一段非常简单的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判断操作系统与浏览器代码分享
Jan 09 Javascript
javascript获取当前的时间戳的方法汇总
Jul 26 Javascript
实例讲解JS中setTimeout()的用法
Jan 28 Javascript
星期几的不同脚本写法(推荐)
Jun 01 Javascript
最佳的JavaScript错误处理实践
Jul 16 Javascript
JavaScript中boolean类型之三种情景实例代码
Nov 21 Javascript
解析js如何获取css样式
Dec 11 Javascript
BootStrap 动态表单效果
Jun 02 Javascript
JavaScript基本语法_动力节点Java学院整理
Jun 26 Javascript
使用JavaScript生成罗马字符的实例代码
Jun 08 Javascript
vue实现固定位置显示功能
May 30 Javascript
实现AJAX异步调用和局部刷新的基本步骤
Mar 17 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
用C/C++扩展你的PHP 为你的php增加功能
2012/09/06 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
jQuery 学习 几种常用方法
2009/06/11 Javascript
javascript中的107个基础知识收集整理 推荐
2010/03/29 Javascript
javascript 跨浏览器开发经验总结(五) js 事件
2010/05/19 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
基于jquery实现一张图片点击鼠标放大再点缩小
2013/09/29 Javascript
利用JS进行图片的切换即特效展示图片
2013/12/03 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
javascript获取select标签选中的值
2016/06/04 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
2016/09/05 Javascript
jquery Ajax 全局调用封装实例详解
2017/01/16 Javascript
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
JavaScript生成简单等差数列
2017/11/28 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
js实现GIF动图分解成多帧图片上传
2019/10/24 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
2020/07/22 Javascript
Python多继承顺序实例分析
2018/05/26 Python
详解python调用cmd命令三种方法
2019/07/08 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
Too Faced官网:美国知名彩妆品牌
2017/03/07 全球购物
中英双版中文教师求职信
2013/10/27 职场文书
小松树教学反思
2014/02/11 职场文书
小学生学习感言
2014/03/10 职场文书
《假如》教学反思
2014/04/17 职场文书
党员对照检查材料
2014/09/22 职场文书
高中运动会广播稿
2015/08/19 职场文书