2014-01-16 145 views
0

我正在使用寬鬆的覆蓋。 我有一個粘滯的標題,在某個滾動點之後,它會改變爲position:absolute。點擊更改div位置

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: 0 
     }); 
    } 
});};$('#header').followTo(352); 

我在滾動點後顯示的標題下有一個div。我在那個div中有一個圖標,當點擊時,我想返回標題的位置:'fixed'。我已經嘗試了一個簡單的.click函數,但這不起作用。

極其複雜的小提琴:http://jsfiddle.net/hadronian/9bUqr/

+0

如果你有一個撥弄它會更容易調試[小提琴這裏(http://www.jsfiddle.net) –

+0

我會的,但它是一個更大的項目 – Jacob

+0

所以的一部分做一個小得多的樣本 – cgatian

回答

0

我認爲這是你在找什麼。我相信你可能會考慮一些用戶界面的改進,但是如果你希望一旦點擊了另一個元素就能顯示標題,這就是我想到的。

var windw = this; 

$.fn.followTo = function (pos, resetElement) { 
    var $this = this, 
     $window = $(windw); 
    var fixedCss = { 
     position: 'fixed', 
     top: 0 
    }; 
    var absoluteCss = { 
     position: 'absolute', 
     top: pos 
    }; 

    $window.scroll(function(e){ 
     if ($window.scrollTop() > pos) { 
      $this.css(absoluteCss); 
     } else { 
      $this.css(fixedCss); 
     } 
    }); 
    resetElement.click(function() 
    { 
     $this.css(fixedCss); 
    }); 

}; 

$('#header').followTo(352, $('#down')); 

基本上,通過一第二jQuery的元素的函數(或者只是一個選擇器)和結合該對象時被點擊它的CSS復位到固定的位置上。

就像我說的,爲了讓用戶體驗更好一些,可能會有更多的改進,但希望這可以幫助您走上正確的道路。

http://jsfiddle.net/SfV3N/