React-遮罩层

效果图

在这里插入图片描述

JS

import React, { useState, Fragment } from 'react';
import styles from './style.less'
const data = [
    {
        name: '羽神',
        id: 1,
        src: 'https://www.dataojocloud.com/dataeye/v1/data/image/get?imageid=617a5596fd73380b818dc300'
    },
    {
        name: '少主',
        id: 2,
        src: 'https://www.dataojocloud.com/dataeye/v1/data/image/get?imageid=617a559d2ee1bd5a04779569'
    },
    {
        name: '大鼎',
        id: 3,
        src: 'https://www.dataojocloud.com/dataeye/v1/data/image/get?imageid=617a55a011001e6b8ea0cce3'
    },
    {
        name: '赵老威',
        id: 4,
        src: 'https://www.dataojocloud.com/dataeye/v1/data/image/get?imageid=617a55a422a0c62f56684521'
    },

]
const index = () =>
{
    const [isShow, setIsShow] = useState(false)
    const [assignImg, setAssignImg] = useState('')
    const bigImg = (data) =>
    {
        setAssignImg(data)
        setIsShow(true)
    }
    const BackPage = () =>
    {
        setIsShow(false)
    }
    return (
        <Fragment>
            <div className={styles.container}>
                {data.map((data, index) => (
                    <div className={styles.core} key={index}>
                        <img onClick={() => { bigImg(data.src) }} src={data.src} alt={data.name} />
                    </div>
                ))}
            </div >
            <div onClick={BackPage} style={isShow ? { display: '-webkit-box' } : { display: 'none' }} className={styles.imgViewDom}>
                <img src={assignImg} alt="" />
            </div>
        </Fragment>

    );
};
export default index

CSS

.container {
  display: flex;

  .core {
    margin: 20px;
    width: 200px;
    height: 200px;

    img {
      width: 100%;
    }
  }
}

.container img {
  cursor: -webkit-zoom-in;
  cursor: zoom-in;
}

.imgViewDom {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 99999999;
  background: rgba(255, 255, 255, 0.8);
  overflow: auto;
  display: -webkit-box;
  -webkit-box-align: center;
  -webkit-box-pack: center;
  display: -moz-box;
  -moz-box-align: center;
  -moz-box-pack: center;
  display: -o-box;
  -o-box-align: center;
  -o-box-pack: center;
  display: -ms-box;
  -ms-box-align: center;
  -ms-box-pack: center;
  display: box;
  box-align: center;
  box-pack: center;

  -webkit-transition: all 1.0s ease-in-out;
  -moz-transition: all 1.0s ease-in-out;
  -o-transition: all 1.0s ease-in-out;
  -ms-transition: all 1.0s ease-in-out;
  transition: all 1.0s ease-in-out;
  opacity: .8;

  &:hover {
    opacity: 1;
  }
}

.imgViewDom img {
  width: 450px;
  cursor: zoom-out;
  border-style: none;
  border: 0;
  outline: none;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

臧小川

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值