javascript - 获取div的滚动进度
问题描述
我正在尝试编写一个 vue 标头组件,当用户从 div 的顶部滚动到底部时,该组件会从 0 到 1 淡化模糊的图像覆盖。我无法让这个功能为我正常工作。
我现有的代码如下:
.header.-standard(:scroll='onScroll()')
transition(name='fade-in' appear)
figure
img(:src="require(`@/assets/img/backgrounds/${background}`)" @load="onBgLoad")
img.blurred(:src="require(`@/assets/img/backgrounds/${backgroundBlurred}`)")
props: {
value: {
type: Number,
default: 0.5,
},
}
data: function() {
return {
progress: 0,
};
},
methods: {
onScroll() {
const progress = document.getElementById(this.id).scrollTop / (document.getElementById(this.id).scrollHeight - document.getElementById(this.id).clientHeight);
if (progress > 1) {
this.progress = 1;
} else if (progress < 0) {
this.progress = 0;
} else {
this.progress = progress;
this.progress = this.value;
}
console.log(this.progress);
},
}
电流输出:
进度数据保持在道具默认值并且永远不会更新,我没有任何控制台错误。
解决方案
推荐阅读
- c++ - POD 类型是否完全等同于普通的标准布局类型?
- javascript - 为什么 node-sass --watch 会破坏构建(但仅在 Linux 上)?
- node.js - 每 5 秒刷新一次 - 如何缓存 s3 文件?
- css - 变换:旋转在跨度上什么都不做
- python - 如何只显示当前时间
- asp.net-core - 在我的 aspnet 核心应用程序中使用非通用 ILogger 的最简单选择
- c# - 在所有 ASP.NET MVC 视图中使用动态视图
- javascript - 打开多个应用程序选项卡时通知未关闭
- symfony - 将数据数组传递给表单
- python - 如何将 --force-with-lease 与 (GitPython) git.remote.Remote 一起使用?