Three.js利用Detector.js插件如何實現(xiàn)兼容性檢測詳解
前言
本文主要給大家介紹了關(guān)于Three.js用Detector.js插件實現(xiàn)兼容性檢測的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。
其實Detector.js插件的代碼很短,但是功能很全,
(1)判斷canvas兼容。
(2)判斷webgl兼容性。
(3)在頁面添加不兼容提示信息。
這三個功能已經(jīng)對兼容性檢測足夠了。
使用方式也很簡單:
首先,將插件引入到頁面:
<script src="examples/js/Detector.js"></script>
然后,在js里面添加一個判斷:
if ( ! Detector.webgl ) Detector.addGetWebGLMessage();
就實現(xiàn)了兼容性的檢測,是不是很簡單,去測試一下吧。
下面,附上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 rel="external nofollow" rel="external nofollow" style="color:#000">WebGL</a>.<br />',
'Find out how to get it <a rel="external nofollow" rel="external nofollow" style="color:#000">here</a>.'
].join( '\n' ) : [
'Your browser does not seem to support <a rel="external nofollow" rel="external nofollow" style="color:#000">WebGL</a>.<br/>',
'Find out how to get it <a 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;
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- Three.js基礎(chǔ)學(xué)習(xí)之場景對象
- Three.js實現(xiàn)瀏覽器變動時進行自適應(yīng)的方法
- Three.js利用dat.GUI如何簡化試驗流程詳解
- 利用Three.js如何實現(xiàn)陰影效果實例代碼
- Three.js實現(xiàn)繪制字體模型示例代碼
- Three.js利用orbit controls插件(軌道控制)控制模型交互動作詳解
- Three.js利用性能插件stats實現(xiàn)性能監(jiān)聽的方法
- Three.js如何用軌跡球插件(trackball)增加對模型的交互功能詳解
- Three.js入門之hello world以及如何繪制線
- Three.js如何實現(xiàn)霧化效果示例代碼
相關(guān)文章
JavaScript時間戳與時間日期間相互轉(zhuǎn)換
今天做項目遇到這樣的問題,要將獲取到的時間轉(zhuǎn)換為時間戳,通過查閱相關(guān)資料,問題順利解決,下面小編把具體實現(xiàn)代碼分享到腳本之家平臺,需要的朋友參考下2017-12-12
關(guān)于Aptana Studio生成自動備份文件的解決辦法
關(guān)于Aptana Studio生成自動備份文件的解決辦法2009-12-12
JavaScript數(shù)據(jù)結(jié)構(gòu)與算法
這篇文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)與算法,文章圍繞主題展開數(shù)據(jù)結(jié)構(gòu)與算法的概念,以及幾種常見的數(shù)據(jù)結(jié)構(gòu)是什么,有什么優(yōu)點和缺,具有一定的參考價值,需要的小伙伴可以參考一下2022-07-07
推薦js實現(xiàn)商品分類到搜索欄友好提示(人機交互)
推薦js實現(xiàn)商品分類到搜索欄友好提示(人機交互)...2007-05-05
學(xué)習(xí)JavaScript設(shè)計模式之享元模式
這篇文章主要為大家介紹了JavaScript設(shè)計模式中的享元模式,對JavaScript設(shè)計模式感興趣的小伙伴們可以參考一下2016-01-01
利用Print.js實現(xiàn)打印pdf、HTML及圖片(可設(shè)置樣式可分頁)
在我們需要在頁面中打印某個區(qū)域的內(nèi)容或者生成pdf的時候,我們可以直接用printJs庫,這篇文章主要給大家介紹了關(guān)于利用Print.js實現(xiàn)打印pdf、HTML及圖片的相關(guān)資料,可設(shè)置樣式可分頁,需要的朋友可以參考下2024-05-05
關(guān)于JavaScript中的數(shù)組方法和循環(huán)
這篇文章主要介紹了關(guān)于JavaScript中的數(shù)組方法和循環(huán),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09

