2014-10-20 8 views
-1

Я хотел бы добиться того, чтобы удалить классы класса или скрыть при прокрутке вверх или вниз (во избежание лаг). У меня есть следующий код:Удалить класс при прокрутке вверх или вниз

var $div = $('#div'); 
$div.on('mouseenter', '.box', function() { 
    $(this).find('span.category').addClass('bg-category'); 
    $(this).find('.post-options').show(); 
}); 

и // на отпуск:

$div.on('mouseleave', '.box', function() { 
    $(this).find('span.category').removeClass('bg-category'); 
    $(this).find('.post-options').hide(); 
}); 

В принципе, у меня есть много изображений, и при прокрутке в то время как мыши наведен на .box она отстает страницу значительно. Таким образом, я хотел бы добиться того, чтобы удалить этот класс не только на «mouseleave», но и при прокрутке вверх или вниз по странице.

Как и Google, при прокрутке на картах контента вы заметите, что на мыши наведите указатель мыши вверх, но после прокрутки они удаляются. например: https://plus.google.com/communities/100354381402619402956

ответ

0

Вы можете попробовать это:

var lastScrollTop = 0; 
$(window).scroll(function(event){ 
    var st = $(this).scrollTop(); 
    if (st > lastScrollTop){ 
    // downscroll code 
     $("#div").find('.post-options').show(); 
     $(".box").delay(800).addClass('dummyclass'); 
    } else { 
    // upscroll code 
     $("#div").find('.post-options').hide(); 
     $(".box").delay(800).addClass('dummyclass'); 
    } 
lastScrollTop = st; 
}); 
+0

спасибо за ваш ответ, да, что на самом деле работает, но я забыл упомянуть, если пользователь останавливает прокрутку Я хотел бы класс, чтобы быть добавлены без необходимости повторного -hover на .box, если вы понимаете, что я имею в виду? – Emanradin

+0

@Emanradin: Как называется класс, который нужно добавить, когда пользователь перестает прокручивать? И куда вы хотите добавить? – Jinandra

+0

класс называется 'bg-category', и он будет находиться под '.box'> span.category> bg-category. Я не уверен, будет ли работать «наводка»? – Emanradin