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

青岛公司建站网站网站后台维护技能

青岛公司建站网站,网站后台维护技能,wordpress 仿煎蛋,wap端网站建设目录 问题解决思路解决代码(标注【主要代码】的为重点) 问题 拖动该悬浮球时,鼠标弹起可能会触发悬浮球内事件 解决思路 鼠标拖动盒子时,将 isMove 设为 true 意为正在拖动盒子,此时将 class"btns_move" 遮…

目录

  • 问题
  • 解决思路
  • 解决代码(标注【主要代码】的为重点)

问题

拖动该悬浮球时,鼠标弹起可能会触发悬浮球内事件
在这里插入图片描述

解决思路

  • 鼠标拖动盒子时,将 isMove 设为 true 意为正在拖动盒子,此时将 class="btns_move" 遮挡容器展示在悬浮球上层,以覆盖悬浮球,此时也就不存在触发悬浮球点击事件的冲突了;鼠标拖动完盒子弹起时再将 isMove 设为 false 意为不在拖动盒子(遮挡容器 class="btns_move" 不存在),可以触发悬浮球点击事件
  • 【注解】click 点击事件主要是在鼠标弹起时触发class="btns_move" 容器展示时,鼠标已不再悬浮器上点击,所以也就不存在鼠标在悬浮球上弹起的说法,因此可解决拖动盒子时与悬浮球点击事件冲突的问题
    在这里插入图片描述

解决代码(标注【主要代码】的为重点)

index.vue

<div ref="btns" class="btns" @mousedown="mousedownHandler"><div class="btns_other_police" @click="$refs.SearchDialogRef.open('police')"><img :src="require(`@/assets/portrait/iconfont/${theme}_police.png`)" /><span>其他警员</span></div><div class="btns_fullscreen_show" @click="handleScreenFull"><img :src="require(`@/assets/portrait/iconfont/${theme}_expand.png`)" /><span> {{ isFullscreen ? '退出全屏' : '全屏显示' }} </span></div><!-- <div v-show="isMove" class="btns_move">我是避免拖动盒子与盒子内事件冲突的元素</div> --><div v-show="isMove" class="btns_move" />  <!-- 【主要代码】 -->
</div>

index.scss

.btns {$btnWiddth: 70px;position: absolute;bottom: 10px;right: 10px;// z-index: 9999;z-index: 2000;width: $btnWiddth;height: 147px;cursor: move;opacity: 0.8;&_other_police,&_fullscreen_show {width: $btnWiddth;height: $btnWiddth;display: flex;flex-direction: column;align-items: center;justify-content: center;// background-color: red;border-radius: 50px;font-size: 12px;cursor: pointer;img {width: 25px;height: 25px;margin-bottom: 5px;}}&_other_police {margin-bottom: 7px;}&_move {width: 100%;height: 100%;// background-color: red;position: absolute; /* 【主要代码】 */top: 0;// z-index: -10;}
}

mixins/index.js

import { mapGetters } from 'vuex'
import screenfull from 'screenfull'
import portraitMock from '../../../../public/static/portraitMock.json'export const PortraitMixin = {data() {return {lightEchartsNoDataColor: '#000',blueEchartsNoDataColor: '#fff',timeFormat: 'yyyy/MM/dd',timeValueFormat: 'yyyy-MM-dd',portraitMock,initBtnX: 0,initBtnY: 0,isMove: false // 【主要代码】}},computed: {...mapGetters(['isFullscreen'])},mounted() {const _this = thiswindow.addEventListener('resize',() => {// 全屏下监控是否按键了ESCif (_this.checkFull()) {// 全屏下按键esc后要执行的动作screenfull.exit()_this.$store.commit('SET_isFullscreen', false)}},false)document.addEventListener('mouseup', () => {this.isMove = false // 【主要代码】document.removeEventListener('mousemove', this.mousemoveHandler)})},filters: {noDataFilter(val) {return val || val === 0 ? val : '-'},numFilter(val) {return val || val === 0 ? Number(val).toLocaleString() : '-'},bmQlfFilter(val, color, key) {const data = val.filter((item) => item.policeColorCode.includes(color))return data.length ? (data[0][key] || data[0][key] === 0 ? data[0][key] : '-') : '-'}},methods: {// 全屏显示handleScreenFull() {if (!screenfull.isEnabled) {this.$message({message: 'you browser can not work',type: 'warning'})return false}if (this.isFullscreen) {screenfull.exit()this.$store.commit('SET_isFullscreen', false)this.$store.commit('SET_isShowHeader', true)} else {screenfull.request()this.$store.commit('SET_isFullscreen', true)this.$store.commit('SET_isShowHeader', false)}},/*** 是否全屏并按键ESC键的方法*/checkFull() {const isFullscreen =window.fullScreen ||window.isFullscreen ||document.webkitIsFullScreen ||document.msFullscreenEnabledlet isFull = document.fullscreenEnabled && !isFullscreen// to fix : false || undefined == undefinedif (isFull === undefined) {isFull = false}return isFull},toDetailHandler(type) { // 该方法和此处无关if (type === 'zffx') {this.$router.push({path: '/warning-manage-common/warning-query',query: {date: JSON.stringify({kssj: this.zffxSearchTime[0],jssj: this.zffxSearchTime[1]}),...(this.searchXm ? { zrr: this.searchXm } : {}),...(this.searchBm ? { ssbm: this.searchBm } : {})}})}},mousedownHandler($event) {this.initBtnX = $event.pageX - this.$refs.btns.offsetLeftthis.initBtnY = $event.pageY - this.$refs.btns.offsetTopdocument.addEventListener('mousemove', this.mousemoveHandler)},mousemoveHandler($event) {this.isMove = true // 【主要代码】this.$refs.btns.style.left = $event.pageX - this.initBtnX + 'px'this.$refs.btns.style.top = $event.pageY - this.initBtnY + 'px'}}
}

解决效果
在这里插入图片描述

http://www.yayakq.cn/news/721063/

相关文章:

  • 电子商务网站建设与管理是什么做地产网站哪家好
  • 广东网站建设方案自动生成作文网站
  • 网站制作时自贡做网站公司
  • vs做网站时怎么弹出窗口建设部质量监督官方网站
  • 如何建免费的企业网站软件开发的工资
  • 邯郸集团网站建设禁止wordpress保存修订版
  • 建筑效果图素材网站网络建设服务
  • 惠阳网站建设金融直播室网站建设
  • 网站开发的软件介绍网页qq邮箱登录入口官网
  • 华润置地建设事业部网站mysql做网站
  • 手机文章网站源码ui设计师未来发展方向
  • 照片书哪个网站做的好中国建筑官网电话
  • 域名注册服务网站做网站视频学什么专业
  • wordpress 破解主题下载优化排名seo
  • 公司想做个自己的网站怎么做网站的描述
  • 建设部网站燃气管理部门开发一个网站
  • 网站开发项目方案工信部网站备案举报
  • 做网站的数据库wordpress免费建设
  • 建设p2p网站模板网页文档的默认扩展名为
  • 哪个网站有利于做课件深圳南山网站开发
  • 自己做的网站如何赚钱图书馆网站建设的建议
  • 商城网站建设用乐云seo系统甘肃省建设监理协会网站
  • 做文案的网站有些什么广州番禺楼盘
  • html网站支付链接怎么做的网站建设开发服务费
  • 手机网站解析域名咸阳免费做网站
  • 广州自助网站推广制作国内各大网站
  • 站长统计幸福宝下载wordpress的极限
  • 比较好约的网站设计郑州知名做网站
  • 重庆建网站哪家售后服务比较好wordpress重新定向
  • 小视频的网站怎么做的wordpress远程发布XML