欧美日韩国产一区二区|qovd片|小明个人发布看看|小浪货你夹真紧水又多|老头把我添高潮了A片故|99热久久精品国产一区二区|久久久春色AV

納米|技術(shù)分享:用JS實(shí)現(xiàn)的3D海浪涌動(dòng)特效

納米|技術(shù)分享:用JS實(shí)現(xiàn)的3D海浪涌動(dòng)特效

分享一個(gè)基于ThreeJS的3D海浪涌動(dòng)特效 , 效果如下:

常可用于頁面背景 , 3D效果 , 視覺觀感很好 , 海浪會(huì)隨機(jī)涌動(dòng) , 科幻感、技術(shù)感強(qiáng)烈 。
代碼說明代碼會(huì)引用ThreeJS庫 , 版本號(hào)為56 。 注:必須是此版本 。
頁面背景色可在Body的style中自行調(diào)節(jié) 。


<body style=\"background:#000000\">
完整源碼如下 , 直接保存為html文件即可使用 。
也可對(duì)源碼優(yōu)化修改 , 以實(shí)現(xiàn)更好效果 , 如果不想修改后的源碼泄露出去 , 可用JShaman對(duì)JS代碼進(jìn)行加密 。
源碼

<body style=\"background:#000000\">
<script src=https://mparticle.uc.cn/"three.js\" type=\"application/javascript\"></script>
<div></div>
<script>
var SEPARATION = 100
AMOUNTX = 100
AMOUNTY = 70;
var container;
var camera scene renderer;
var particles particle count = 0;
var mouseX = 85
mouseY = -342;
var windowHalfX = window.innerWidth / 2;
【納米|技術(shù)分享:用JS實(shí)現(xiàn)的3D海浪涌動(dòng)特效】var windowHalfY = window.innerHeight / 2;
init();
animate();
function init() {
container = document.createElement('div');
document.body.appendChild(container);
camera = new THREE.PerspectiveCamera(120 window.innerWidth / window.innerHeight 1 10000);
camera.position.z = 1000;
scene = new THREE.Scene();
particles = new Array();
var PI2 = Math.PI * 2;
var material = new THREE.ParticleCanvasMaterial({
color: 0xe1e1e1
program: function(context) {
context.beginPath();
context.arc(0 0 .6 0 PI2 true);
context.fill();

);
var i = 0;
for (var ix = 0; ix < AMOUNTX; ix++) {
for (var iy = 0; iy < AMOUNTY; iy++) {
particle = particles[i++
= new THREE.Particle(material);
particle.position.x = ix * SEPARATION - ((AMOUNTX * SEPARATION) / 2);
particle.position.z = iy * SEPARATION - ((AMOUNTY * SEPARATION) / 2);
scene.add(particle);


renderer = new THREE.CanvasRenderer();
renderer.setSize(window.innerWidth window.innerHeight);
container.appendChild(renderer.domElement);
document.addEventListener('mousemove' onDocumentMouseMove false);
document.addEventListener('touchstart' onDocumentTouchStart false);
document.addEventListener('touchmove' onDocumentTouchMove false);
window.addEventListener('resize' onWindowResize false);

function onWindowResize() {
windowHalfX = window.innerWidth / 2;
windowHalfY = window.innerHeight / 2;
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth window.innerHeight);

function onDocumentMouseMove(event) {
mouseX = event.clientX - windowHalfX;
mouseY = event.clientY - windowHalfY;

function onDocumentTouchStart(event) {
if (event.touches.length === 1) {
event.preventDefault();
mouseX = event.touches[0
.pageX - windowHalfX;
mouseY = event.touches[0
.pageY - windowHalfY;


function onDocumentTouchMove(event) {
if (event.touches.length === 1) {
event.preventDefault();
mouseX = event.touches[0
.pageX - windowHalfX;
mouseY = event.touches[0
.pageY - windowHalfY;


function animate() {
requestAnimationFrame(animate);
render();

function render() {
camera.position.x += (mouseX - camera.position.x) * .05;
camera.position.y += (-mouseY - camera.position.y) * .05;

相關(guān)經(jīng)驗(yàn)推薦