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有一個上懸停聽者這將給內的div一個display:block陶醉圖像並允許用戶通過點擊。

所有這些「瓷磚」都包含在具有設置高度的div中,並且可以使用jquery.mCustomScrollbar插件進行滾動。

它適用於摺疊上方的所有拼貼,但是,當您開始在摺疊下方向下滾動時,如果單擊其中一個拼貼,則mousedown將導致容器向上滾動。如果容器不需要滾動很遠,或者釋放鼠標按鍵足夠快以完成點擊,它將起作用。

我的問題是什麼可能導致mousedown事件向上滾動?

+0

那麼,與默認滾動條行爲搞亂是_sking 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爲假,也沒有問題。