javascript - :hover leads to infinite repaint thrashing 上的相对定位

标签 javascript css

我有一个 <a>标记,呈现为一个按钮,我喜欢在悬停时向北移动一个像素。但是,当将鼠标光标定位在底部边缘时,我注意到一个不需要的行为,悬停被触发,并且一旦按钮被重新定位,悬停就不再处于事件状态。只要光标在该位置,就会导致无限重绘循环。它会耗尽我的 CPU。

我明白为什么会这样,但是,我很想找到一些更优雅的解决方案,而不是将它包装在另一个处理悬停的 div 中,而不会自行移动。

有什么想法吗?

编辑:JsFiddle夸张移动 5px。

我试过这些(都触发相同的循环):

  • position:relative;顶部:-1px;
  • 变换:translateY(-1px);
  • 上边距:-1px;底部边距:1px;
  • 边框顶部:无; border-bottom: 2px .../* 周围通常为 1px */

Edit2:边界技巧奏效了,但边界框不只移动内容。

最佳答案

不确定我是否正确理解你的问题但是 尝试给你的 div 类按钮并使用下面的代码。 $('.button').on('点击', function(){ $('.button').css('margin-top', '15px'); });

关于javascript - :hover leads to infinite repaint thrashing 上的相对定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25008105/

相关文章:

javascript - 如何使用两张单独的图片上传预览?

javascript - 当我的 HTTP 调用因 Internet 访问而失败时,有没有一种方法可以发出错误警报?

javascript - JQuery 模糊动画

html - 沿对 Angular 线拆分为 3 个 div

在浏览器中缩放时 CSS Media 查询行为不当,但在调整窗口大小时则不会

html - 我怎样才能找出实现 twitter Bootstraps Modal 需要什么 CSS。

css - chrome浏览器不显示背景图片

javascript - 禁用 iPhone "save image"弹出窗口

javascript - 自毁 Javascript 函数 - 它是如何工作的?

javascript - 如何在 AngularJS Material 设计中创建一个简单的搜索输入文本?