weixin_45967287 2023-10-08 16:58 采纳率: 0%
浏览 4

浏览器滚动后,之前的dom点击事件仍然生效

问题描述:
谷歌浏览器滚动后,原来的dom从中间滚动到了上面,这个时候中间位置有一个视频播放器,在点击拖动视屏播放器的时候,依旧会触发之前dom的点击事件

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-10-08 17:00
    关注

    引自强大而免费的微信小程序:皆我百晓生。


    这个问题可能是因为滚动后,DOM元素的位置发生了变化,但是之前的点击事件仍然会在原来的位置上触发。解决这个问题可以尝试以下方法:

    1. 使用事件委托:将点击事件绑定到父元素上,使用事件委托的方式来处理子元素的点击事件。这样即使子元素的位置发生了变化,点击事件仍然会在正确的元素上触发。
    document.getElementById('parentElement').addEventListener('click', function(event) {
      if (event.target.classList.contains('childElement')) {
        // 处理点击事件的逻辑
      }
    });
    
    1. 监听窗口滚动事件:在窗口滚动时,动态调整视频播放器的位置,确保视频播放器与相关元素保持一致。
    window.addEventListener('scroll', function() {
      // 调整视频播放器的位置
    });
    
    1. 使用CSS固定元素位置:为视频播放器添加CSS样式,让其在滚动时始终保持固定位置。
    .videoPlayer {
      position: fixed;
      top: 50%;
      transform: translateY(-50%);
      /* 其他样式 */
    }
    

    以上方法可以帮助解决浏览器滚动后点击事件仍然在原位置触发的问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月8日

悬赏问题

  • ¥15 VESTA绘图原子颜色显示异常
  • ¥15 天翼云搭建多ip l2tp
  • ¥30 matlab求解刃位错方程
  • ¥15 python实现CAD识图
  • ¥15 如何实现在renpy中创建并应用不同大小尺寸对话框?
  • ¥15 table表格有一列是固定列 滑动到最下面时 固定的那一列有几行没显示出来
  • ¥20 单细胞数据注释时报错
  • ¥20 dify工作流分析sql查询结果
  • ¥15 vscode编译ros找不到头文件,cmake.list文件出问题,如何解决?(语言-c++|操作系统-linux)
  • ¥15 通过AT指令控制esp8266发送信息