多亏了这个论坛,我的代码可以工作了:-)但它需要一些微调。只有当鼠标悬停在图像上时,该功能才能工作
这是我第一次尝试使用悬停功能,但是在显示鼠标坐标时发生了一些奇怪的事情。你可以在这里找到一个(旧的但在整个页面上工作)示例:http://designbynine.nl/Test/Test%20pagina%20follow%20mouse04.html(在Chrome中打开)
<head>
<script src="jquery-1.11.1.js"></script>
<script type="text/javascript">
$(document).mousemove(function(event) {
var relativeX = Math.ceil(event.pageX/23);
var currentStep = relativeX*-230;
$(".model").hover(function(){
$(".model").css("background-position", 0+" "+(currentStep)+"px");
//just to check what is happeninga
$("span").text("X: " + event.pageX + ", Y: " + event.pageY)
});
});
</script>
<style type="text/css">
.model {
width: 300px;
height: 230px;
background-image: url('sprite.png');
background-position:0 4000x;
}
</style>
</head>
<body>
<div class="model" style=""></div>
<p>Data <span></span></p>
</body>
用以下代码替换您的函数代码:
$(document).mousemove(function(event) {
var relativeX = Math.ceil(event.pageX/123);
var widthOfElement = $(".model").outerWidth();
var step = widthOfElement/300;
var currentStep = Math.ceil(relativeX/step*-231);
var hovering = false;
$("span").text("x" + event.pageX + " " + "y" + event.pageY);
$(".model").css("background-position", 0+" "+(currentStep)+"px");
if(currentStep < 1)
{
currentStep = 1;
}
});
我用函数(事件)更改了函数(e):
http://jsfiddle.net/ku5cfwp8/1/