点击更改div位置

问题描述:

我正在使用宽松的覆盖。 我有一个粘滞的标题,在某个滚动点之后,它会改变为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

我认为这是你在找什么。我相信你可能会考虑一些用户界面的改进,但是如果你希望一旦点击了另一个元素就能显示标题,这就是我想到的。

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/