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

安丘做网站嘉祥县建设局官方网站

安丘做网站,嘉祥县建设局官方网站,网站设计 ipad,域名备案注销流程基于HDialog的特殊动画效果实现 业务场景 在开发过程中直接使用HDialog所展现的效果很快#xff0c;同时不能够与用户所点击位置进行交互#xff0c;会造成用户的体验观感不够好。因此需要实现一种能够从用户点击按钮位置以可变动画效果所展现的Dialog效果。 工作原理及实…基于HDialog的特殊动画效果实现 业务场景 在开发过程中直接使用HDialog所展现的效果很快同时不能够与用户所点击位置进行交互会造成用户的体验观感不够好。因此需要实现一种能够从用户点击按钮位置以可变动画效果所展现的Dialog效果。 工作原理及实现思路 1 基本定位图1标识了实现特殊动画效果所需要的主要位置信息其中最大的蓝色框表示浏览器大小蓝色三角表示用户点击位置。由于需要从用户点击位置对动画进行触发因此考虑到使用transform-origin属性。随后需要通过计算得到用户点击位置相对于HDialog弹出框的位置即offsetTop-clickpos.y与offsetLeft-clickpos.x将transform-origin属性设置为此相对位置即可完成基本定位。 2 事件处理根据1的分析用户点击按钮以触发弹出框的过程中需要得到用户所点击的位置因此需要在当前document.documentElement上添加额外的点击事件以获取用户点击位置同时需要触发捕获使此点击事件在弹出框触发点击事件前执行。 3 添加动画通过控制台调试得知在HDialog弹出与隐藏的过程中其Dom元素会分别动态添加dialog-fade-enter-active类与dialog-fade-leave-active类通过在此动态类的子自定义组件类custom-class所设置上添加动画即可完成HDialog的特殊动画效果。 代码实现 script setup langts import { nextTick, ref, watch } from vueconst visible ref(false) const visible_or ref(false) const mousePosition {x: 0,y: 0, }; function handleMouseMove(e: MouseEvent) {mousePosition.x e.x;mousePosition.y e.y; } document.documentElement.addEventListener(click, handleMouseMove, true); const modalRef refany();watch(() visible.value,async(value) {console.log(visible change, value);if (value) {await nextTick();const node: HTMLElement document.querySelector(.h-dialog.dialog-demo) as HTMLElement;const computedStyle window.getComputedStyle(node); let width;if (/px/g.test(computedStyle.width)) {// 如果宽度是像素类型// 正则替换像素成为数字格式width Number(computedStyle.width.replace(/px/g, ));} else {// 宽度为百分比类型// 正则替换百分比并转化为数字格式width document.documentElement.clientWidth * (Number(computedStyle.width.replace(/%/g, )) / 100);}const top computedStyle.marginTop.replace(/px/g, ); // 对话框距离顶部的距离// 计算变换偏移const transformLeft mousePosition.x - (document.documentElement.clientWidth - width) / 2; // 本质上为对话框左上角的 x 距离触发点 x 的距离const transformTop mousePosition.y - Number(top); // 本质上为对话框左上角的 y 距离触发点 y 的距离node.style.transformOrigin ${transformLeft}px ${transformTop}px;}} )/scripttemplatediv classflex flex-col gap-2div修改版本/divdiv classflex testh-button clickvisible true基础用法/h-buttonh-dialog refmodalRef v-modelvisible title提示 custom-classdialog-demo你好啊这是一个弹框的基本功能template #footerh-button typeprimary clickvisible false确 定/h-buttonh-button clickvisible false取 消/h-button/template/h-dialog/div/divdiv classflex flex-col gap-2div原始版本/divdiv classflex testh-button clickvisible_or true基础用法/h-buttonh-dialog refmodalRef v-modelvisible_or title提示你好啊这是一个弹框的基本功能template #footerh-button typeprimary clickvisible_or false确 定/h-buttonh-button clickvisible_or false取 消/h-button/template/h-dialog/div/div /templatestyle .dialog-fade-enter-active .h-dialog.dialog-demo {animation: ani-open .3s ease; }.dialog-fade-leave-active .h-dialog.dialog-demo {animation: ani-close .3s ease; } keyframes ani-open {0% {transform: scale(0);}100% {transition: scale(1);} }keyframes ani-close {0% {transform: scale(1);}100% {transform: scale(0);} } /styleframes ani-close {0% {transform: scale(1);}100% {transform: scale(0);} } /style
http://www.hkea.cn/news/14434678/

相关文章:

  • 青岛网站制作工具有做自由行包车的网站
  • 精仿手表网站怎么在淘宝上做网站
  • 网站开发和设计建设工程合同管理多少分及格
  • 京东商城官方旗舰店电商网站如何做seo
  • 扬州建设工程招聘信息网站石家庄做外贸的网站
  • python可以做网站动漫制作专业就业
  • 网站个人备案 企业备案重庆开县网站建设公司推荐
  • 网站公司好做吗广告设计与制作就业率
  • 网站建设制作人员招聘要求阐述网络营销策略的内容
  • 建设公司网站的必要性番禺网站建设多少钱
  • 免费的自建视频网站网站和管理系统的区别
  • 怎么打开文件做的网站怎么做网页赚钱
  • 无锡网站建设价格低wordpress ssd hdd
  • 简单的网站更新 关键词优化 关键词互联德州seo排名
  • 济南手机网站建设专业定制校园网站建设培训的心得体会
  • 建设注册中心网站首页网站设计与网站建设书店
  • 网上做题扣分在哪个网站上做网站建设专业性的评价内容
  • 网站开发都用什么语言微信公众平台可以导入wordpress
  • 获取网站域名wordpress 股票 插件
  • 深圳建站科技有限公司北京商场有哪些地方
  • 金乡网站建设哪家便宜百度推广营销页
  • 网站商城建设实训心得怎么做天猫内部券网站
  • 校园服装网站建设预算沈阳网站seo排名公司
  • 上海网站制作网免费地方域名注册
  • 大同网站建设费用建筑安全员证查询网上查询官网
  • 网站规划建设与管理维护论文做外贸推广自己网站
  • 麻涌镇网站建设公司购买国外服务器
  • 建设大马路小学网站wordpress最详细的教程视频教程
  • 常见的建站工具修改wordpress用户名
  • 深圳网站建设定制开发服务深圳网站设计哪家快