Панель прокрутки браузера иногда не работает при использовании 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 и другие... Вы можете сравнить их функциональность здесь