Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何使鼠标滚轮在不对焦时滚动为溢出:自动div?_Jquery_Jquery Ui - Fatal编程技术网

Jquery 如何使鼠标滚轮在不对焦时滚动为溢出:自动div?

Jquery 如何使鼠标滚轮在不对焦时滚动为溢出:自动div?,jquery,jquery-ui,Jquery,Jquery Ui,我制作了一个jQueryUI菜单,当鼠标移到菜单项上时,它会显示div中每个选项的描述。我想这样做,用户可以使用鼠标滚轮滚动描述div,同时保持菜单项高亮显示,以便于导航。您可以在此处看到正在运行的代码: 更新 我最终得出的结论如下: $('body').mousewheel(function(event, delta) { if (delta > 0){ // scroll direction is up $("#description").mCustomScro

我制作了一个jQueryUI菜单,当鼠标移到菜单项上时,它会显示div中每个选项的描述。我想这样做,用户可以使用鼠标滚轮滚动描述div,同时保持菜单项高亮显示,以便于导航。您可以在此处看到正在运行的代码:

更新

我最终得出的结论如下:

$('body').mousewheel(function(event, delta) {
    if (delta > 0){ // scroll direction is up
        $("#description").mCustomScrollbar("scrollTo","top",{scrollInertia:3000});
    } else {
        $("#description").mCustomScrollbar("scrollTo","bottom",{scrollInertia:3000});
}
});

这使得滚动足够平稳,用户可以控制它,即使它在单次滚动后仍将继续滚动。

您可以使用此插件:检测鼠标滚轮,然后获取div的
滚动顶部并手动滚动它。可能是这样的:

$('body').mousewheel(function(event, delta) {
    var thisTop = $("#description").scrollTop();
    if (delta > 0){ // scroll direction is up
        $("#description").scrollTop(thisTop - delta);
    }
    else {
        $("#description").scrollTop(thisTop + delta);
    }
});
编辑

你的插件有一个
scrollTo
方法,可以用来代替
scrollTop
。尝试替换此代码:

$("#description").scrollTop(thisTop - delta);
为此:

$("#description").mCustomScrollbar("scrollTo",thisTop - delta);

不幸的是,添加focus()似乎没有任何作用。另外,我在我的网站上使用mousewheel插件,因为我使用的是自定义滚动条。也许你可以想出一种方法,在mousewheel事件中使用
.scrollTop()
,滚动div?是的,这只会在任何其他事件(如mousewheel向上或向下)移除焦点之前提供焦点。然而,我编辑了我的答案,以展示它的外观。这似乎应该有效,但什么也没发生。它肯定在开火;我在if语句中放了一个console.log。然而,即使我使用scrollTop手动将div设置为任何特定的数字,这也不起作用。例如,
$(“#description”).html(desc).scrollTop(300)什么都不做。更正:我正在使用一个名为mCustomScrollbar的插件,使用该插件时手动滚动条不起作用,否则它会起作用<代码>$(“.description”).html(结果).mCustomScrollbar({scrollInertia:200}).scrollTop(300)不起作用,但如果没有mCustomScrollbar,它会起作用。但是,无论我是否使用插件,您提供的功能都不起作用。
$("#description").mCustomScrollbar("scrollTo",thisTop - delta);