react hooks 轮播图

import "./index.css";
import { useRef } from "react";
const Demo1 = () => {
  const imgConRef = useRef();
  const containerRef = useRef();
  const changeImg = (index) => {
    const conWidth=containerRef.current.clientWidth;
    imgConRef.current.style.transform = `translateX(
      -${index * conWidth}px)`;
  };
  return (
    <div className="box" ref={containerRef}>
      <div className="see-con" ref={imgConRef}>
        <div
          style={{ backgroundColor: "greenyellow" }}
          className="colorbox"
        >
          1
        </div>
        <div
          style={{ backgroundColor: "#f67" }}
          className="colorbox"
        >
          2
        </div>
        <div
          style={{ backgroundColor: "#f986" }}
          className="colorbox"
        >
          3
        </div>
        <div
          style={{ backgroundColor: "#f23347" }}
          className="colorbox"
        >
          4
        </div>
      </div>
      <ul>
        <li onClick={() => changeImg(0)}>1</li>
        <li onClick={() => changeImg(1)}>2</li>
        <li onClick={() => changeImg(2)}>3</li>
        <li onClick={() => changeImg(3)}>4</li>
      </ul>
    </div>
  );
};
export default Demo1;
.box{
    margin: 0;
    padding: 0 0;
    box-sizing: border-box;
    width: 100%;
    height: 400px;
    background-color: aquamarine;
    overflow: hidden;
}

.see-con{
    width: 400%;
    height: 300px;
    background-color: bisque;
    border-radius: 2px solid black;
    transition: transform 0.5s ease-in-out;
}
.colorbox{
    width: 25%;
    height: 300px;
    float: left;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值