2015-10-20 103 views
1

我试图做一个“动画”使用JavaScript的“鼠标移动” 没有工作你可以在这里看到它鼠标移动 - 在Firefox

这是我使用

$("body").mousemove(function(e){ 
 
var wWidth = $("body").width()/2 
 
var wHeight = $("body").height()/2 
 
var posX; 
 
var posY; 
 
\t posX = e.pageX - (wWidth); 
 
\t posY = e.pageY - (wHeight) 
 
\t 
 
\t posX = scaleBetween(posX,-90,90,wWidth,-wWidth); 
 
\t posY = scaleBetween(posY,-90,90,wHeight,-wHeight); 
 
    //$("body").text("Position X"+ posX.toString() +" Y"+ posY.toString()); 
 
\t 
 
\t $("#hero").css('-webkit-transform', 'rotate3d(0,1,0,'+(posX)+'deg)' + 'rotate3d(1,0,0,'+(-posY)+'deg)') 
 
}); 
 

 
function scaleBetween(unscaledNum, minAllowed, maxAllowed, min, max){ 
 
    return (maxAllowed-minAllowed)*(unscaledNum-min)/(max - min) + minAllowed; 
 
} 
 

 
\t \t 
 
$("body").mousemove(function(e){ 
 
var wWidth = $("body").width()/2 
 
var wHeight = $("body").height()/2 
 
var posX; 
 
var posY; 
 
\t posX = e.pageX - (wWidth); 
 
\t posY = e.pageY - (wHeight) 
 
\t 
 
\t posX = scaleBetween(posX,90,-90,wWidth,-wWidth); 
 
\t posY = scaleBetween(posY,-90,90,wHeight,-wHeight); 
 
    //$("body").text("Position X"+ posX.toString() +" Y"+ posY.toString()); 
 
\t 
 
\t $("#hero2").css('-webkit-transform', 'rotate3d(0,1,0,'+(posX)+'deg)' + 'rotate3d(1,0,0,'+(-posY)+'deg)') 
 
}); 
 

 
function scaleBetween(unscaledNum, minAllowed, maxAllowed, min, max){ 
 
    return (maxAllowed-minAllowed)*(unscaledNum-min)/(max - min) + minAllowed; 
 
}
body{ 
 
\t 
 
width:100vw; 
 
height:100vh; 
 
margin: 0px; 
 
} 
 

 

 

 
.bighero { 
 
position: absolute; 
 
width:100%; 
 
height: 100%; 
 
display : table-cell; 
 
vertical-align : middle; 
 
horinzontal-align : middle; 
 
text-align:center; 
 
z-index: 500; 
 
} 
 

 
img { 
 
width:100vw; 
 
height:50vh; 
 
} 
 

 
#hero2 { 
 
\t margin-top: -5px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<body> 
 
<div class="bighero"> 
 
<div id="hero"> 
 
<img src="http://cdn.playbuzz.com/cdn/0079c830-3406-4c05-a5c1-bc43e8f01479/7dd84d70-768b-492b-88f7-a6c70f2db2e9.jpg"/> 
 
</div> 
 

 
<div id="hero2"> 
 
<img src="http://cdn.playbuzz.com/cdn/0079c830-3406-4c05-a5c1-bc43e8f01479/7dd84d70-768b-492b-88f7-a6c70f2db2e9.jpg"/> 
 
</div> 
 
</div> 
 

 
</body>
代码

转出来的动画是不是在Firefox上工作, 任何想法从哪里出现问题? 感谢或您的宝贵帮助

+0

我认为这篇文章可能会帮助你:http://stackoverflow.com/questions/22716333/firefox-javascript-mousemove-not-the-same -as-jquery-mousemove – ImInThatCorner

+0

Firefox使用-moz-transform http://stackoverflow.com/questions/7572884/webkit-transform-alternative-for-firefox – BenG

+0

您正在使用的-webkit-transform仅适用于webkit浏览器。 insted使用 -moz-transform:rotateY(-90deg);; -webkit-transform:rotateY(-90deg); transform:rotateY(-90deg); – Snm

回答

0

$("body").mousemove(function(e){ 
 
var wWidth = $("body").width()/2 
 
var wHeight = $("body").height()/2 
 
var posX; 
 
var posY; 
 
\t posX = e.pageX - (wWidth); 
 
\t posY = e.pageY - (wHeight) 
 
\t 
 
\t posX = scaleBetween(posX,-90,90,wWidth,-wWidth); 
 
\t posY = scaleBetween(posY,-90,90,wHeight,-wHeight); 
 
    //$("body").text("Position X"+ posX.toString() +" Y"+ posY.toString()); 
 
\t 
 
\t $("#hero").css('-webkit-transform', 'rotate3d(0,1,0,'+(posX)+'deg)' + 'rotate3d(1,0,0,'+(-posY)+'deg)') 
 

 
$("#hero").css('-moz-transform', 'rotate3d(0,1,0,'+(posX)+'deg)' + 'rotate3d(1,0,0,'+(-posY)+'deg)') 
 
$("#hero").css('transform', 'rotate3d(0,1,0,'+(posX)+'deg)' + 'rotate3d(1,0,0,'+(-posY)+'deg)') 
 
}); 
 

 
function scaleBetween(unscaledNum, minAllowed, maxAllowed, min, max){ 
 
    return (maxAllowed-minAllowed)*(unscaledNum-min)/(max - min) + minAllowed; 
 
} 
 

 
\t \t 
 
$("body").mousemove(function(e){ 
 
var wWidth = $("body").width()/2 
 
var wHeight = $("body").height()/2 
 
var posX; 
 
var posY; 
 
\t posX = e.pageX - (wWidth); 
 
\t posY = e.pageY - (wHeight) 
 
\t 
 
\t posX = scaleBetween(posX,90,-90,wWidth,-wWidth); 
 
\t posY = scaleBetween(posY,-90,90,wHeight,-wHeight); 
 
    //$("body").text("Position X"+ posX.toString() +" Y"+ posY.toString()); 
 
\t 
 
\t 
 
$("#hero2").css('-webkit-transform', 'rotate3d(0,1,0,'+(posX)+'deg)' + 'rotate3d(1,0,0,'+(-posY)+'deg)') 
 

 
$("#hero2").css('-moz-transform', 'rotate3d(0,1,0,'+(posX)+'deg)' + 'rotate3d(1,0,0,'+(-posY)+'deg)') 
 
$("#hero2").css('transform', 'rotate3d(0,1,0,'+(posX)+'deg)' + 'rotate3d(1,0,0,'+(-posY)+'deg)') 
 

 
}); 
 

 
function scaleBetween(unscaledNum, minAllowed, maxAllowed, min, max){ 
 
    return (maxAllowed-minAllowed)*(unscaledNum-min)/(max - min) + minAllowed; 
 
}
body{ 
 
\t 
 
width:100vw; 
 
height:100vh; 
 
margin: 0px; 
 
} 
 

 

 

 
.bighero { 
 
position: absolute; 
 
width:100%; 
 
height: 100%; 
 
display : table-cell; 
 
vertical-align : middle; 
 
horinzontal-align : middle; 
 
text-align:center; 
 
z-index: 500; 
 
} 
 

 
img { 
 
width:100vw; 
 
height:50vh; 
 
} 
 

 
#hero2 { 
 
\t margin-top: -5px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<body> 
 
<div class="bighero"> 
 
<div id="hero"> 
 
<img src="http://cdn.playbuzz.com/cdn/0079c830-3406-4c05-a5c1-bc43e8f01479/7dd84d70-768b-492b-88f7-a6c70f2db2e9.jpg"/> 
 
</div> 
 

 
<div id="hero2"> 
 
<img src="http://cdn.playbuzz.com/cdn/0079c830-3406-4c05-a5c1-bc43e8f01479/7dd84d70-768b-492b-88f7-a6c70f2db2e9.jpg"/> 
 
</div> 
 
</div> 
 

 
</body>

+0

我添加了$(“#hero”)。css(' - moz-transform','rotate3d(0,1,0,'+(posX)+'deg)'+'rotate3d(1,0,0,' +( - posY)+'deg)') – Snm

+0

你可以在答案中提出这个问题,因为它是一个重要的信息。 –

+0

雅我会编辑答案。 – Snm