2012-01-09 7 views
4

jQueryプラグインSmoothDivScroll(http://www.smoothdivscroll.com/)は、含まれているコンテンツの中央から開始するようにしようとしているため、読み込み時に左右にスクロールバーがあります。私はstartAtElementIdオプションがあることを知っていますが、これは私が中心から始めることを許可しません。SmoothDivScrollをスクロールエリアの中央から開始するようにする

私は中心点を計算して適切な要素に適用しようとしましたが、左のスクロールは常に予想よりも前に停止し、右の要素は下に浮いています。これは運とJS使用してみました

$("div#scroller").smoothDivScroll(); 
    var halfWayDoc = $(document).width()/2; 
    var halfWayScrollArea = $("#scroller .scrollableArea").width() /2; 
    var halfWay = halfWayDoc - halfWayScrollArea; 
    var scrollArea = $("#scroller .scrollableArea").width(); 
    var scrollAreaAdjust = scrollArea + halfWay; 
    $("#scroller .item:first-child").css("margin-left",halfWay); 
    $("#scroller .item:last-child").css("margin-right",halfWay); 
    $("#scroller .scrollableArea").width(scrollAreaAdjust); 

HTMLは次のようになります。

<div id="scroller"> 
    <div class="scrollingHotSpotLeft"></div> 
    <div class="scrollingHotSpotRight"></div> 
    <div class="scrollWrapper"> 
     <div class="scrollableArea"> 
      <div class="item"> 
       <img src="assets/images/detail/Erdem-A-W-11-B2-sml.jpg" alt="example"/> 
      </div> 
         ... 
      <div class="item"> 
       <img src="assets/images/detail/Erdem-A-W-11-B2-sml.jpg" alt="example"/> 
      </div> 

     </div> 
    </div> 
</div> 

すべてのヘルプやポインタが高く評価されています。

乾杯、 ショーン

+0

JsFiddleを使って問題? – Qorbani

+0

@ Qorbani私はここでフィドルを追加しました:http://jsfiddle.net/shaunmorrison/4JeSv/26/ - どのように最初のアイテムが負のマージンを持つかを知る(オフページ) 2番目の項目はウィンドウ境界を越えません。 また、余白があっても 'scrollableArea'幅のためアイテムが正しくシャントされません。 –

答えて

0

http://www.smoothdivscroll.com/index.html#quickdemoが実装される機能を持っているサイトでは基本的なサンプル。アニメーションは、ID "startAtMe" の画像

$("div#makeMeScrollable").smoothDivScroll({ autoScroll: "onstart", autoScrollDirection: "backandforth", autoScrollStep: 1, autoScrollInterval: 15, startAtElementId: "startAtMe", visibleHotSpots: "always" });

から始まります。あなたは、開始する要素にidを指定し、startAtElementId: "startAtMe"をsmoothDivScroll関数に渡してみましたか?ここで

+0

はい、それは始める項目を特定することに依存しています。私はload.Thanks上の画面の中心に表示するスクロール可能領域の正確な中間点を計算する必要がありますが、あなたの提案のためにありがとう。 –

2

私は

// Element for Scroll 
var scrollElement = $("div#scroller"); 

// Enable Smooth Div Scroll 
scrollElement.smoothDivScroll(); 

// Find out Scrollable area's width 
var halfWidth = $("div#scroller .scrollableArea").width()/2; 

// Force scroller to move to half width :-) 
scrollElement.data("scrollWrapper").scrollLeft(halfWidth); 

:-)示唆ソリューションは、この更新プログラム1を見てとることができますので、私は、フィドルを更新している:

を私はこれが助けてくれることを願っています:-)

+0

これはうまくいくようです!私が見る唯一の問題は、折り返しDIVが100%に設定されている場合、左/最初の画像がビューポートを持っている幅にかかわらず常にウィンドウの左側に並んでいるようです。例:http://jsfiddle.net/shaunmorrison/3A9Zy/2/ - ありがとう! –

関連する問題