IE8中奇怪的滚动问题

时间:2014-03-05 20:30:49

标签: javascript jquery html internet-explorer-8 ie8-compatibility-mode

我在IE8中有一个奇怪的问题。我在一个区域有一堆div。每个div都具有相同的结构。这是基本结构。

<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都有一个on hover监听器,它会给内部div一个display:block陶醉图像并允许用户点击。

所有这些“图块”都包含在具有设置高度的div中,并且可以使用jquery.mCustomScrollbar插件滚动。

它适用于折叠上方的所有瓷砖,但是,当您开始向下滚动折叠时,如果您单击其中一个图块,mousedown将导致容器向上滚动。如果容器不必滚动很远,或者你足够快地释放鼠标按钮以完成点击它将起作用。

我的问题是导致mousedown事件向上滚动的原因是什么?

1 个答案:

答案 0 :(得分: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设置为false,没有问题。