在hover jquery上锁定滚动

时间:2015-10-24 14:28:58

标签: jquery scroll hover

<div class="chatcontainer_inner_popup" onmouseover="_stopScroll = true;" onmousout="_stopScroll = false;">

$(document).ready(function ($) {
    $('.chatcontainer_inner_popup').hover(function () {
        _stopScroll = true;
    }, function () {
        _stopScroll = false;
    });
    document.body.onscroll = function (ev) {
        if (_stopScroll) {
            var dist = document.body.scrollTop();
            document.body.scrollTop = dist;
        }
    }
})

这段代码,应该在我的脑海中,当悬停在.chatcontainer_inner_popup上时,将鼠标滚动锁定到滚动所在的给定点,在悬停之前。换句话说,如果我向下滚动500像素,然后悬停.chatcontainer_inner_popup,身体的滚动将被锁定为500像素,并且一旦离开悬停,就可以再次滚动身体。

由于某些原因,除了我之外,这段代码不起作用 - 任何人都可以帮我找出原因吗?

1 个答案:

答案 0 :(得分:0)

$(document).ready(function () {
    var dist;
    $(".chatcontainer_inner_popup").mouseenter(function () {
        dist = $(document).scrollTop();
    })
    function disableScrolling() {
        var x = window.scrollX;
        var y = window.scrollY;
        document.onscroll = function () { window.scrollTo(0, dist); };
    }
    function enableScrolling() {
        document.onscroll = function () {};
    }
    $(".chatcontainer_inner_popup").mouseenter(function () {
        disableScrolling();
    })
    $(".chatcontainer_inner_popup").mouseleave(function () {
        enableScrolling();
    })
});