Ken428965 2022-09-19 18:25 采纳率: 53.4%
浏览 17
已结题

react,如何防止大盒子的ontouchstart和ontouchend事件效果继承到子盒子?

在使用的react版本如下:

img


已写的代码如下:

import React from 'react';
import { Grid } from 'antd-mobile';
import './style.css';
let arr = [{
  p: '家住琶洲',
  span: '前景可期',
  src: require('./1.jpg')
}, {
  p: '家住琶洲',
  span: '前景可期',
  src: require('./2.jpg')
}, {
  p: '家住琶洲',
  span: '前景可期',
  src: require('./3.jpg')
}, {
  p: '家住琶洲',
  span: '前景可期',
  src: require('./4.jpg')
}]
export default () => { 
    return(
      <div className='grid'>
      <Grid columns={2} gap={4}>
      {arr.map((item,index) => {
      return (
        <Grid.Item key={index}>
        <div className='grid-demo-item-block'
          onTouchStart={e => e.target.style.backgroundColor = 'gray'} 
          onTouchEnd={e => e.target.style.backgroundColor = 'white'}
        >
          <div className='g'>
            <p>{item.p}</p>
            <span>{item.span}</span>
          </div>
          <img src={item.src} alt='' />
          </div>
        </Grid.Item>
      )
    })}
    </Grid>
    </div>
    )
}

目前的效果是当手指按下其中一个盒子时,如果按中里面的p或span或img时,他们自己会单独变灰色,这样的效果不太美观:

img


希望实现如下效果:

img


请问如何调整代码才能实现想要的效果?

  • 写回答

1条回答 默认 最新

  • 撸空投的菜鸟 2022-09-19 19:24
    关注
    
    .grid-demo-item-block:active {
      background-color: red;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月20日
  • 已采纳回答 9月20日
  • 创建了问题 9月19日

悬赏问题

  • ¥15 51单片机使lcd显示器开机闪烁预设字符闪烁3次需要加什么代码
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥15 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题