2015-10-24 2 views
0
<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, в данной точке, в которой свиток был, перед hovering.In другими словами, если Я должен был прокручивать 500 пикселей вниз, а затем навестить .chatcontainer_inner_popup, прокрутка тела будет заблокирована до 500 пикселей вниз и однажды оставить наведение, позволяющее прокручивать тело снова.блокировки прокрутки на парения JQuery

По какой-то причине, вне меня этот код не работает - может ли кто-нибудь помочь мне разобраться, почему?

+0

Используйте 'возвращают ложь;' код: 'document.body.onscroll = функция (эв) { , если (_stopScroll) { вар расстояние = document.body.scrollTop(); document.body.scrollTop = dist; } else { return false; } } ' – Tushar

+0

Нет, ничего не изменилось - все еще не работает :( –

+0

Взгляните на http://stackoverflow.com/a/4770179/1402667 –

ответ

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(); 
    }) 
});