Three.js利用Detector.js插件如何实现兼容性检测详解


Posted in Javascript onSeptember 26, 2017

前言

本文主要给大家介绍了关于Three.js用Detector.js插件实现兼容性检测的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

其实Detector.js插件的代码很短,但是功能很全,

(1)判断canvas兼容。

(2)判断webgl兼容性。

(3)在页面添加不兼容提示信息。

这三个功能已经对兼容性检测足够了。

使用方式也很简单:

首先,将插件引入到页面:

<script src="examples/js/Detector.js"></script>

然后,在js里面添加一个判断:

if ( ! Detector.webgl ) Detector.addGetWebGLMessage();

就实现了兼容性的检测,是不是很简单,去测试一下吧。

下面,附上Detector.js插件代码:

/** 
 * @author alteredq / http://alteredqualia.com/ 
 * @author mr.doob / http://mrdoob.com/ 
 */ 
 
var Detector = { 
 
 canvas: !! window.CanvasRenderingContext2D, 
 webgl: ( function () { 
 
 try { 
 
  var canvas = document.createElement( 'canvas' ); return !! ( window.WebGLRenderingContext && ( canvas.getContext( 'webgl' ) || canvas.getContext( 'experimental-webgl' ) ) ); 
 
 } catch ( e ) { 
 
  return false; 
 
 } 
 
 } )(), 
 workers: !! window.Worker, 
 fileapi: window.File && window.FileReader && window.FileList && window.Blob, 
 
 getWebGLErrorMessage: function () { 
 
 var element = document.createElement( 'div' ); 
 element.id = 'webgl-error-message'; 
 element.style.fontFamily = 'monospace'; 
 element.style.fontSize = '13px'; 
 element.style.fontWeight = 'normal'; 
 element.style.textAlign = 'center'; 
 element.style.background = '#fff'; 
 element.style.color = '#000'; 
 element.style.padding = '1.5em'; 
 element.style.width = '400px'; 
 element.style.margin = '5em auto 0'; 
 
 if ( ! this.webgl ) { 
 
  element.innerHTML = window.WebGLRenderingContext ? [ 
  'Your graphics card does not seem to support <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation" rel="external nofollow" rel="external nofollow" style="color:#000">WebGL</a>.<br />', 
  'Find out how to get it <a href="http://get.webgl.org/" rel="external nofollow" rel="external nofollow" style="color:#000">here</a>.' 
  ].join( '\n' ) : [ 
  'Your browser does not seem to support <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation" rel="external nofollow" rel="external nofollow" style="color:#000">WebGL</a>.<br/>', 
  'Find out how to get it <a href="http://get.webgl.org/" rel="external nofollow" rel="external nofollow" style="color:#000">here</a>.' 
  ].join( '\n' ); 
 
 } 
 
 return element; 
 
 }, 
 
 addGetWebGLMessage: function ( parameters ) { 
 
 var parent, id, element; 
 
 parameters = parameters || {}; 
 
 parent = parameters.parent !== undefined ? parameters.parent : document.body; 
 id = parameters.id !== undefined ? parameters.id : 'oldie'; 
 
 element = Detector.getWebGLErrorMessage(); 
 element.id = id; 
 
 parent.appendChild( element ); 
 
 } 
 
}; 
 
// browserify support 
if ( typeof module === 'object' ) { 
 
 module.exports = Detector; 
 
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
用JS判断IE版本的代码 超管用!
Aug 09 Javascript
JavaScript实现生成GUID(全局统一标识符)
Sep 05 Javascript
js实现简单随机抽奖的方法
Jan 27 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
Sep 16 Javascript
全面解析Bootstrap表单使用方法(表单样式)
Nov 24 Javascript
JS前端笔试题分析
Dec 19 Javascript
解决jquery appaend元素中id绑定事件失效的问题
Sep 12 jQuery
基于zepto.js实现登录界面
Oct 09 Javascript
Nginx 配置多站点vhost 的方法
Jan 07 Javascript
vue better-scroll插件使用详解
Jan 25 Javascript
vue 使用高德地图vue-amap组件过程解析
Sep 07 Javascript
vue element实现表格合并行数据
Nov 30 Vue.js
JS+jQuery实现注册信息的验证功能
Sep 26 #jQuery
详解vue-cli中的ESlint配置文件eslintrc.js
Sep 25 #Javascript
JavaScript 自定义事件之我见
Sep 25 #Javascript
详解在vue-cli中使用路由
Sep 25 #Javascript
Bootstrap一款超好用的前端框架
Sep 25 #Javascript
vue封装第三方插件并发布到npm的方法
Sep 25 #Javascript
javascript input输入框模糊提示功能的实现
Sep 25 #Javascript
You might like
C/S和B/S两种架构区别与优缺点分析
2014/10/23 PHP
一个经典的PHP文件上传类分享
2014/11/18 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
mac os快速切换多个PHP版本的方法
2017/03/07 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
根据分辨率不同,调用不同的css文件
2006/08/25 Javascript
Chrome中模态对话框showModalDialog返回值问题的解决方法
2010/05/25 Javascript
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
Markdown+Bootstrap图片自适应属性详解
2016/05/21 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
深入理解javascript的getTime()方法
2017/02/16 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
JavaScript栈和队列相关操作与实现方法详解
2018/12/07 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
python删除某个字符
2018/03/19 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
python 自动轨迹绘制的实例代码
2019/07/05 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
Python pandas对excel的操作实现示例
2020/07/21 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
Tommy Hilfiger美国官网:美国高端休闲领导品牌
2019/01/14 全球购物
天游软件面试
2013/11/23 面试题
函授教育个人学习的自我评价
2013/12/31 职场文书
2014年大学庆元旦迎新年活动方案
2014/03/09 职场文书
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
六一文艺汇演开幕词
2015/01/29 职场文书
讲座新闻稿
2015/07/18 职场文书
同学聚会开幕词
2019/04/02 职场文书