首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在scroll上显示图像时更改文本

在scroll上显示图像时更改文本
EN

Stack Overflow用户
提问于 2019-03-22 14:56:03
回答 1查看 639关注 0票数 1

我正在建立一个与反应与大全宽垂直滚动图像组合网站。在网页的一侧有一个单独的文本框,我想显示每个图像的标题,因为每个图像进入视图。

对于如何在图像进入视图时更改DIV中的文本,有什么建议吗?我甚至不确定要搜索什么才能找到这个问题的答案。任何帮助都是非常感谢的。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2019-03-22 16:55:28

您可以附加一个onscroll侦听器来检测用户何时滚动。在侦听器内部,您需要做一些数学运算来计算当前查看的是哪个元素。可用于计算的变量是scrollTop (在容器上,用于确定当前滚动位置)和每个元素的clientHeight。

代码语言:javascript
复制
let nameDisplayDiv = document.getElementById('display')
let containerDiv = document.getElementById('container')

function refresh() {
  let scrollTop = containerDiv.scrollTop + containerDiv.clientHeight / 2
  let height = 0
  for (let child of containerDiv.children) {
    let top = height
    let bottom = height += child.clientHeight
    if (top < scrollTop && bottom > scrollTop) {
      // Found the element that's currently viewed!
      nameDisplayDiv.innerHTML = child.style.backgroundColor
      break
    }
  }
}

containerDiv.onscroll = refresh

这里有一个有效的工具:https://jsfiddle.net/uxh91Leq/2/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55294364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档