【发布时间】:2017-06-15 16:19:42
【问题描述】:
我有一张以opacity = 1开头的图片。
当鼠标进入图像时,更改opacity = 0.5。当鼠标离开图像时,将不透明度改回来。
这是一个代码:
mouseEnter() {
console.log('mouse enter')
const classname = '.' + this.props.post.code
document.querySelector(classname).classList.add('image-hover-opacity')
}
mouseLeave() {
console.log('mouse leave')
const classname = '.' + this.props.post.code
document.querySelector(classname).classList.remove('image-hover-opacity')
}
render() {
<img src={src} onMouseEnter={::this.mouseEnter} onMouseLeave={::this.mouseLeave} />
}
onMouseEnter 和 onMouseLeave 分别在鼠标进入和离开图像时触发,很好。但问题是当我在图像内移动鼠标时,onMouseEnter 和 onMouseLeave 都会被触发。
我也尝试过 css 解决方案,当我将鼠标悬停在图像上时,更改 opacity 属性。但问题是一样的:当我在图像内移动鼠标时,:hover 和 not hover 会被触发多次。
如何解决这个问题?谢谢
更新 我以前的代码中有一些东西。创建了一个jsfiddle,它可以工作。 对不起各位
【问题讨论】:
-
Can't reproduce it。但是对于这些东西,你通常还是应该使用 CSS,也许给我们展示更多代码?
-
你为什么不用 CSS
:hover{ opaclty:0.5 }? -
@prosti 我已经尝试过 css 方式。但是当我在图像内移动鼠标时,不透明度在 0.5 和 1 之间切换
-
@BenjaminLi,我更新了它的工作示例。
标签: reactjs hover mouseevent mouseenter mouseleave