JS、Vue鼠标拖拽

这篇具有很好参考价值的文章主要介绍了JS、Vue鼠标拖拽。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

JS、Vue鼠标拖拽,JS,Vue,javascript,vue.js

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;}
    #box1{
      width: 100px;
      height: 100px;
      background-color: pink;
      position: absolute;
      top: 0px;
      left: 0px;
    }
  </style>
</head>
<body>
  <div id="box1">
  </div>
  <script>
    window.onload = function() {
      var box1 = document.querySelector('#box1')
      // 鼠标按下
      box1.onmousedown = (e) => {
        // 获取鼠标相对于box元素的位置
        e = e || window.event
        var divX = e.offsetX
        var divY = e.offsetY
        // 鼠标移动,将鼠标位置给到box1
        document.onmousemove = (e) => {
          e = e || window.event
          var x = e.clientX - divX >= 0 ? (e.clientX - divX) : 0
          var y = e.clientY - divY >= 0 ? (e.clientY - divY) : 0
          box1.style.left = x + 'px'
          box1.style.top = y + 'px'
        }
      }
      // 鼠标松开
      box1.onmouseup = () => {
        document.onmousemove = null
      }
    }
  </script>
</body>
</html>

Vue代码:文章来源地址https://www.toymoban.com/news/detail-603320.html

<template>
	<div class="legend">
		<div class="mouse-drop" style="width: 120px;height: 120px;background: #f78"></div>
	</div>
</template>
<script>
export default {
	mounted() {
		this.mouseDrop()
	},
	methods: {
	    // 鼠标拖拽
	    mouseDrop() {
	      let dom = document.querySelector('.legend')
	      let button = dom.querySelector('.mouse-drop')
	      // 鼠标按下
	      button.onmousedown = (e) => {
	        // 获取鼠标相对于box元素的位置
	        e = e || window.event
	        var divX = e.offsetX
	        var divY = e.offsetY
	        // 鼠标移动,将鼠标位置给到dom
	        document.onmousemove = (e) => {
	          e = e || window.event
	          var x = e.clientX - divX >= 0 ? (e.clientX - divX) : 0
	          var y = e.clientY - divY >= 0 ? (e.clientY - divY) : 0
	          dom.style.left = x + 2 + 'px'
	          dom.style.top = y + 42 + 'px'
	        }
	      }
	      // 鼠标松开
	      button.onmouseup = () => {
	        document.onmousemove = null
	      }
	    },
	}
}
<script>

到了这里,关于JS、Vue鼠标拖拽的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaScript 框架比较:Angular、React、Vue.js

    在 Web 开发领域,JavaScript 提供大量技术栈可供选择。其中最典型的三套组合,分别是 MERN、MEAN 和 MEVN。这些首字母相同的选项各自代表不同的技术加工具组合。为了在这些技术栈中做出明智选择,让我们先从核心组件聊起,再对各自前端框架(React、Angular 和 Vue)进行简化比

    2024年01月20日
    浏览(59)
  • VUE+Vis.js鼠标悬浮title提前显示BUG解决方法

    在使用VUE+Vis.js做拓扑图,利用鼠标悬浮放在图标展示设备信息时,发现鼠标一放在图标上面时,标题表会提前在放置的元素下显示,鼠标再放到图标上去元素才会隐藏变成悬浮状态  解决方法: 添加一个div元素,设置 v-show=\\\"false\\\" ,将作为悬浮窗的元素放进去,因为v-show只是

    2024年01月23日
    浏览(54)
  • 【js&vue】联合gtp仿写一个简单的vue框架,以此深度学习JavaScript

    lifecycle.js 注解: this.$options.beforeMount.call(this);与 this.$options.beforeMount();有什么区别: call(this)  的作用是将当前对象( this )作为参数传递给  beforeMount  方法,使得在  beforeMount  方法内部可以通过  this  访问到当前对象的上下文 直接调用了  beforeMount  方法,没有指定上下

    2024年02月09日
    浏览(56)
  • JavaScript框架 Angular、React、Vue.js 的全栈解决方案比较

    在 Web 开发领域,JavaScript 提供大量技术栈可供选择。其中最典型的三套组合,分别是 MERN、MEAN 和 MEVN。前端框架(React、Angular 和 Vue)进行简化比较。 MERN 技术栈包含四大具体组件: MongoDB:一款强大的 NoSQL 数据库,以灵活的 JSON 格式存储数据。 Express.js:一套极简但强大的

    2024年02月03日
    浏览(58)
  • 基于【ESLint+JavaScript Standard Style】标准的VUE/JS/html风格指南

    本规范是适用于小仙男团队及前端团队所搭建的各种前端框架代码的通用风格规范指南; 使用时,请遵循指南细则进行代码风格约束,并在提交之前确保进行代码风格的修正操作; 本规范参考WEB行业知名的JavaScript Standard Style 规范指南。并将在后续使用过程中,逐步进行符合

    2023年04月13日
    浏览(44)
  • 2023年最佳JavaScript框架:React、Vue、Angular和Node.js的比较

    🎉欢迎来到Java学习路线专栏~探索2023年最佳JavaScript框架:React、Vue、Angular和Node.js的比较 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:Java学习路线 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 🍹文章作者技术和水

    2024年02月11日
    浏览(49)
  • vue项目实现鼠标拖拽功能

    当鼠标按下鼠标移动的时候,记录移动中的 x、y 值,那么这个被拖拽的 dom 的 top 和 left 值就是: top=鼠标按下时记录的 dom 的 top 值+(移动中的 y 值 - 鼠标按下时的 y 值) left=鼠标按下时记录的 dom 的 left 值+(移动中的 x 值 - 鼠标按下时的 x 值)  

    2024年02月11日
    浏览(46)
  • vue 自定义指令(鼠标拖拽滑动)

    1、创建一个js文件 2、在main.js中引入这个js import dragscroll from \\\'@utils/directives.js\\\'; app.directive(\\\'dragscroll\\\',dragscroll); 3、在页面中使用 ul class=\\\"navBar\\\" id=\\\"nav\\\" v-dragscroll li拖动1/li li拖动2/li li拖动3/li li拖动4/li li拖动5/li li拖动6/li li拖动7/li li拖动8/li li拖动9/li li拖动10/li /ul 4、效果   参考

    2024年02月11日
    浏览(50)
  • vue3鼠标拖拽滑动效果

    第一步 在utils下面新建一个directives.js文件,然后引入如下代码 第二步 在main.js中引入  第三步 页面直接使用即可

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包