0

水平スクロールを含むプロジェクトに jScrollPane を実装しています。クライアントは、ユーザーが基本的にスライドからスライドにジャンプできるように、水平スクロールが段階的に行われることを望んでいます。

jScrollPane の API と「scrollByX」を使用して、矢印でこれを行うことができます。ただし、問題は、ユーザーがクリックして前後にドラッグし、コンテンツをスクロールできるスクロールバーにあります。

「scrollByX」(または「scrollByY」) を jspDrag に割り当てて、ユーザーがスクロールバーをドラッグしたときに、スクロールが連続的ではなく増分的になるようにする方法はありますか?

前もって感謝します。

4

1 に答える 1

0

jsp-scroll-xイベントの後にmouseupイベントをリッスンでき、最も近いアイテムがどこにあるかを把握し、jScrollPaneAPIを使用してその要素の位置までスクロールできます。私はあなたが見つけた例を更新して、このように機能するようにしました(以前は前方にスクロールしただけであることに気づきました):

http://www.jsfiddle.net/dzvSC/14/

(明らかに、このコードは垂直方向に機能していますが、yをxに、上部を左に変更することもできます)

var api = $('.scroll-pane').jScrollPane().bind(
    'jsp-scroll-y',
    function(event, scrollPositionY, isAtBottom, isAtTop)
    {
        $(document)
            .unbind('mouseup.jsp-demo')
            .bind(
                'mouseup.jsp-demo',
                function()
                {
                    $(document).unbind('mouseup.jsp-demo');
                    var currentY = api.getContentPositionY(),
                        lastY = 0;
                    api.getContentPane().find('>*').each(
                        function()
                        {
                            var thisY = $(this).position().top,
                                destY;
                            if (thisY > currentY) {
                                destY = currentY - lastY > thisY - currentY ? thisY : lastY;
                                api.scrollToY(destY, true);
                                return false;
                            }
                            lastY = thisY;
                        }
                    );
                }
            );
    }
).data('jsp');

元の答え:

あなたがやりたいことをすることは可能であり、私はどこかに例を書きました。jScrollPaneメーリングリストで追跡できる場合があります。この例では、垂直スクロールペインであり、スクロールバーを離したときに最も近い画像にアニメーション化されています。実際の例はjsfiddle.netにありました。

私は今急いでいて、例を見つけることができませんが、それはあなたを助けるかもしれません。私が次にコンピューターの前にいるときにそれが見つからない場合は、それを追跡してこの回答を更新しようとします...

于 2011-01-21T16:50:48.547 に答える