javascript - 事件监听器只工作一次
问题描述
当滚动值 >= 500 时,我有一个更改 CSS 的代码:
var appearScroll = function(){
let fline = document.getElementById("skills__listone");
var skills = document.getElementById("skills");
var baselocation = 0;
fline.style.opacity = 0;
var distance = window.pageYOffset;
window.addEventListener("click", function(){
if ( distance >= 600 ){
fline.style.opacity = 1;
}
})
};
appearScroll();
这仅适用于一次,例如当滚动值为 200 并且我单击鼠标时,没有任何反应(没关系,因为距离 >= 600),但是当滚动值(例如 700)时,没有任何反应,因为单击功能已经在运行。该功能必须观察距离值并取决于 IT 得出结果
解决方案
var distance = window.pageYOffset;
此行应位于单击事件函数内,以获取window.pageYOffset
每次单击时的当前值。
像这样:
window.addEventListener("click", function(){
var distance = window.pageYOffset; // <-- here
if ( distance >= 600 ){
fline.style.opacity = 1;
}
})
推荐阅读
- python - 如何在 conda 虚拟环境下 pip 安装包
- java - 为什么在 Windows 中没有执行 4 分钟睡眠的无限 while 循环的 java 代码?
- regex - 如何在火花数据框中应用预定义的正则表达式模式?
- spring-boot - 为什么我在 CloudFoundry 中缺少 Spring Actuator 2 端点,而相同的设置在本地工作?
- php - 使用php将excel数据导入数据库表
- ballerina - Ballerina 函数用于限制浮点数中的小数点
- javascript - 在 Column Highcharts 中,自定义添加具有特定偏移量的文本
- c# - 如何从同一网络中的IP地址获取活动用户
- django - 使用 HttpClient 发送数据到 Django 后端
- reactjs - 实施 Facebook Pixel 时收到警告