test

61 阅读1分钟
import SearchPopup from '@/components/SearchPopup'
import { Input } from 'antd'
import React from 'react'
import { useState } from 'react'
import './index.scss'
const Transition = () => {
   const [isSearch,setIsSearch]=useState(false);
  return (
    <div className='container'>
        <div className='header'>
          <div>标题</div>
          //  input focus 事件
          <Input onFocus={()=>setIsSearch(true)}></Input>
          <div>end</div>
        </div>
        // 此处新加的 传入可以关闭弹框的方法
       {isSearch && <SearchPopup hidePopup={()=>setIsSearch(false)}></SearchPopup> }
    </div>
  )
}
export default Transition

components 里 SearchPopup 组件


import React, { useEffect,useRef } from 'react'
import {Input} from 'antd'
import './index.scss'
export default function SearchPopup(props) {
  const inputRef=useRef();
  const autoFocus=()=>{
    inputRef.current?.focus({cursor:'end'})
  }
  useEffect(autoFocus,[])
  return (
    <div className="popup-container" onClick={autoFocus}>
      <div className="masking" onClick={props.hidePopup}></div>
      <div className="popup-content">
        <Input ref={inputRef} />
        <div>tab</div>
      </div>
    </div>
  )
}

index.scss

.popup-container{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  top:0;
  .masking{
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top:0;
    opacity: 0;
  }
  .popup-content{
    position: relative;
    z-index: 3;
    width: 60%;
    margin: 0 auto;
    height: 80%;
    background-color: #ccc;
  }
}