Панель прокрутки браузера иногда не работает при использовании slimscroll

Я использую jquery.slimscroll для замены родной полосы прокрутки браузера.

Я обнаружил, что иногда его использование приводит к тому, что собственная полоса прокрутки браузера не реагирует на прокрутку мыши.

Один из таких случаев: используется вместе с сортировкой jqueryui для элемента. Каким-то образом после перерисовки элемента перестает работать полоса прокрутки браузера. Я могу последовательно воспроизвести это в каждом браузере, и я пишу jsfiddle, чтобы воспроизвести это:

скрипка

function rerender(){
$("#wrapper").html($("#content").html());
$("#container").sortable({axis:"y",stop:function(){
    rerender();
}});
$("#container").slimScroll(
    {railVisible:true, height:"70px",start:"bottom"});
};

rerender();

Это происходит в других случаях, поэтому эта проблема может не относиться к сортируемому jqueryui.

Кто-нибудь видит подобные проблемы, и как вы их решили?

1 ответ

Я думаю, что проблема в том, что событие колеса управления slimScroll связано с элементом окна, поэтому, когда вы воссоздаете HTML-файл оболочки, вы удаляете предыдущий прокручиваемый элемент, но обработчик колеса мыши остается и предотвращает прокрутку окна. Таким образом, в теории вы должны уничтожить пользовательскую полосу прокрутки перед обновлением HTML-оболочки, а затем переустановить полосу прокрутки. Но на практике slimScroll не имеет метода уничтожения.

Существует множество других плагинов для полосы прокрутки, которые вы можете попробовать: jQuery Scrollbar, jScrollPane, Malihu Custom Scrollbar и другие... Вы можете сравнить их функциональность здесь

Другие вопросы по тегам