国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Three.js Example 注解 —— css3d_youtube.html

本文搬自我的Github,https://github.com/555chy/three.js-example-comment,有興趣的可以一起來完善,這個為Three.js的Example進行注解,方便初學(xué)者閱讀

three.js 官網(wǎng) Example 地址:https://threejs.org/examples/

<!DOCTYPE html><html>	<head>		<title>three.js css3d - youtube</title>		<meta charset="utf-8">		<!--		如果沒有設(shè)置viewport的width的話,網(wǎng)頁很可能會超出手機屏幕寬度,具體多寬,要看瀏覽器定義的默認(rèn)寬度是多少		user-scalable=no,規(guī)定了用戶不能縮放網(wǎng)頁,但有些瀏覽器對該項支持不是很好,故需要設(shè)置minimum-scale和maximum-scale相同來限制用戶縮放		-->		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">		<style>			html, body {				height: 100%;				overflow: hidden;			}			#blocker {				position: absolute;				/* background-color: rgba(255, 0, 0, 0.5); */				top: 0px;				left: 0px;				width: 100%;				height: 100%;			}		</style>	</head>	<body>		<script src="../build/three.js"></script>		<!--		軌跡控制,鼠標(biāo)左鍵旋轉(zhuǎn)(與鼠標(biāo)方向相反,用于觸摸屏上),右鍵平移,中鍵縮放;也可以使用鍵盤控制		-->		<script src="js/controls/TrackballControls.js"></script>		<!-- 		使用CSS3渲染3D的DOM元素		-->		<script src="js/renderers/CSS3DRenderer.js"></script>		<div id="container"></div>		<div id="blocker"></div>		<script>			var camera, scene, renderer;			var Element = function ( id, x, y, z, ry ) {/*				var div = document.createElement( 'div' );				div.style.width = '480px';				div.style.height = '360px';				div.style.backgroundColor = '#000';*/				var iframe = document.createElement( 'iframe' );				iframe.style.width = '480px';				iframe.style.height = '360px';				iframe.style.border = '0px';				iframe.style.backgroundColor = '#000';				iframe.src = [ 'https://www.youtube.com/embed/', id, '?rel=0' ].join( '' );//				div.appendChild( iframe );				//var object = new THREE.CSS3DObject( div );				//只要是個DOM元素均可,外部嵌套div是非必要的				var object = new THREE.CSS3DObject( iframe );				object.position.set( x, y, z );				object.rotation.y = ry;				return object;			};			init();			animate();			function init() {				var container = document.getElementById( 'container' );				/*				PerspectiveCamera(fov, aspect, near, far)                    fov(視場):從相機位置能夠看到的部分場景。推薦默認(rèn)值45                    aspect(長寬比):渲染結(jié)果輸出區(qū)域的橫向長度和縱向長度的比值。推薦默認(rèn)值window.innerWidth/window.innerHeight                    near(近面):定義從距離相機多近的地方開始渲染場景。推薦默認(rèn)值0.1                    far(遠(yuǎn)面):定義相機可以從它所處的位置看多遠(yuǎn)。默認(rèn)值1000                */				camera = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 1, 5000 );				/*				定義相機的位置,有如下兩種方式。如果不設(shè)置的話,相機位置為默認(rèn)的Vector3{x:0,y:0,z:0}				camera.position.x = 500;				camera.position.x = 350;				camera.position.x = 750;				*/				camera.position.set( 500, 350, 750 );				scene = new THREE.Scene();				renderer = new THREE.CSS3DRenderer();				//設(shè)置待渲染場景的大小				renderer.setSize( window.innerWidth, window.innerHeight );				//將渲染器的DOM元素(即Canvas)可以設(shè)置樣式				//renderer.domElement.style.position = 'absolute';				//renderer.domElement.style.top = 0;				container.appendChild( renderer.domElement );				//three.js中的分組,同一個分組中的對象可以一起執(zhí)行某項操作,不用再進行遍歷判斷				var group = new THREE.Group();				group.add( new Element( 'njCDZWTI-xg', 0, 0, 240, 0 ) );				group.add( new Element( 'HDh4uK9PvJU', 240, 0, 0, Math.PI / 2 ) );				group.add( new Element( 'OX9I1KyNa8M', 0, 0, - 240, Math.PI ) );				group.add( new Element( 'nhORZ6Ep_jE', - 240, 0, 0, - Math.PI / 2 ) );				scene.add( group );				//設(shè)置鼠標(biāo)控制的對象為相機				controls = new THREE.TrackballControls( camera );				//鼠標(biāo)移動距離轉(zhuǎn)化為控制器旋轉(zhuǎn)角度的比例				controls.rotateSpeed = 4;				window.addEventListener( 'resize', onWindowResize, false );				// Block iframe events when dragging camera				var blocker = document.getElementById( 'blocker' );				//display和visibility的效果一樣,即使不顯示元素,也會保留其物理空間				blocker.style.display = 'none';								document.addEventListener( 'mousedown', function () {					//style.display = "";是清除display樣式,display將使用默認(rèn)值(塊元素會變成b搜索lock,內(nèi)聯(lián)元素會變成inline)					blocker.style.display = '';					//blocker.style.visibility = "visible";				} );				document.addEventListener( 'mouseup', function () { 					blocker.style.display = 'none';					//blocker.style.visibility = "hidden";				} );			}			function onWindowResize() {				//重新設(shè)置相機的寬高比。如果寬高比不對,那么正方形可能就不是正方形了				camera.aspect = window.innerWidth / window.innerHeight;				//更新透視相機的投影矩陣				camera.updateProjectionMatrix();				//重新設(shè)置渲染場景的大小				renderer.setSize( window.innerWidth, window.innerHeight );			}			function animate() {				requestAnimationFrame( animate );				//更新軌跡控制器,這里軌跡控制器與相機關(guān)聯(lián),所以也會更新相機的位置和角度。因此這里就不用設(shè)置相機的lookAt了。如果鼠標(biāo)移動的話,相機會繞著原點旋轉(zhuǎn)				controls.update();				//console.log(camera.position.length());							renderer.render( scene, camera );			}		</script>	</body></html>
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
各類代碼調(diào)用
JS函數(shù)實現(xiàn)動態(tài)添加CSS樣式表文件
2014年最新前端開發(fā)面試題(面霸題庫)
前端面試題小集
將展示內(nèi)容(div、iframe)放在Expand控件中
js中用cssText設(shè)置css樣式
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服