2012-04-23 103 views
2

我已經看到了一些這些例子,但是我的情況有點不同,無法弄清楚。將固定div滾動到某個點

我正在使用在這些論壇上發現的一塊jQuery,將固定div滾動到某個點然後停止,使用'scrollTop'。

var windw = this; 

$.fn.followTo = function (pos) { 
    var $this = this, 
     $window = $(windw); 

    $window.scroll(function(e){ 
     if ($window.scrollTop() > pos) { 
      $this.css({ 
       position: 'absolute', 
       top: pos 
      }); 
     } else { 
      $this.css({ 
       position: 'fixed', 
       top: 40 
      }); 
     } 
    }); 
}; 

$('#scrollto-menu-nav').followTo(250); 

不過,我需要它停止當它達到從頂部底部沒有一個高度滾動。有任何想法嗎?

感謝, [R

+0

您可以嘗試計算您希望它從底部停止的物品的總高度,然後從該數字中扣除以達到您希望停止的位置。例如150 - 100會給位置值50。 – KryptoniteDove 2012-04-23 11:53:08

回答

2

你可以做這樣的事情:

HTML

<img src=//ph.artsinn.de alt> 
<div> 
    <p>A short line of text, for better interpretation.</p> 
    <p>Followed by another line, filled with letter and words</p> 
</div> 

<img src=//ph.artsinn.de/240x160/666?text=scroll%20down alt id=obj> 

<img src=//ph.artsinn.de alt> 
<img src=//ph.artsinn.de alt> 
<img src=//ph.artsinn.de alt class=end> 

<div> 
    <p>A short line of text, for better interpretation.</p> 
    <p>Followed by another line, filled with letter and words</p> 
</div> 

<img src=//ph.artsinn.de alt> 
<img src=//ph.artsinn.de alt> 
<img src=//ph.artsinn.de alt> 
<img src=//ph.artsinn.de alt>​ 

CSS

/* not needed */ 
html,body{height:200%} 
img {display:block}​ 

JS

$(function() { 
    var $window = $(window), 
     $sidebar = $("#obj"), 
     sidebarTop = $sidebar.position().top, 
     sidebarHeight = $sidebar.height(), 
     $footer = $(".end"), 
     footerTop = $footer.position().top; 

    $sidebar.css('position', 'fixed'); 
    $window.scroll(function(e) { 
     scrollTop = $window.scrollTop(); 
     topPosition = Math.max(0, sidebarTop - scrollTop); 
     topPosition = Math.min(topPosition, (footerTop - scrollTop) - sidebarHeight); 
     $sidebar.css('top', topPosition); 
    }); 
});​ 

,並再次爲fiddle