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

建站之星官网 discuz企业网站开发服务合同

建站之星官网 discuz,企业网站开发服务合同,wordpress登录数据库,wordpress数据库创建一、问题 右键显示弹框#xff0c;但是靠近浏览器边缘的部分会被隐藏#xff0c;需要实现弹框位置自适应 二、 问题分析 如果想要最终弹框的宽高不超过屏幕视口#xff0c;就等于屏幕视口的总宽/高减去弹框打开时的起点坐标#xff0c;剩下的部分大于等于弹框的宽/高但是靠近浏览器边缘的部分会被隐藏需要实现弹框位置自适应 二、 问题分析 如果想要最终弹框的宽高不超过屏幕视口就等于屏幕视口的总宽/高减去弹框打开时的起点坐标剩下的部分大于等于弹框的宽/高简单来说可以套用以下公式 1.1 屏幕视口宽clientWidth - 鼠标点击的x轴pageX  弹框宽 1.2 屏幕视口高clientHeight - 鼠标点击y轴pageY  弹框高 三、实现步骤vue3ts) 1.首先获取屏幕视口的宽高 const windowWidth ref(document.documentElement.clientWidth);const windowHeight ref(document.documentElement.clientHeight); 2.获取弹框打开时的起点也就是当前鼠标点击的位置 宽 e.pageX 高e.pageY 3.获取弹框的宽高 在此我给的是固定宽500px高300px如果是动态宽高请自行获取 4.给弹框设置固定定位对应的left和top值如下 left: windowWidth - e.pageX 500 ? e.pageX : windowWidth - 500,  top: windowHeight - e.pageY 300 ? e.pageY : windowHeight - 300, 四、完整代码 1.自定义的弹框组件 !--* Description: 自定义右键弹框组件* FilePath: \Vue3-demo\src\myComponents\rightClickPopUpBox\index.vue -- templatedivclasscontainer:style{left: state.positionStyle.left px,top: state.positionStyle.top px,}v-ifstate.visiblediv classcontent{{ state.title }}/divdiv classfooterel-button sizedefault typesuccess保存/el-buttonel-button sizedefault typeprimary clickcloseDialog取消/el-button/div/div /template script setup langts namepopUpBox import { reactive, ref } from vue;const state: any reactive({visible: false, // 是否显示title: ,positionStyle: {}, });const openDialog (data: any) {state.title 按钮 data.item 的内容区域;state.visible true;// 获取屏幕视口大小const windowWidth ref(document.documentElement.clientWidth);const windowHeight ref(document.documentElement.clientHeight);state.positionStyle {// 这种方案不好因为鼠标点击位置可能超出屏幕视口// top: data.e.pageY,// left: data.e.pageX,left: windowWidth.value - data.e.pageX 500 ? data.e.pageX : windowWidth.value - 500,top: windowHeight.value - data.e.pageY 300 ? data.e.pageY : windowHeight.value - 300,}; };const closeDialog () {state.visible false; };defineExpose({openDialog,closeDialog, }); /script style langscss scoped .container {position: fixed;width: 500px;height: 300px;border: 1px solid #000;padding: 15px;background-color: #bbc1ff;.content {width: 100%;height: 80%;display: flex;justify-content: center;align-items: center;background-color: #fff;font-weight: bold;font-size: 20px;}.footer {flex: 1;display: flex;justify-content: center;margin-top: 20px;} } /style2.组件展示 !--* Description: 我的组件-自定义右键弹框* FilePath: \Vue3-demo\src\views\showMyComponents\rightClickPopUpBox\index.vue -- templatediv classlayout-container layout-padding clickcancelPop($event)div classboxListel-button sizelarge typeprimary v-foritem in 10 :keyitem contextmenu.preventhandleContextMenu($event, item){{按钮 item : 请点击右键}}/el-button/divPopUpBox refpopUpBoxRef classpopUpBox //div /template script setup langts namerightClickPopUpBox import { ref } from vue; import PopUpBox from //myComponents/rightClickPopUpBox/index.vue; const popUpBoxRef ref();// 右键事件-打开弹框 const handleContextMenu (e: MouseEvent, item: any) {console.log(e, 右键坐标);const data { e, item };popUpBoxRef.value.openDialog(data); };// 点击弹框以外的地方关闭弹框 const cancelPop (event: any) {const box document.querySelector(.popUpBox);if (box) {if (!box.contains(event.target)) {popUpBoxRef.value.closeDialog();}} }; /script style langscss scoped .boxList {display: flex;flex-direction: row;justify-content: space-between;width: 100px;height: 50px; } /style五、补充 1.clientX、clientY 点击位置距离当前body可视区域的xy坐标 2.pageX、pageY 对于整个页面来说包括了被卷去的body部分的长度 3.screenX、screenY 对于整个屏幕来说(点击位置距离当前电脑屏幕的xy坐标)包括了被卷去的body部分的长度 4.offsetX、offsetY 对于当前元素来说(相对于带有定位的父盒子的xy坐标)包括了被卷去的body部分的长度 5.x、y 对于当前元素来说不包括被卷去的body部分的长度
http://www.yutouwan.com/news/449951/

相关文章:

  • 用什么网站做框架图有没有专门做花鸟鱼虫的网站
  • wordpress创建页面失败小红书怎么做关键词排名优化
  • 网站数据库设计模板电影网站源码程序
  • 西安网站手机网站建设美食网站建设背景
  • 西安网站公司推广口碑好的网站建设哪家好
  • 什么网站可以接室内设计做宝安公司网站建设比较好的
  • 京东网站建设策划书新能源电动汽车价格表
  • 什么网站做一手项目好河南建设
  • 玩具租赁网站开发与实现论文腾讯云服务器10元一年
  • 枸杞网站建设方案金蓝盟企业管理咨询公司
  • 垂直网站怎么做网站建设备案是什么
  • 网上报建贵州建设局网站做电商怎么建网站
  • 15年做那个网站能致富长宁微信手机网站制作
  • 网站开发学习网站什么网站可以做ui兼职
  • 网站承建商有哪些wordpress 首页菜单
  • 网站死链怎么解决南昌企业建站模板
  • 精美合同网站建设模板之家官网首页
  • 专业的东莞网站设计wordpress 四亩
  • 有服务器怎么做网站开源门户网站
  • 西安做网站找哪家公司好网页设计与制作软件有哪些
  • 长春网站建设网诚传媒视频剪辑培训机构
  • 招聘网站竞品分析怎么做河南建设工程信息网站
  • 网站建设没业务长春seo按天计费
  • 企业品牌网站建设注意事项免费网站推广群发软件
  • 网站建设风险分析群晖ds218 做网站
  • 网站挂直播连接怎么做江苏神禹建设有限公司网站
  • 网站备案拍布幕做电影资源网站违法吗
  • 企业网站源码自适应WordPress强制分享插件
  • 微网站制作工具有哪些杭州口碑最好的装修公司
  • 网站建设 类企业网站的制作方式