带有Transform Scale错误的自定义JavaScript滚动条(jScrollPane)

时间:2013-11-20 10:48:05

标签: javascript jquery css transform jscrollpane

我希望有人知道一种方法(或方向)来纠正jScrollPane在缩放转换时对渲染缺乏支持。

对于使用较大scaleFactors缩放的容器,滚动条通常会卡在底部。滚动条也倾向于加速远离鼠标拖动以建议未命中计算。

我也尝试过使用库“mCustomScrollbar”的方法,并得到了相同的结果。这可能是一个jQuery问题。据我所知,jQuery UI(主要是拖动)也存在变换缩放问题。

这是一个例子: http://jsfiddle.net/u8u3g/3/

#scene-1 {
    width: 800px;
    height: 500px;
    transform-origin: 0 0;
    -ms-transform-origin: 0 0; /* IE 9 */
    -webkit-transform-origin: 0 0; /* Safari and Chrome */
    transform: scale(0.8);
    -ms-transform: scale(0.8); /* IE 9 */
    -webkit-transform: scale(0.8); /* Safari and Chrome */
}

<div id="scene-1">
    <div class="container">
        <div class="inner">
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
            <p>lorem ipsume</p><br />
        </div>
    </div>
</div>

$(function() {
    $('.inner').jScrollPane();
});

我认为jScrollPane由于某种原因无法在缩放后重新计算容器的内部高度。

非常感谢任何支持。

1 个答案:

答案 0 :(得分:2)

我也遇到了同样的问题。问题是,当应用“缩放”功能时$.width()始终返回原始值,但$.position()会根据比例返回。

问题本身,我决定完成插件。现在他能够确定当前的状态 “缩放”并将所有使用$.position()获得的值除以。这解决了这个问题。这是插件bugfixed的链接:jquery.jscrollpane.js(fixed-by-@snake_345).zip

对于您应用插件的元素,请不要忘记添加position:relative。