5

「.mCustomScrollbar("scrollTo",divID)」関数を使用した要素へのスクロールに問題があるようです。

多くのdiv(各20pxの高さ800 divまでのもの)を含むdiv(id="#wrapper")があります。

次に、この #wrapper div に mCustomScrollbar を追加して、次のようにカスタム スクロールバー機能を使用します。

$("#wrapper").mCustomScrollbar();

現在、実際のリストではなく、リストのように積み重ねられたdivの「リストのような」構造を含む大きなスクロール可能なdivがあります。

私のページの他の場所には、「#wrapper」div内のdiv要素のIDを含むボタンがあります。このボタンをクリックすると、div要素をスクロールして表示したいのですが、これが私の現在の試みです:

var divID = 'div[id^=' + clickedID +']';

$('#wrapper').mCustomScrollbar("scrollTo",divID);

この関数は、#wrapper div 内で「divID」をスクロールして表示すると主張していますが、「divID」が表示されるに「scrollTo」関数を 2 ~ 4 回呼び出すことがあるという問題があります。

「scrollTo」関数の最初の呼び出しで「divID」が表示されない理由と、期待どおりに機能させる方法を理解してもらえますか?

敬具

4

1 に答える 1

6

少し遅れていることはわかっていますが、あなた(またはここに落ちた人)を助けることができるかもしれません...

私はまったく同じ問題を抱えていました。リスト内の選択された項目 (クラスが選択された li) までスクロールし、スクロールしたいピクセルのみを渡すことを解決しました。

何かのようなもの:

var objPixelScrollIntoView = $('#myObjToScrollIntoView')[0].offsetTop;
$('#myDivSetWith_mCustomScrollbar').mCustomScrollbar("scrollTo", objPixelScrollIntoView);

または、特にあなたの場合:

var objDivPosition = $('div#' + clickedID)[0].offsetTop;  // The 'div' before '#' is not necessary, but I want to keep some reference to Your selector
$('#wrapper').mCustomScrollbar("scrollTo", objDivPosition);
于 2014-07-02T11:48:19.670 に答える