我有几个div,它们在滚动文档时具有事件侦听器,并且它占据滚动的当前Y位置,并且移动div所需的时间很少。像这样:
ypos = window.pageYOffset;
contactLinks.style.top = ypos * 3.5 + 'px';
这意味着如果我继续滚动,div将继续进行。
我如何尝试阻止div脱离innerHeight
?
我最初尝试将div contactLinks.style.top
与innerHeight
进行比较,但是它一直转到else块。
这是代码:
let clientHeight = window.innerHeight;
document.addEventListener('scroll', parallex);
function parallex() {
if (contactLinks.style.top >= clientHeight) {
contactLinks.style.top = clientHeight + 'px';
} else {
ypos = window.pageYOffset;
contactLinks.style.top = ypos * 3.5 + 'px';
}
}
我也尝试过:
function parallex() {
if (ypos >= clientHeight) {
contactLinks.style.top = clientHeight + 'px';
} else {
ypos = window.pageYOffset;
contactLinks.style.top = ypos * 3.5 + 'px';
}
}
我尝试搜索它,但是可能我说的话不太好,没有太多的运气!
答案 0 :(得分:0)
contactLinks.style.top是字符串(例如“ 700px”),而window.innerHeight是数字(例如700)。比较它们会产生意想不到的结果。
您可以使用offsetTop:
if (contactLinks.offsetTop >= clientHeight) {
contactLinks.style.top = clientHeight + 'px';