如何使函数仅在特定区域(div)中运行



多亏了这个论坛,我的代码可以工作了:-)但它需要一些微调。只有当鼠标悬停在图像上时,该功能才能工作

这是我第一次尝试使用悬停功能,但是在显示鼠标坐标时发生了一些奇怪的事情。你可以在这里找到一个(旧的但在整个页面上工作)示例: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/

最新更新