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绝句欣赏 一些经典的js代码
Feb 22 Javascript
js汉字转拼音实现代码
Feb 06 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
Feb 07 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
Aug 05 Javascript
js点击文本框弹出可选择的checkbox复选框
Feb 03 Javascript
JavaScript解八皇后问题的方法总结
Jun 12 Javascript
JavaScript数组操作详解
Feb 04 Javascript
Vue.js学习教程之列表渲染详解
May 17 Javascript
js+html5实现页面可刷新的倒计时效果
Jul 15 Javascript
微信小程序获取循环元素id以及wx.login登录操作
Aug 17 Javascript
通过js随机函数Math.random实现乱序
May 19 Javascript
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
Apr 17 Vue.js
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
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
php/JS实现的生成随机密码(验证码)功能示例
2019/06/06 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
JavaScript 学习笔记(五)
2009/12/31 Javascript
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
2011/07/26 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
js实现省份下拉菜单效果
2017/02/15 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
node vue项目开发之前后端分离实战记录
2017/12/13 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
nodejs读取图片返回给浏览器显示
2019/07/25 NodeJs
浅谈v-for 和 v-if 并用时筛选条件方法
2019/11/07 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
python基础教程之lambda表达式使用方法
2014/02/12 Python
解析Python中的异常处理
2015/04/28 Python
浅谈Python爬虫基本套路
2019/03/25 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
Django+boostrap 美化admin后台的操作
2020/03/11 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
python将数据插入数据库的代码分享
2020/08/16 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
高等教育学自荐书范文
2014/02/10 职场文书
总结Python连接CS2000的详细步骤
2021/06/23 Python
详解CSS中的特指度和层叠问题
2021/07/15 HTML / CSS
ORM模型框架操作mysql数据库的方法
2021/07/25 MySQL