基于鼠标位置滚动,保留前景中的点击事件

时间:2016-02-25 17:19:16

标签: javascript jquery html css

所以我在一个较小的div中有一个非常宽的div。内部div根据鼠标位置左右滚动。

我改编了这个答案的代码...... https://stackoverflow.com/a/6137535/3656408

在所有东西的顶部都有两个透明的div,从中可以获得鼠标的位置,从而提供滚动的速度。

这个问题是这些div下面的任何东西都是不可点击的。

我的div具有固定的宽度和高度,因此我可以计算鼠标在页面上的滚动速度(即页面宽度为620px,所以我知道310是中途)

不幸的是,我的数学很糟糕,我无法弄清楚如何将我的思维过程转换为可接受的工作代码。

有人有任何建议吗?

下面是它如何计算移动页面的速度......

$('.direction', backdrop).mousemove(function(e){
var $this = $(this);
var left = $this.is('.left');

if (left){
    var w = $this.width();
    rate = (w - e.pageX - $(this).offset().left + 1)/w;
}
else{
    var w = $this.width();
    rate = -(e.pageX - $(this).offset().left + 1)/w;
}
});

..你可以在这里看到http://thetally.efinancialnews.com/tallyassets/20years/index.html

1 个答案:

答案 0 :(得分:0)

好的我明白了......

$( document ).mousemove(function(e){   //if mouse moves on page

if (e.pageX <= 620 && e.pageY <= 600){  //and if its not outside the extents of the div

    if (e.pageX <= 310){ //if its less than half way across
        rate = (310 - e.pageX)/50;
    } else { // if its more than half way across
        rate = -( e.pageX - 310)/50; 
    }

}

});