日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

react 制作一個 從頂部劃出的浮層。demo

作者:yunchong_zhao 更新時間: 2022-04-17 編程語言

在這里插入圖片描述
這個可能更多的就是css樣式上的書寫,js上很簡單就是個狀態的控制
封裝一個 FloatTop.jsx


import "./index.scss"
const FloatTop  =  ({ children, showMask, handleChange}) => {
    return (
        <div className="float-container">
            <div className="content">
                <div className={`slot-content ${showMask && ' show'}`}>
                    { children }
                </div>
            </div>
            <div onClick={handleChange} className={`mask ${showMask && 'show'}`}></div>
        </div>
    )
}

export default FloatTop;

index.scss

.float-container {
    position: fixed;
    width: 100%;
    left: 0;
    top: 0;
    .content {
        position: relative;
        height: 0;
        z-index: 3;
        .slot-content {
            position: absolute;
            width: 100%;
            box-sizing: border-box;
            bottom: 0;
            background-color: white;
            border-radius: 0 0 10px 10px;
            overflow: hidden;
            transition: transform 0.2s ease-in-out;
            z-index: 9;
            padding: 20px;
            transform: translateY(0%);
            &.show {
                transform: translateY(100%);
            }
        }
    }
    .mask {
        position: absolute;
        z-index: 1;
        width: 100%;
        height: 100vh;
        top: 0px;
        transition: all 0.2s linear;
        background-color: rgba(0, 0, 0, 0);
        display: none;
        &.show {
            background-color: rgba(0, 0, 0, 0.5);
            pointer-events: inherit;
            display: block;
        }
       
    }
}

然后就是引用和使用了

import { useState } from "react"
import "./App.scss"
import FloatTop from './components/FloatTop';
function App() {
  const [status, setStatus] = useState(false)
  return (
    <div className="App">
      <FloatTop showMask={status} handleChange={() => setStatus(false)}>
        <div className="test-sass">hello world</div>
      </FloatTop>
      <button onClick={() => setStatus(status => !status)}>顯示</button>
    </div>
  );
}

export default App;

這個 也可以在小程序中使用 原理差不多

關注我 持續更新前端知識

原文鏈接:https://yunchong.blog.csdn.net/article/details/122218174

欄目分類
最近更新