点击header.top
后,我希望position:absolute
成为.icon-search
。
但我还想计算当前位置(因为它是固定的)并用+ position: absolute
将其覆盖到当前属性。
但是当我执行此操作时,它会多次触发$header.offset()
和console.log($currentPos.top)
,这会导致我的currentPos.top
在开始时正确,但随后突然变为0。
控制台日志中的示例:
1800 0 0 0
当我离开覆盖部分时,控制台日志将显示:
(6)1800
因此,由于某种原因,它会激活6次该功能。
var $header = $('header.top');
$document.on('click', '.icon-search', function () {
$currentPos = $header.offset();
console.log($currentPos.top);
$header.css("position", "absolute");
$header.css("top", "currentPos.top");
$searchBtn.off('click');
$searchContainer.addClass('search-open');
$input.val("");
$input.focus();
});
注意:这是放在滚动函数中,也许这与它有关?
$document.on('scroll', function()
{
if ($document.scrollTop() > 20)
{
//function here
}
}