Vue实现开关按钮拖拽效果


Posted in Javascript onSeptember 22, 2020

本文实例为大家分享了Vue实现开关按钮拖拽效果的具体代码,供大家参考,具体内容如下

css:

<style>
  .box {
    position: absolute;
    left: 100px;
    top: 100px;
    width: 100px;
    height: 100px;
    background: red;
  }
  .box2 {
    position: absolute;
    left: 400px;
    top: 100px;
    width: 100px;
    height: 100px;
    background: green;
  }
</style>

html:

<div id="app">

  <div class="box" v-drag="isDrag"></div>

  <div class="box2" v-drag:fn.limit.b="isDrag"></div>

  <button @click="isDrag = !isDrag">{{isDrag}}</button>

</div>

js:

<script src="vue.js"></script>
<script>

  // 组件
  Vue.directive('drag', {
    bind(el, {value, arg, modifiers}) {
      console.log(value, arg, modifiers)
      el._value = value;
      el._isDrag = false;
      el.addEventListener('mousedown', function(e) {

        if (!el._value) return;

        el._isDrag = true;
        el._x = e.clientX - el.offsetLeft;
        el._y = e.clientY - el.offsetTop;

        e.preventDefault();
      });
      document.addEventListener('mousemove', function(e) {
        if (el._isDrag) {
          let l = e.clientX - el._x;
          let t = e.clientY - el._y;

          if (modifiers.limit) {
            if (l < 0) {
              l = 0;
            }
            if (t < 0) {
              t = 0;
            }
          }

          el.style.left = l + 'px';
          el.style.top = t + 'px';
        }
      });
      document.addEventListener('mouseup', function(e) {
        el._isDrag = false;
      });
    },

    componentUpdated(el, {value}) {
      console.log('更新了', value);
      el._value = value;
    }
  });

  let app = new Vue({
    el: '#app',
    data: {
      isDrag: false
    }
  });


</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 数组排序函数
Aug 20 Javascript
自己的js工具 Event封装
Aug 21 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
Jan 15 Javascript
jquery中的查找parents与closest方法之间的区别
Dec 02 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
Mar 04 Javascript
Jquery easyui 实现动态树
Nov 17 Javascript
jQuery实现简单滚动动画效果
Apr 07 Javascript
JS扩展类,克隆对象与混合类实例分析
Nov 26 Javascript
javascript DOM的详解及实例代码
Mar 06 Javascript
JS开发中基本数据类型具体有哪几种
Oct 19 Javascript
bootstrap-Treeview实现级联勾选
Nov 23 Javascript
详解vue中移动端自适应方案
May 05 Javascript
JS如何生成动态列表
Sep 22 #Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
Sep 22 #Javascript
解决Can't find variable: SockJS vue项目的问题
Sep 22 #Javascript
解决vue-router 嵌套路由没反应的问题
Sep 22 #Javascript
Js跳出两级循环方法代码实例
Sep 22 #Javascript
vue 二维码长按保存和复制内容操作
Sep 22 #Javascript
vue-router 按需加载 component: () =&gt; import() 报错的解决
Sep 22 #Javascript
You might like
跟我学Laravel之路由
2014/10/15 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
利用WebBrowser彻底解决Web打印问题(包括后台打印)
2009/06/22 Javascript
数组Array进行原型prototype扩展后带来的for in遍历问题
2010/02/07 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
jquery遍历table的tr获取td的值实现方法
2016/05/19 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
Javascript 闭包详解及实例代码
2016/11/30 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
node中IO以及定时器优先级详解
2019/05/10 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
JavaScript实现滑块验证解锁
2021/01/07 Javascript
详解Django框架中用户的登录和退出的实现
2015/07/23 Python
Python单链表简单实现代码
2016/04/27 Python
Python 调用Java实例详解
2017/06/02 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
2018/01/29 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
2019/07/25 Python
python字符串的index和find的区别详解
2020/06/20 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
Maisons du Monde德国:法国家具和装饰的市场领导者
2019/07/26 全球购物
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
简历中个人自我评价分享
2014/03/15 职场文书
公司租房协议书范本
2014/10/08 职场文书
幼儿园校车安全责任书
2015/05/08 职场文书
2015年教师节广播稿
2015/08/19 职场文书
员工工作心得体会
2019/05/07 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫