前端如何实现,用户看到某元素的时候,触发事件?

2022-05-09 18:16:11 +08:00
 Richard14

比较常见的几个需求,

第一个是官网介绍页面,希望用户往下拉的同时,第一次看到某元素时触发一个出现动画。

第二个是例如 v2 这种论坛,希望随着用户往下拉页面,聚焦的评论楼层不同,网址自动变成#某某楼,这样用户跨位置分享也比较方便。

这种需求如何实现呢?似乎只能通过 js 触发,因为元素的具体显示位置在不同平台上不同,没法预设定一个拉到多高多高就触发多少事件的脚本。。。

有什么能配合 vue 使用的方案吗?

1212 次点击
所在节点    问与答
8 条回复
Rache1
2022-05-09 18:18:58 +08:00
IntersectionObserver
SilencerL
2022-05-09 18:52:58 +08:00
ele.getBoundingClientRect().top
renmu
2022-05-09 19:05:18 +08:00
有相应需求的库,但是我想不起来叫啥了
bmwh123
2022-05-09 19:30:47 +08:00
react 的 https://www.react-reveal.com/examples/
vue 的 应该也有吧, 找到一个 js 版本的 https://scrollrevealjs.org/
DOLLOR
2022-05-09 20:34:14 +08:00
christin
2022-05-10 09:57:24 +08:00
用高度来做
CodeCodeStudy
2022-05-10 15:31:19 +08:00
楼上的不够精确啊,楼主说的是“看到某元素”,当元素显示在页面上的时候,用户并不一定能够看得到,想要知道用户看得到,那需要调用摄像头,抓取用户的瞳孔画面,通过分析瞳孔画面得到用户看到影像,位于中间的才算是用户看到该元素。
Richard14
2022-05-10 21:06:58 +08:00
@CodeCodeStudy 你这机灵抖得很无聊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/851806

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX