我想制作一个脚本,使div
header
的标识符header
更细,滚动时更粗,当您返回页面顶部时更粗。但是我遇到了一个问题:当我向下滚动时,header
会变得更薄,但是当我回到页面顶部时,它不会变得更厚,而且如果你重新加载网页就在某个地方在中间,然后你到顶部,var head = document.getElementById('header');
var height = 100;
var sourceCoord = head.getBoundingClientRect().top + window.pageYOffset;
var id;
document.addEventListener("scroll", function() {
if (window.pageYOffset > sourceCoord) {
id = setInterval(function() {
if (height == 50) clearInterval(id);
else {
height--;
head.style.height = height + "px";
}
}, 10);
head.style.position = 'fixed';
} else if (window.pageYOffset <= sourceCoord) {
id = setInterval(function() {
if (height == 100) clearInterval(id);
else {
height++;
head.style.height = height + "px";
}
}, 10);
head.style.position = "absolute";
}
});
只变厚一次。
我做错了什么?
<div id="header"></div>
&#13;
protected function validator(array $data)
{
return Validator::make($data, [
'verify_by' => 'required',
]);
}
&#13;
答案 0 :(得分:0)
问题在于您在页面加载时计算sourceCoord
,而在滚动时它实际上会发生变化。将它包含在滚动侦听器中,你应该很好。