0

У меня странная проблема в IE8. У меня есть куча div в области. Каждый div имеет ту же структуру. Вот основная структура.странная проблема с прокруткой в ​​IE8

<div class="brandImage"> 
    <div style="display:none;"> 
     <a><img/></a> 
     <div><a href="/different/page.aspx"><span>See More</span></a></div> 
    </div> 
</div> 

Каждый brandImage ДИВ имеет на парения слушателя, который даст внутренний DIV display:block упиваясь изображения и позволяет пользователю щелкнуть через.

Все эти «плитки» содержатся в div с заданной высотой и имеют прокрутку, используя плагин jquery.mCustomScrollbar.

Он работает со всеми плитами над сгибом, однако, когда вы начинаете прокручивать вниз под сгибом, если вы нажмете на один из плит, на mousedown вызовет прокрутку контейнера. Если контейнеру не нужно прокручивать очень далеко или вы отпустите кнопку мыши достаточно быстро, чтобы завершить щелчок, он будет работать.

Мой вопрос: что может вызвать прокрутку на мероприятии mousedown?

+0

Ну, возиться с поведением прокрутки по умолчанию является _asking for trouble_. Кроме того: по крайней мере, живой пример, пожалуйста. – CBroe

+0

@ CBroe да есть. Но дизайнер настаивал. – DFord

ответ

0

Плагин по умолчанию для прокрутки по фокусу. Функция, которая была вызвана на focusin. Это прокрутка контейнера. Вот код из плагина.

/*scrolling on element focus (e.g. via TAB key)*/ 
     if($this.data("autoScrollOnFocus")){ 
      if(!$this.data("bindEvent_focusin")){ 
       mCustomScrollBox.bind("focusin",function(){ 
        mCustomScrollBox.scrollTop(0).scrollLeft(0); 
        var focusedElem=$(document.activeElement); 
        if(focusedElem.is("input,textarea,select,button,a[tabindex],area,object")){ 
         var mCSB_containerPos=mCSB_container.position().top, 
          focusedElemPos=focusedElem.position().top, 
          visibleLimit=mCustomScrollBox.height()-focusedElem.outerHeight(); 
         if($this.data("horizontalScroll")){ 
          mCSB_containerPos=mCSB_container.position().left; 
          focusedElemPos=focusedElem.position().left; 
          visibleLimit=mCustomScrollBox.width()-focusedElem.outerWidth(); 
         } 
         if(mCSB_containerPos+focusedElemPos<0 || mCSB_containerPos+focusedElemPos>visibleLimit){ 
          $this.mCustomScrollbar("scrollTo",focusedElemPos,{trigger:"internal"}); 
         } 
        } 
       }); 
       $this.data({"bindEvent_focusin":true}); 
      } 
     } 

Когда я инициализировать плагин, я установил autoScrollOnFocus ложь, и не было никакой проблемы.

Смежные вопросы