温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

基于three.js怎么实现简易照片墙效果

发布时间:2022-04-11 10:14:58 来源:亿速云 阅读:522 作者:iii 栏目:开发技术

本篇内容主要讲解“基于three.js怎么实现简易照片墙效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于three.js怎么实现简易照片墙效果”吧!

代码:

 <!DOCTYPE HTML> <HTML> <HEAD>     <META charset="utf-8">     <META name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">     <TITLE></TITLE>     <STYLE>         html, body {             height: 100%;         }           body {             background-color: #454545;             margin: 0;             overflow: hidden;             background-size:cover;         }           .element {             width: 240px;             height: 320px;         }           .element img {             position: absolute;             border:none;         }       </STYLE>     </HEAD> <BODY>   <script src="js/jquery-3.1.1.min.js"></script>   <script src="js/jquery.mousewheel.min.js"></script>   <SCRIPT src="js/three.min.js"></SCRIPT>   <SCRIPT src="js/CSS3DRenderer.js"></SCRIPT>   <DIV id="container"></DIV>   <DIV id="menu">       <SCRIPT>         var table = [];           var camera, scene, renderer;           createImages();         init();         animate();           function init() {             camera = new THREE.PerspectiveCamera( 40, window.innerWidth / window.innerHeight, 1, 10000 );             camera.position.x = 0;             camera.position.y = 0;             camera.position.z = 3000;             camera.lookAt({                 x : 0,                 y : 0,                 z : 0             });               scene = new THREE.Scene();               for ( var i = 0; i < table.length ; i ++ ) {                 var element = document.createElement( 'div' );                 element.className = 'element';                 element.id = 'element';                   var photo = document.createElement('img');                 photo.className = 'photo';                 photo.id = table[ i ][0];                 photo.src='images/'+table[ i ][0]+'?t='+Math.floor((Math.random()*100)+1);                   element.appendChild( photo );                   var objectCSS = new THREE.CSS3DObject( element );                 objectCSS.position.x = ( table[ i ] [1] * 250 ) - 1750;                 objectCSS.position.y = - ( table[ i ] [2]* 330 ) + 1200;                 objectCSS.position.z = 0;                 scene.add( objectCSS );             }               renderer = new THREE.CSS3DRenderer();             renderer.setSize( window.innerWidth, window.innerHeight );             renderer.domElement.style.position = 'absolute';             document.getElementById( 'container' ).appendChild( renderer.domElement );               window.addEventListener( 'resize', onWindowResize, false );         }           function onWindowResize() {               camera.aspect = window.innerWidth / window.innerHeight;             camera.updateProjectionMatrix();               renderer.setSize( window.innerWidth, window.innerHeight );           }           function animate() {               renderer.render( scene, camera );             requestAnimationFrame( animate );           }           $(window).mousewheel(function(event) {             camera.position.y -= event.deltaY * event.deltaFactor;             camera.position.z = 3000;               var target = new THREE.Vector3();             var _eye = new THREE.Vector3();               _eye.subVectors( camera.position, target );             camera.position.addVectors( target, _eye );             camera.lookAt( _eye );           });           function createImages (){             var files = [                 {"name":"0.jpg"},                 {"name":"1.jpg"},                 {"name":"2.jpg"}             ];             var row =1;             var col = 1;             for(var i = 0; i < files.length;i++)             {                 var file = [];                 file[0] = files[i]['name'];                 file[1] = col++;                 file[2] = row;                 table[i] = file;                 if(col > 13)                 {                     col = 1;                     row++;                 }             }         }         </SCRIPT> </DIV> </BODY> </HTML>

效果图如下:

基于three.js怎么实现简易照片墙效果

到此,相信大家对“基于three.js怎么实现简易照片墙效果”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI