JavaScript 代码不会导致图像在向后滚动时重新出现

标签 javascript

我有一个图像,如果用户向下滚动窗口超过 1000px,我希望该图像消失。我希望当用户转身并向上滚动时再次出现相同的图像。我编写了以下 JavaScript。此代码当前使图像消失,但如果向后滚动,图像不会再次显示。这就是我想要的,但此代码仅将 display 更改为 "none"。有人可以帮忙吗?谢谢!

function parallex () {
    var ypos = window.pageYOffset; 
    var image = document.getElementById('section_1'); 
    image.style.top = ypos * -.2 + "px"; 

    if (ypos > 1000){
        image = document.getElementById('section_1'); 
        image.style.display = "none"; 
    }
    else {
        image.style.display = "visible";
    }
}

window.addEventListener('scroll', parallex);

最佳答案

您应该将 display 设置为 ''(空字符串)initial,而不是 可见,在你的滚动处理程序中。

编辑: IE 似乎不支持 initial 关键字,因此我建议使用空字符串(如我所用)或 display: block (如上面评论中的 Josiah Keller 所建议)。

我还建议使用三元运算符 (condition ? valueIfTrue : valueIfFalse) 在一行代码中设置 display 属性。

function parallex () {
  var y = window.pageYOffset
  var image = document.getElementById('section_1')
  
  image.style.top = y * -.2 + 'px'
  image.style.display = y > 1000 ? 'none' : ''
}

window.addEventListener('scroll', parallex)
body { height: 3000px; }
<img id="section_1" src="http://www.placehold.it/350x1100" />

关于JavaScript 代码不会导致图像在向后滚动时重新出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42679332/

相关文章:

javascript - 简单的转换练习,方法不返回正确的值

javascript - 嵌套 Node async.eachSeries

javascript - 在同一个导航栏中有两个下拉菜单

javascript - 我如何从 html 表单获取输入并将其添加到 python 脚本中

javascript - 当用户滚动经过页面的特定部分时,jQuery 触发 Action

javascript - 上下文在不同用户之间共享

javascript - javascript 中的自动转换 : Isn't it supposed to convert a string to a number when done like stringvar = 1+stringvar?

javascript - 如何使用 D3.js 设置下拉列表的位置?

javascript - CSS3 或 JavaScript slider 他们是怎么做到的?

python a[1 :] 的 javascript 简写