2012-07-25 141 views
7

我有以下頁面:磁性DIV:內絕對定位的div固定的div

[LINK]

的頁面被設計爲水平滾動,從而使一系列的div(黑色邊界的)的出現在行。

現在,我內部較小的divs(紅色的)表現爲讓他們永遠不會離開父div,但同時在滾動頁面的同時,我希望它們在父div內移動,就好像它們是固定地定位。

我會用圖解釋自己。我希望我的div的行爲是這樣的:

[LINK]

任何人都可以幫助嗎?謝謝你的時間!

+0

有紅色DIV實際內容?我認爲這將有可能與一個背景圖像和白色的盒子透明背景與厚厚的左右邊界。 – 2012-07-25 10:40:59

+0

這不可能僅使用CSS。你可以在CSS和HTML中檢查MARQUEE,但這並不能解決你的想法。你必須使用JavaScript或jQuery。請將這些添加到您的標籤。 – Narendra 2012-07-25 10:53:02

+0

這解釋瞭如何做到這一點:http:// jqueryfordesigners。com/iphone-like-sliding-headers/ – Kristian 2012-07-25 20:32:16

回答

3

UPDATE


創造了一些最小/實驗jQuery插件: https://gist.github.com/3177804

,你應該能夠使用它像這樣: http://jsfiddle.net/7q3Zu/2/

下載,包括插件 https://raw.github.com/gist/3177804/556074672de8f200327d83f0146d98533c437ac3/jquery.magnetic.js 然後像這樣稱呼它是:

$(function() { 

    $('.container').magnetic({ //call it on some scrollable container 
     selector: '.object', //what to fix 
     left: 180,    //when to fix (px) 
     right: 500    //when to unfix (px) 
    }); 

});​ 

個大氣壓,這只是沒有保單在任何瀏覽器工作的實驗

(可以隨意抓住要點,提高它:)


正如上文評論,你可以用Javascript做到這一點。

下面是使用jQuery上午例如:

http://jsfiddle.net/7q3Zu/

HTML

​<div class="container"> 
<div class="object"></div> 
</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

JS

$(function() { 
    var obj = $('.object'); 
    $(document).on('scroll', function() { 

     var offset = $(this).scrollLeft() 
     //fix the position a some point  
     if (offset >= 200) { 
      obj.css('position', 'fixed').css('left', '20px'); 
     } 
     //..and unfix it later  
     if (offset >= 500) { 
      obj.css('position', 'absolute').css('left', '500px'); 
     } 

    }); 
});​ 

CSS

.container{ 
    width: 4000px; 
    padding: 20px; 
    margin: 20px; 
    border: 1px solid #ccc; 
    height: 400px; 
    position: relative; 
} 
.object{ 
    position: absolute; 
    height: 400px; 
    width :100px; 
    background: red; 
    left: 200px; 
} 
+0

謝謝,我在使用這段代碼時遇到了麻煩,因爲我不是一個真正的js專家......希望我能儘快處理它! – user1551073 2012-07-25 16:58:20

+0

更新了答案(希望)更容易實現... – 2012-07-25 18:48:40