Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
body { height: 100vh; background-color: #212121; background: radial-gradient(circle, #020024 0%, #2e2e2e 0%, black 100%); margin: 0; padding: 0; overflow: hidden; }
JavaScript
const colorBg = '#212121'; // Black const colorWire = '#18FFFF'; // blue const nearDist = 0.1; const farDist = 1000; const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, nearDist, farDist ); camera.position.z = farDist; const renderer = new THREE.WebGLRenderer({ alpha: true, antialias: true }); renderer.setClearColor(colorBg, 0); // Set the bg via CSS instead, for a gradient effect renderer.setPixelRatio(window.devicePixelRatio); // For HiDPI devices to prevent bluring output canvas renderer.setSize(window.innerWidth, window.innerHeight); document.querySelector("#canvas-wrapper").appendChild(renderer.domElement); // CREATE TYPOGRAPHY const group = new THREE.Group(); // To add 3d float effect const typoLoader = new THREE.FontLoader(); const createTypo = font => { const word = "wire"; const typoSize = 120; const typoProperties = { font: font, size: typoSize, height: typoSize * 3, curveSegments: 1, bevelEnabled: true, bevelThickness: 0.1, bevelSize: 2, bevelOffset: 0, bevelSegments: 3 }; const textMesh = new THREE.Mesh(); textMesh.geometry = new THREE.TextBufferGeometry(word, typoProperties); textMesh.material = new THREE.MeshBasicMaterial({ color: (colorWire), wireframe: true, }); // Let's center typo in scene textMesh.geometry.computeBoundingBox(); textMesh.geometry .boundingBox .getCenter(textMesh.position) .multiplyScalar(-1); // Manually control when 3D transformations recalculation occurs for better performance textMesh.matrixAutoUpdate = false; textMesh.updateMatrix(); group.add(textMesh); }; typoLoader.load( "https://threejs.org/examples/fonts/helvetiker_bold.typeface.json", createTypo ); scene.add(group); // CREATE PART OF THE MOUSE/TOUCH OVER EFFECT let mouseX = 0; let mouseY = 0; const mouseFX = { windowHalfX: window.innerWidth / 2, windowHalfY: window.innerHeight / 2, coordinates: function(coordX, coordY) { mouseX = coordX - mouseFX.windowHalfX; mouseY = coordY - mouseFX.windowHalfY; mouseX = mouseX < 0 ? Math.abs(mouseX) : mouseX; }, onMouseMove: function(e) { mouseFX.coordinates(e.clientX, e.clientY); }, onTouchMove: function(e) { const touchX = e.changedTouches[0].clientX * 2; const touchY = e.changedTouches[0].clientY * 2; mouseFX.coordinates(touchX, touchY); } }; document.addEventListener("mousemove", mouseFX.onMouseMove, false); document.addEventListener("touchmove", mouseFX.onTouchMove, false); // RESIZE CANVAS const resizeCanvas = () => { camera.aspect = window.innerWidth / window.innerHeight; camera.updateProjectionMatrix(); renderer.setSize(window.innerWidth, window.innerHeight); }; window.addEventListener("resize", resizeCanvas, false); // RENDER 3D GRAPHIC const render = () => { requestAnimationFrame(render); // Camera animation // Works with onMouseMove and onTouchMove functions const ct = 0.05; const pZ = (mouseX - camera.position.z) * ct; camera.position.z += pZ; // Floating animation const radians = Date.now() * 0.0005; const rot = Math.sin(radians) * 0.1; group.rotation.x = rot; group.rotation.y = rot; renderer.render(scene, camera); }; render();
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>3d线框文字-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号