Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
#loader canvas { width: 240px; height: 240px; } html { box-sizing: border-box; -webkit-font-smoothing: antialiased;overflow: hidden } * { box-sizing: inherit; } *:before, *:after { box-sizing: inherit; } body { min-height: 100vh; display: flex; justify-content: center; align-items: center; background: #275EFE; } body .dribbble { position: fixed; display: block; right: 24px; bottom: 24px; } body .dribbble img { display: block; width: 76px; }
JavaScript
$(document).ready(function() { let $canvas = $('#loader canvas'), canvas = $canvas[0], renderer = new THREE.WebGLRenderer({ canvas: canvas, context: canvas.getContext('webgl2'), antialias: true, alpha: true }); renderer.setSize($canvas.width(), $canvas.height()); renderer.setPixelRatio(window.devicePixelRatio || 1); let scene = new THREE.Scene(); camera = new THREE.PerspectiveCamera(45, $canvas.width() / $canvas.height(), 0.1, 1000); camera.position.z = 500; let shape = new THREE.TorusGeometry(70, 20, 60, 160); let material = new THREE.MeshPhongMaterial({ color: 0xE4ECFA, shininess: 20, opacity: .96, transparent: true }); let donut = new THREE.Mesh(shape, material); scene.add(donut); let lightTop = new THREE.DirectionalLight(0xFFFFFF, .3); lightTop.position.set(0, 200, 0); lightTop.castShadow = true; scene.add(lightTop); let frontTop = new THREE.DirectionalLight(0xFFFFFF, .4); frontTop.position.set(0, 0, 300); frontTop.castShadow = true; scene.add(frontTop); scene.add(new THREE.AmbientLight(0xCDD9ED)); function twist(geometry, amount) { const quaternion = new THREE.Quaternion(); for(let i = 0; i < geometry.vertices.length; i++) { quaternion.setFromAxisAngle( new THREE.Vector3(1, 0, 0), (Math.PI / 180) * (geometry.vertices[i].x / amount) ); geometry.vertices[i].applyQuaternion(quaternion); } geometry.verticesNeedUpdate = true; } let mat = Math.PI, speed = Math.PI / 120, forwards = 1; var render = function() { requestAnimationFrame(render); donut.rotation.x -= speed * forwards; mat = mat - speed; if(mat <= 0) { mat = Math.PI; forwards = forwards * -1; } twist(shape, (mat >= Math.PI / 2 ? -120 : 120) * forwards); renderer.render(scene, camera); }; render(); });
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>three.js加载动画-jq22.com</title> <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script> <style>
</style> </head> <body>
<script>
</script>
</body> </html>
2012-2021 jQuery插件库版权所有
jquery插件
|
jq22工具库
|
网页技术
|
广告合作
|
在线反馈
|
版权声明
沪ICP备13043785号-1
浙公网安备 33041102000314号