当前位置: 首页 > news >正文

h5页面使用antd-modal,怎么处理居中且自然

背景

老项目中h5和pc端采用同一个组件来处理前端布局适配的问题,所以用到@media这个媒体查询方法, 先后需要针对不同端做一些样式处理。
问题出现的原因:

在处理modal组件的弹窗居中上,pc端通过transfrom【translate】加上top,left很快就解决了居中问题,并且不会有移动的效果展现给用户;但是h5端,出现了延迟translate移动的问题,导致给用户使用造成弹窗缓慢移动到居中位置的效果

目的

出现这种现象,产品那边肯定是不过关的,所以我们最好是把它扼杀在摇篮里,不要到产品验收的时候再被提出有问题。。。

涉及的技术栈

  • react@16.8以上
  • antd-design@4.x
  • css3
  • 媒体查询@media

先看看效果

弹窗丝滑打开的视频

核心代码处理

less文件的代码:

@media screen and (max-width: 600px) {.my_modal {opacity: 0;&_show {opacity: 1;}}:global {.ant-modal {top: 50%;transform: translateY(-50%);}}
}

react组件的代码

import React, { useState, useEffect } from "react"
import { Modal } from "antd"
import styles from "./index.module.less"
import cx from "classnames"function MyModal(props) {const { open, onCancel } = propsconst [opacity, setOpacity] = useState(false)useEffect(() => {if (open) {// 延迟展示弹窗,避免给用户造成弹窗的闪烁setTimeout(() => {setOpacity(true)}, 500)}return () => {setOpacity(false)}}, [open])return (<Modalfooter={null}open={open}wrapClassName={cx(styles.my_modal, opacity && styles.my_modal_show)}><div>我被丝滑打开了<h2>关闭</h2></div></Modal>)
}export default MyModal

写在最后

如果有帮助到大家,就给博主点个赞吧,助人为乐让我开心开心!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • GO 匿名函数
  • TCP socket
  • G1: Yunli‘s Subarray Queries (easy version)(1900)(定长区间众数)
  • SpringCloud的学习,Consul服务注册与发现、分布式配置,以及 服务调用和负载均衡
  • 【自动化测试】UI自动化的分类、如何选择合适的自动化测试工具以及其中appium的设计理念、引擎和引擎如何工作
  • Ubuntu 22.04 LTS 上安装 Docker
  • 使用jmeter做性能测试实践过程中需要注意什么
  • FreeRTOS学习笔记(七)信号量
  • 《C++代码高度优化之双刃剑:避免过度优化引发的“暗雷”》
  • MySQL中的redo log、 undo log、bin log
  • flink中startNewChain() 的详解
  • 【计网】从零开始使用UDP进行socket编程 --- 服务端业务实现
  • 相亲交友中的用户画像构建方法探讨
  • cfs三层靶机——内网渗透
  • centos中yum方式部署Jenkins
  • 收藏网友的 源程序下载网
  • [LeetCode] Wiggle Sort
  • css系列之关于字体的事
  • Java基本数据类型之Number
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • Nodejs和JavaWeb协助开发
  • PHP变量
  • Promise面试题,控制异步流程
  • React的组件模式
  • Redash本地开发环境搭建
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • SQLServer插入数据
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 阿里研究院入选中国企业智库系统影响力榜
  • 从0到1:PostCSS 插件开发最佳实践
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 给初学者:JavaScript 中数组操作注意点
  • 关于字符编码你应该知道的事情
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 浅谈Golang中select的用法
  • 什么软件可以剪辑音乐?
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 微信小程序--------语音识别(前端自己也能玩)
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 关于Android全面屏虚拟导航栏的适配总结
  • !!Dom4j 学习笔记
  • #每日一题合集#牛客JZ23-JZ33
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (第二周)效能测试
  • (独孤九剑)--文件系统
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • **python多态
  • .bat批处理(六):替换字符串中匹配的子串
  • .bat批处理(一):@echo off
  • .net core 6 集成和使用 mongodb
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .net反编译工具