美文网首页
自定义指令

自定义指令

作者: 没了提心吊胆的稗子 | 来源:发表于2019-07-31 16:49 被阅读0次

    vue中提供了很多指令如v-modelv-ifv-showv-forv-onv-bind等等,但同时我们也可以根据需求设置自定义指令

    改变按钮颜色的v-color指令
    <div id="app">
        <button v-color="back">变色</button>
    </div>
    
    <script src="../node_modules/vue/dist/vue.js"></script>
    <script>
        let vm = new Vue({
            directives: {
                color(el, bindings){ // el指代的是要操作的DOM
                    el.style.background = bindings.value;
                }
            },
            el: '#app',
            data: {
                back: 'red'
            }
        });
    </script>
    
    拖拽div
    <div id="app">
        <div v-drag class="box"></div>
    </div>
    
    <script src="../node_modules/vue/dist/vue.js"></script>
    <script>
        let vm = new Vue({
            directives: {
                drag(el){
                    el.onmousedown = function (e) {
                        var disx = e.pageX - el.offsetLeft;
                        var disy = e.pageY - el.offsetTop;
                        document.onmousemove = function (e) {
                            el.style.marginLeft = (e.pageY-disx)+'px';
                            el.style.marginTop = (e.pageY-disy)+'px';
                        };
                        document.onmouseup = function () {
                            document.onmousemove = document.onmouseup = null;
                        };
                        e.preventDefault();
                    }
                }
            },
            el: '#app',
            data: {
                back: 'red'
            }
        });
    </script>
    

    相关文章

      网友评论

          本文标题:自定义指令

          本文链接:https://www.haomeiwen.com/subject/cnetdctx.html