1

需要帮忙。我在悬停事件上制作了一些带有垂直滚动的菜单,有 3 个菜单(主页、下载、联系人)。悬停事件的滚动效果已经起作用,但是在单击其他菜单时会发生一些错误(某些菜单无法向下滚动/滚动到带有动画的灰色边)。当我按某种顺序单击菜单时会出现该错误:1. 下载然后联系 2. 联系然后下载 3. 联系然后主页

这是我的代码jsFiddle

当我用firebug在firefox上运行代码时,在我将鼠标悬停在单击的菜单上并将鼠标移出后会出现一些错误。

错误打印屏幕:

http://i.stack.imgur.com/PchXy.png

感谢提前:)

4

1 回答 1

0

冻结滚动事件背后的原因是,当您单击菜单时,单击菜单后,菜单将被禁用,因此您background-pos永远不会改变,因此,方法css(bg-pos)变为undefined并且您再次尝试这样做(undefined).split(),这是不可能的因此动画冻结。

您需要做的是单击,您需要再次启用菜单。这是通过以下代码完成的:

$.fn.stopBG = function (x, y, speed) {
    if(event.which == 1){
        $("#home").removeClass('disable1').addClass('enable1');
        $("#download").removeClass('disable2').addClass('enable2');
        $("#contact").removeClass('disable3').addClass('enable3');
    }
    var pos = this.css('background-position').split(' ');

我已经更新了你的小提琴,看到这个:http: //jsfiddle.net/VSTAm/3/

我已经在 chrome 中尝试过这个修复......它在那里正常工作。

于 2013-08-16T22:01:57.047 回答