如何停止移动Divs离开文档的长度?香草JS

时间:2019-01-28 13:20:33

标签: javascript dom-events

我有几个div,它们在滚动文档时具有事件侦听器,并且它占据滚动的当前Y位置,并且移动div所需的时间很少。像这样:

ypos = window.pageYOffset;
contactLinks.style.top = ypos * 3.5 + 'px';

这意味着如果我继续滚动,div将继续进行。

我如何尝试阻止div脱离innerHeight

我最初尝试将div contactLinks.style.topinnerHeight进行比较,但是它一直转到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';
    }
}

我尝试搜索它,但是可能我说的话不太好,没有太多的运气!

1 个答案:

答案 0 :(得分:0)

contactLinks.style.top是字符串(例如“ 700px”),而window.innerHeight是数字(例如700)。比较它们会产生意想不到的结果。

您可以使用offsetTop:

if (contactLinks.offsetTop >= clientHeight) {
    contactLinks.style.top = clientHeight + 'px';