Как сделать ракрытие пунктов аккордеона по движению колесом внутри каждого пункта?
Приветствую специалистов по 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, время: 11:25. |