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

义乌城市建设规划网站app营销的特点

义乌城市建设规划网站,app营销的特点,花的网站建设规划书,网页在线发短信平台目录 需求思路代码页面展示【补充】纯js实现 需求 浮动的盒子添加鼠标拖拽功能 思路 给需要拖动的盒子添加鼠标按下事件鼠标按下后获取鼠标点击位置与盒子边缘的距离给 document 添加鼠标移动事件鼠标移动过程中,将盒子的位置进行重新定位侦听 document 鼠标弹起&a…

目录

  • 需求
  • 思路
  • 代码
  • 页面展示
  • 【补充】纯js实现

需求

浮动的盒子添加鼠标拖拽功能

思路

  1. 给需要拖动的盒子添加鼠标按下事件
  2. 鼠标按下后获取鼠标点击位置与盒子边缘的距离
  3. 给 document 添加鼠标移动事件
  4. 鼠标移动过程中,将盒子的位置进行重新定位
  5. 侦听 document 鼠标弹起,移除鼠标移动事件

代码

<!-- 鼠标拖拽盒子 -->
<template><div><!-- 【1】给需要拖动的盒子添加鼠标按下事件 --><div ref="btns" class="btns" @mousedown="mousedownHandler">试试拖动我</div></div>
</template><script>
export default {name: 'Drag',components: {},data() {return {mouseToBoxRangeX: 0, // 鼠标点击位置与盒子边缘的距离mouseToBoxRangeY: 0 // 鼠标点击位置与盒子边缘的距离}},computed: {},watch: {},mounted() {// 【5】侦听 document 鼠标弹起,移除鼠标移动事件document.addEventListener('mouseup', () => {document.removeEventListener('mousemove', this.mousemoveHandler)})},methods: {mousedownHandler($event) {// 【2】鼠标按下后获取鼠标点击位置与盒子边缘的距离//  鼠标点击位置与盒子边缘的距离 = 鼠标点击位置 - 盒子当前位置this.mouseToBoxRangeX = $event.pageX - this.$refs.btns.offsetLeftthis.mouseToBoxRangeY = $event.pageY - this.$refs.btns.offsetTop// 【3】给 document 添加鼠标移动事件document.addEventListener('mousemove', this.mousemoveHandler)},mousemoveHandler($event) {// 【4】鼠标移动过程中,将盒子的位置进行重新定位// 盒子当前位置 = 鼠标点击位置 - 鼠标点击位置与盒子边缘的距离 - 盒子自身设定的边距(此处没有)// 【注意】设置盒子最新位置时需加上单位 'px'this.$refs.btns.style.left = $event.pageX - this.mouseToBoxRangeX + 'px'this.$refs.btns.style.top = $event.pageY - this.mouseToBoxRangeY + 'px'}}
}
</script><style lang='scss' scoped>
.btns {width: 70px;height: 147px;position: absolute;bottom: 10px;right: 10px;z-index: 2000;cursor: move;background-color: red;
}
</style>

页面展示

在这里插入图片描述

【补充】纯js实现

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>* {margin: 0;padding: 0;}.box {position: relative;width: 100px;height: 100px;background-color: tomato;margin: 100px;}</style></head><body><div class="box"></div><script>/* 效果:鼠标拖着盒子移动拖着:鼠标左键按着不松手(mousedown),然后鼠标移动(mousemove)注意:鼠标左键按下,才注册上了鼠标移动事件*/var box = document.querySelector('.box')// 添加鼠标点击事件box.addEventListener('mousedown', function (e) {console.log('this----', this)console.log('this.offsetLeft----', this.offsetLeft)console.log('this.offsetTop----', this.offsetTop)// 【1】获取鼠标在盒子里的位置// 鼠标的坐标 - 盒子的坐标var x = e.pageX - this.offsetLeftvar y = e.pageY - this.offsetTopconsole.log(x, y)// 注册鼠标移动事件(给整个document添加 事件)document.addEventListener('mousemove', move)function move(e) {// 【2】设置盒子的位置(注意 给盒子添加定位)// 鼠标的坐标 - 鼠标在盒子里的坐标// 【2.1】盒子没有外边距// box.style.left = (e.pageX - x) + 'px';// box.style.top = (e.pageY - y) + 'px';// 【2.2】盒子有外边距box.style.left = e.pageX - x - 100 + 'px'box.style.top = e.pageY - y - 100 + 'px'}// 【3】鼠标弹起,删除移动事件document.addEventListener('mouseup', function () {// 删除鼠标移动事件document.removeEventListener('mousemove', move)})})</script></body>
</html>
http://www.yayakq.cn/news/426245/

相关文章:

  • 如室室内设计网站官网wordpress如何卸载
  • 做精神科网站价格平面素材设计网站
  • 聊城哪里做优化网站企业网站加快企业信息化建设
  • 销售平台网站建设做电子相册的大网站
  • 昆山做网站的公司有哪些网站建设电子书
  • 专业定制房地产网站建设怎么用自己的网站做网页
  • 自己做网站什么网站比较好新东方教育机构官网
  • 推广公司网站开发项目的流程
  • 深圳宝安网站建设学习网长治网站制作报价
  • 建站快车代理商网站设计的规范
  • 现在用什么做网站网站开发相关书籍资料
  • 厦门专业网站设计代理wordpress免费主题演示数据
  • 自己建的网站搜不到上蔡县住房和城乡建设局网站
  • 服饰网站模板wordpress整合ecms同步登录
  • 长春企业网站设计企业网站建设管理平台
  • 好的 做网站的软件公司网站开发合作协议
  • 模板网站和定制网站的区别是什么怎么在印度做网站
  • asp.net制作的网站开发黄冈网络推广服务平台
  • 精品课程网站建设 碧辉腾乐php空间放多个网站
  • 南通专业做网站基于php做的网站下载
  • 天津做公司网站下列什么不是用于制作网页的软件
  • seo怎样优化网站杭州网站建设专家
  • 成都商报官方网站太原模板建站平台
  • 如何找人做网站专门做冷门旅行的网站
  • 金昌市建设局网站学网站开发的总结
  • 高端网站建设公司哪家好网站建设都一般步骤
  • 甘肃省住房和建设厅网站app开发定制公司如
  • 代做网站和说明书如何选择定制酒
  • 网站建设与发布的预算新安县住房和城乡建设局网站
  • 网站seo规划海南跨境免税电商入驻流程