我正在编写React应用,iOS遇到一个独特的问题,即onClick
和onMouseEnter
一起使用时无法按预期工作。第一次按下时,onMouseEnter
会触发,只有第二次按下时,onClick
会触发。预期的行为是单按,省略了onMouseEnter
。
该项目的目标是使行为尽可能一致和通用。
<ItemContainer
onMouseEnter={() => {
if (expand) this.setState({ hover: true })
}}
onMouseLeave={() => {
if (expand) this.setState({ hover: false })
}}
onClick={() => {
if (expand) expand({
expand: true,
carl: true
})
}}
hover={this.state.hover}
>
</ItemContainer>
行为:
const ItemContainer = styled.article`
cursor: pointer;
${ props => props.hover ?
css`
transform: scale(1.1);
`
: null}
`
请注意,这是仅限iOS的行为,Android会正确忽略onMouseEnter
悬停属性。鉴于此问题,我想知道哪些事件可以在Web,Android和iOS上针对触摸和鼠标正常运行(忽略或不执行任何操作)。