• vue自定义指令之拖动页面的元素


    此案例中,用到了鼠标事件onmousedown、onmousemove、onmouseup

    源代码如下:

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
    .outer div{
    position:absolute;
    100px;
    height: 100px;
    }
    .outer .left{
    background-color: red;
    top:0;
    left:0;
    }
    .outer .right{
    background-color: blue;
    top:0;
    right:0;
    }
    </style>
    </head>
    <body>
    <div id="app">
    <div class="outer">
    <div class="left" v-drag></div>
    <div class="right" v-drag></div>
    </div>
    </div>
    <script src="vue.js"></script>
    <script>
    Vue.directive('drag',function(el){
    el.onmousedown = function(e){
    //获取鼠标点击处分别与div左边和上边的距离:鼠标位置-div位置
    var divx = e.clientX - el.offsetLeft;
    var divy = e.clientY - el.offsetTop;
    //包含在onmousedown里,表示点击后才移动,为防止鼠标移出div,使用document.onmousemove
    document.onmousemove = function(e){
    //获取移动后div的位置:鼠标位置-divx/divy
    var l = e.clientX - divx;
    var t = e.clientY - divy;
    el.style.left=l+'px';
    el.style.top=t+'px';
    }
    document.onmouseup = function(e){
    document.onmousemove = null;
    document.onmouseup = null;
    }
    }

    })
    var vm = new Vue({
    el:'#app'

    })
    </script>
    </body>
    </html>
  • 相关阅读:
    C#实现RSA加密与解密、签名与认证
    RSA公钥加密,私钥解密的程序示例
    C#中自定义属性的例子
    HTTPS简单原理介绍
    深入浅出HTTPS基本原理
    WebClient请求帮助类
    WebApi安全性 使用TOKEN+签名验证
    jsvascript === 和==的区别
    UML中的图的出现顺序
    UML从需求到实现----用例
  • 原文地址:https://www.cnblogs.com/happybread/p/8710904.html
Copyright © 2020-2023  润新知