Как сделать плавный переход 3d вращаться, когда мышь в или из области окна, я получил код ниже, но когда моя мышь вышла из области окна и в поле ввода с другой стороны, переход элемента не движется плавно ,как сделать гладкий поворот3d наведение мыши?
код: fiddle
$(document).ready(function() {
var $one = $('#div1'),
$two = $('#div2'),
browserPrefix = "",
usrAg = navigator.userAgent;
if(usrAg.indexOf("Chrome") > -1 || usrAg.indexOf("Safari") > -1) {
browserPrefix = "-webkit-";
} else if (usrAg.indexOf("Opera") > -1) {
browserPrefix = "-o";
} else if (usrAg.indexOf("Firefox") > -1) {
browserPrefix = "-moz-";
} else if (usrAg.indexOf("MSIE") > -1) {
browserPrefix = "-ms-";
}
$(document).mousemove(function (event) {
var cx = Math.ceil(window.innerWidth/2.0),
cy = Math.ceil(window.innerHeight/2.0),
dx = event.pageX - cx,
dy = event.pageY - cy,
tiltx = (dy/cy),
tilty = - (dx/cx),
radius = Math.sqrt(Math.pow(tiltx, 2) + Math.pow(tilty, 2)),
degree = (radius * 15);
shadx = degree*tiltx; /*horizontal shadow*/
shady = degree*tilty; /*vertical shadow*/
$one.css(browserPrefix + 'transform', 'rotate3d(' + tiltx + ', ' + tilty + ', 0, ' + degree + 'deg)');
$two.css(browserPrefix + 'transform', 'rotate3d(' + tiltx + ', ' + tilty + ', 0, ' + degree + 'deg)');
if(dx>cx) /*without that horizontal values are reversed*/
$('#div1, #div2').css('box-shadow', + (-shady) + 'px ' + (-shadx) +'px 5px #3D352A');
else $('#div1, #div2').css('box-shadow', + shady + 'px ' + (-shadx) +'px 5px #3D352A');
});});
Ваша скрипка кажется неповрежденной (в Chrome); Я не мог видеть проблему, которую вы описали. Поскольку mousemove правильно прикреплен к документу, проблем не должно быть. Если вы не тестируете какой-либо уступающий браузер. – Ingmars
Я тестировал на хром и firefox, и он работает, можете ли вы уточнить, что вы хотите сделать PLZ? – Mimouni
Я думаю, что OP означает, что прямо сейчас, если вы медленно двигаете мышью, вы можете увидеть, что перевод/ротации обновляется с небольшими прыжками, но он/она хочет, чтобы это произошло более плавно. –