HTML / CSS弹出抖动-弹出[已解决]后立即弹出图像

问题描述 投票:-2回答:1

[我试图弄清楚当用户将鼠标移到页面上某个位置时,如何防止弹出图像反复(永远)弹出。

请参见https://codesandbox.io/s/jitterbug-on-popup-25kp4以说明问题。将鼠标悬停在文本Mouse over this and the Jitter Image will appear上可以查看抖动问题。

编辑:因为这是最初发布的,所以我将解决方案合并到显示问题的代码中,现在它也显示了解决方案。

详细信息

以下是对该问题的文字描述,但是代码也确实说明了该问题(并且文字少了很多)。

在具有垂直滚动条的网页上,

  1. 用户将鼠标移到具有MouseEnter JavaScript处理程序的div上。

  2. 触发
  3. on MouseEnter事件,导致图像弹出。

  4. 弹出窗口使滚动条滚动内容。因此,现在,鼠标不再悬停在hover item上,因此会触发MouseLeave事件,从而导致图像弹出。

  5. 随着不再显示图像,滚动条将内容移回弹出和中提琴之前的位置,鼠标位于div上方,并且再次触发MouseEnter事件以弹出图片。

步骤2-4将以浏览器可以跟上的速度永远重复一遍。或当用户移动鼠标以阻止弹出/弹出窗口发生时。

[我已经在其他一些网站上看到了这种情况,现在已经在我身上发生了,我想修复它,但不确定如何。

我已经找到了一种解决方案,但还没有找到。这是我找到的一些链接:

https://css-tricks.com/content-jumping-avoid/-很好,但是建议使用最小高度,这在我的情况下不起作用。

我也尝试过使用overflow:hidden,这确实可以防止上述抖动效应,但使用户无法看到弹出图像的其余部分。但是,这是比上述抖动效果更好的解决方案。

如果影响答案,我正在使用AngularJS和JQuery。

html css
1个回答
1
投票

位置:图像上的绝对位置,将解决此问题,因为在显示图像时它不会改变当前流量,并且滚动条将保持在当前位置。

© www.soinside.com 2019 - 2024. All rights reserved.