Зависает снег при скроле
Здравствуйте подскажите кто знает, уже устал ломать голову, снег зависает при использовании колесика мышки, но если использовать скролл окна всё норм.
var SCREEN_WIDTH = window.innerWidth; var SCREEN_HEIGHT = window.innerHeight; var container; var particle; var camera; var scene; var renderer; var mouseX = 0; var mouseY = 0; var windowHalfX = window.innerWidth / 2; var windowHalfY = window.innerHeight / 2; var particles = []; var particleImage = new Image(); particleImage.src = '/img/ParticleSmoke.png'; function init() { //inner container = document.createElement('div'); container.className = "cont_canvas"; //open document.body.appendChild(container); // down|up //distance camera = new THREE.PerspectiveCamera( 75, SCREEN_WIDTH / SCREEN_HEIGHT, 1, 10000 ); // area snow camera.position.z = 1000; 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) } ); //how snow? for (var i = 0; i < 199; i++) { particle = new Particle3D( material); particle.position.x = Math.random() * 2000 - 1000; particle.position.y = Math.random() * 2000 - 1000; particle.position.z = Math.random() * 2000 - 1000; particle.scale.x = particle.scale.y = 1; scene.add( particle ); particles.push(particle); } //closed container.appendChild( renderer.domElement ); document.addEventListener( 'mousemove', onDocumentMouseMove, false ); document.addEventListener( 'mousedown', onDocumentMouseDown, false ); document.addEventListener("mousewheel", MouseWheelHandler, false); //snow speed setInterval( loop, 1000 / 60 ); } function onDocumentMouseMove( event ) { mouseX = event.clientX - windowHalfX; mouseY = event.clientY - windowHalfY; } function onDocumentMouseDown( event ) { mouseX = event.clientX - windowHalfX; mouseY = event.clientY - windowHalfY; } function MouseWheelHandler( event ) { } function loop() { for(var i = 0; i<particles.length; i++) { var particle = particles[i]; particle.updatePhysics(); with(particle.position) { if(y<-1000) y+=2000; if(x>1000) x-=2000; else if(x<-1000) x+=2000; if(z>1000) z-=2000; else if(z<-1000) z+=2000; } } //Закругление camera.position.x += ( mouseX - camera.position.x ) * 0.05; camera.position.y += ( - mouseY - camera.position.y ) * 0.05; camera.lookAt(scene.position); renderer.render( scene, camera ); } Забыл добавить, после использования колесика мыши, снег развисает, если произвести клик левой кнопкой мыши в любой области, но ($).click не дала результата... |
nekada,
А если убрать document.addEventListener("mousewheel", MouseWheelHandler, false); ? |
Ничего не меняется.... Это я спецом оставил, может кто-то дополнит...
|
Решил протестировать на некоторых браузерах.
ie 9 - все ок ie 10 - все ок ie 11 - все ок mozila - все ок opera - проблема есть chrome - проблема есть Возможно браузеры по разному понимают var SCREEN_WIDTH = window.innerWidth; var SCREEN_HEIGHT = window.innerHeight; или проблема кроется в чем то другом? Подскажите чтонить... кроме как забить уж тяжело это воспринимается в chrome так как использую его :) с дурости даже на safari 517 проверил, не поверите проблемы нет! Видимо хром на столько хорошо, что все написанное воспринимает буквально <3 chrome |
Часовой пояс GMT +3, время: 23:01. |