日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

html全屏飘雪花特效,html5 3D飘落雪花动画特效

發(fā)布時間:2024/3/26 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html全屏飘雪花特效,html5 3D飘落雪花动画特效 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

特效描述:html5 3D飄落雪花動畫。雪花動畫

代碼結(jié)構(gòu)

1. 引入JS

2. HTML代碼

雪花飄落場景特效

body { margin: 0; padding: 0; position: relative; background-image: url(images/xh.jpg); background-position: center; /*background-repeat: no-repeat;*/ width: 100%; height: 100%; background-size: 100% 100%; }

var SCREEN_WIDTH = window.innerWidth;//

var SCREEN_HEIGHT = window.innerHeight;

var container;

var particle;//粒子

var camera;

var scene;

var renderer;

var starSnow = 1;

var particles = [];

var particleImage = new Image();

//THREE.ImageUtils.loadTexture( "img/ParticleSmoke.png" );

particleImage.src = 'images/ParticleSmoke.png';

function init() {

//alert("message3");

container = document.createElement('div');//container:畫布實例;

document.body.appendChild(container);

camera = new THREE.PerspectiveCamera( 60, SCREEN_WIDTH / SCREEN_HEIGHT, 1, 10000 );

camera.position.z = 1000;

//camera.position.y = 50;

scene = new THREE.Scene();

scene.add(camera);

renderer = new THREE.CanvasRenderer();

renderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT);

var material = new THREE.ParticleBasicMaterial( { map: new THREE.Texture(particleImage) } );

//alert("message2");

for (var i = 0; i < 500; i++) {

//alert("message");

particle = new Particle3D( material);

particle.position.x = Math.random() * 2000-1000;

particle.position.z = Math.random() * 2000-1000;

particle.position.y = Math.random() * 2000-1000;

//particle.position.y = Math.random() * (1600-particle.position.z)-1000;

particle.scale.x = particle.scale.y = 1;

scene.add( particle );

particles.push(particle);

}

container.appendChild( renderer.domElement );

//document.addEventListener( 'mousemove', onDocumentMouseMove, false );

document.addEventListener( 'touchstart', onDocumentTouchStart, false );

document.addEventListener( 'touchmove', onDocumentTouchMove, false );

document.addEventListener( 'touchend', onDocumentTouchEnd, false );

setInterval( loop, 1000 / 60 );

}

var touchStartX;

var touchFlag = 0;//儲存當(dāng)前是否滑動的狀態(tài);

var touchSensitive = 80;//檢測滑動的靈敏度;

//var touchStartY;

//var touchEndX;

//var touchEndY;

function onDocumentTouchStart( event ) {

if ( event.touches.length == 1 ) {

event.preventDefault();//取消默認關(guān)聯(lián)動作;

touchStartX = 0;

touchStartX = event.touches[ 0 ].pageX ;

//touchStartY = event.touches[ 0 ].pageY ;

}

}

function onDocumentTouchMove( event ) {

if ( event.touches.length == 1 ) {

event.preventDefault();

var direction = event.touches[ 0 ].pageX - touchStartX;

if (Math.abs(direction) > touchSensitive) {

if (direction>0) {touchFlag = 1;}

else if (direction<0) {touchFlag = -1;};

//changeAndBack(touchFlag);

}

}

}

function onDocumentTouchEnd (event) {

// if ( event.touches.length == 0 ) {

// event.preventDefault();

// touchEndX = event.touches[ 0 ].pageX ;

// touchEndY = event.touches[ 0 ].pageY ;

// }這里存在問題

var direction = event.changedTouches[ 0 ].pageX - touchStartX;

changeAndBack(touchFlag);

}

function changeAndBack (touchFlag) {

var speedX = 25*touchFlag;

touchFlag = 0;

for (var i = 0; i < particles.length; i++) {

particles[i].velocity=new THREE.Vector3(speedX,-10,0);

}

var timeOut = setTimeout(";", 800);

clearTimeout(timeOut);

var clearI = setInterval(function () {

if (touchFlag) {

clearInterval(clearI);

return;

};

speedX*=0.8;

if (Math.abs(speedX)<=1.5) {

speedX=0;

clearInterval(clearI);

};

for (var i = 0; i < particles.length; i++) {

particles[i].velocity=new THREE.Vector3(speedX,-10,0);

}

},100);

}

function loop() {

for(var i = 0; i

var particle = particles[i];

particle.updatePhysics();

with(particle.position)

{

if((y

if(x>1000) x-=2000;

else if(x

if(z>1000) z-=2000;

else if(z

}

}

camera.lookAt(scene.position);

renderer.render( scene, camera );

}

總結(jié)

以上是生活随笔為你收集整理的html全屏飘雪花特效,html5 3D飘落雪花动画特效的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。