Как исчезнуть при отключении мыши, когда мышь щелкается и перетаскивается, а затем исчезает?

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

Проблема, с которой я сталкиваюсь, заключается в том, что если пользователь щелкает и перетаскивает дескриптор полосы прокрутки и отпускает мышь в любом месте, кроме дескриптора полосы прокрутки, он ломается и больше не исчезает и не исчезает.

Вот мой код попытки...

$('#scrollbar1').tinyscrollbar({ size: 790, sizethumb: 100, wheel: 20, scroll: true });
$('.scrollbar').hide();

var mouseStillDown = false;

$('.thumb').mousedown(function() {
    mouseStillDown = true;
    console.log(mouseStillDown);
});

$('.thumb').mouseup(function() {
    mouseStillDown = false;
    console.log(mouseStillDown);
});


$('.viewport').mouseenter(
     function(){ 
         $('.scrollbar').fadeIn();
     }
);

 $('.viewport').mouseleave(
     function(){
         if (mouseStillDown == false) {
             $('.scrollbar').fadeOut();
         }
     }
);

И вот ссылка, если поможет...

Заранее спасибо за любой отзыв!


person DanV    schedule 30.01.2012    source источник


Ответы (1)


Вы можете установить mouseStillDown = false; в mouseleave, прежде чем проверять, есть ли mouseStillDown == false. Вы можете попробовать это. Пожалуйста, дайте отзыв.

person Soumalya Banerjee    schedule 30.01.2012
comment
Спасибо @Soumalya! Это решает проблему, но создает другую. Теперь, когда вы прокручиваете, то есть щелкаете мышью и перетаскиваете ручку, если вы наведете курсор мыши за пределы области, полоса прокрутки исчезнет. В идеале, когда пользователь прокручивается, я бы не хотел, чтобы он вообще исчезал. Проверьте ссылку, и вы увидите обновление - person DanV; 30.01.2012
comment
ладно, дружище, извини за опоздание. Не могли бы вы дать ссылку еще раз? Поскольку он ищет имя пользователя и пароль. - person Soumalya Banerjee; 02.02.2012
comment
Не беспокойся. Сайт теперь работает по адресу www.indoorplaymagazine.co.uk/Directory/ Это не большая проблема, но было бы неплохо ее исправить. Ваше здоровье! - person DanV; 03.02.2012
comment
Теперь добавьте if(mouseStillDown == true) return; непосредственно перед тем, как сделать mouseStillDown = false;. Надеюсь, это поможет. - person Soumalya Banerjee; 03.02.2012
comment
Боюсь, не повезло. Это в основном заставляет его функционировать так, как у меня было изначально. Если вы не наведете курсор мыши на полосу прокрутки, она сломается. - person DanV; 06.02.2012