Как сделать ракрытие пунктов аккордеона по движению колесом внутри каждого пункта?
Приветствую специалистов по JS!
Хочу сделать аккордеон, в котором соседние табики раскрывались от того, что пользователь крутит колесо мыши вниз или вверх. В jsfiddle (https://jsfiddle.net/PlayboyZP/xbmv63rr/) все выглядит хорошо, а на реальном сайте плохо: http://test.spamer35.myjino.ru/ Скрипт тут http://test.spamer35.myjino.ru/sites.../animations.js Оно то работает, но если крутить мышкой быстро, то цепляет табик аккордеона, который еще "не приехал". Как это побороть? mousewheel поможет? |
VasyOK,
Throttle-debounce |
Спасибо за наводку. Сделал так http://test.spamer35.myjino.ru/
Скрипт все еще тут: http://test.spamer35.myjino.ru/sites.../animations.js. Вот он: (function($){ $(document).ready(function(){ $( ".region-harmonika" ).accordion({ header: ".block-title", animate: 1000, heightStyle: "fill" }); $(".region-harmonika").accordion("refresh"); $(window).resize(function() { $(".region-harmonika").accordion("refresh"); }); var scroll_place = $(".region-harmonika .block-content").toArray(); $.each( scroll_place, function( i, value ) { var funk = function(e){ if(e.originalEvent.deltaY < 0 && $( this ).scrollTop() == 0 ) { $(".region-harmonika").accordion({ active: i-1 }); console.log('Moove up'); } if(e.originalEvent.deltaY >= 0 && $( this ).height() + $( this ).scrollTop() >= this.scrollHeight) { $(".region-harmonika").accordion({ active: i+1 }); console.log('Moove down'); } } $(value).on('wheel', $.debounce(1000, true, funk)); }); }); })(jQuery); Как-то калично это работает. Можно это как-то "плавнее" сделать, как считаете? |
VasyOK,
как то ненормально стало работать, может не использовать accordion, а сделать обычным animate? |
Быть может. Дайте наводку как. Можно без подробных инструкций.
|
Часовой пояс GMT +3, время: 02:51. |