Vue.js下拉菜单组件使用方法详解


Posted in Javascript onOctober 19, 2019

本文实例为大家分享了Vue.js下拉菜单组件的具体实现代码,供大家参考,具体内容如下

效果

Vue.js下拉菜单组件使用方法详解

#### 入口页面 index.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>可从外部关闭的下拉菜单</title>
 <link rel="stylesheet" type="text/css" href="style.css" >
</head>
<body>
 <div id="app" v-cloak>
 <div class="main" v-clickoutside="handleClose">
  <button @click="show = !show">点击显示下拉菜单</button>
  <div class="dropdown" v-show="show">
  <p>下拉框的内容,点击外面区域可以关闭</p>
  </div>
 </div>
 </div>
 <script src="https://unpkg.com/vue/dist/vue.js"></script>
 <script src="clickoutside.js"></script>
 <script src="index.js"></script>
</body>
</html>

根实例 index.js

var app = new Vue({
 el: '#app',
 data: {
 show: false
 },
 methods: {
 handleClose () {
  this.show = false;
 }
 }
});

下拉框组件 clickoutside.js

Vue.directive('clickoutside',{
 bind: function (el, binding, vnode) {
 function documentHandler(e) {
  if(el.contains(e.target)){
  return false;
  }
  if(binding.expression){
  binding.value(e);
  }
 }
 el.__vueClickOutside__ = documentHandler;
 document.addEventListener('click',documentHandler);
 },
 unbind: function (el, binding) {
 document.removeEventListener('click', el.__vueClickOutside__);
 delete el.__vueClickOutside__;
 }
});

样式表

[v-cloak]{
 display: none;
}
.main{
 width: 125px;
}
button{
 display: block;
 width: 100%;
 color: #fff;
 background-color: #39f;
 border: 0;
 padding: 6px;
 text-align: center;
 font-size: 12px;
 border-radius: 4px;
 cursor: pointer;
 outline: none;
 position: relative;
}
button:active{
 top:1px;
 left: 1px;
}
.dropdown{
 width:100%;
 height: 150px;
 margin: 5px 0;
 font-size: 12px;
 background-color: #fff;
 border-radius: 4px;
 box-shadow: 0 1px 6px rgba(0,0,0,.2);
}
.dropdown p{
 display: inline-block;
 padding: 6px;
}

更多教程点击《Vue.js前端组件学习教程》,欢迎大家学习阅读。

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

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

Javascript 相关文章推荐
PJ Blog修改-禁止复制的代码和方法
Oct 25 Javascript
jQuery多媒体插件jQuery Media Plugin使用详解
Dec 19 Javascript
JS判断日期格式是否合法的简单实例
Jul 11 Javascript
Vue实现路由跳转和嵌套
Jun 20 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
Oct 20 Javascript
vue自动化表单实例分析
May 06 Javascript
vue实现点击当前标签高亮效果【推荐】
Jun 22 Javascript
js的各种数据类型判断的介绍
Jan 19 Javascript
vue项目中使用scss的方法步骤
May 16 Javascript
详解js location.href和window.open的几种用法和区别
Dec 02 Javascript
Vue组件模板的几种书写形式(3种)
Feb 19 Javascript
vue中路由跳转不计入history的操作
Sep 21 Javascript
vue实现二级导航栏效果
Oct 19 #Javascript
vue.js实现二级菜单效果
Oct 19 #Javascript
vue实现多级菜单效果
Oct 19 #Javascript
vue.js实现三级菜单效果
Oct 19 #Javascript
vue.js实现只能输入数字的输入框
Oct 19 #Javascript
Vue数字输入框组件的使用方法
Oct 19 #Javascript
微信小程序实现禁止分享代码实例
Oct 19 #Javascript
You might like
Linux下安装oracle客户端并配置php5.3
2014/10/12 PHP
十大使用PHP框架的理由
2015/09/26 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
2018/04/21 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
2018/09/26 PHP
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
javascript 获取网页标题代码实例
2014/01/22 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
2014/06/24 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
正则 js分转元带千分符号详解
2017/03/08 Javascript
js 去掉字符串前后空格实现代码集合
2017/03/25 Javascript
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
nodejs制作爬虫实现批量下载图片
2017/05/19 NodeJs
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
[05:42]DOTA2英雄梦之声_第10期_蝙蝠骑士
2014/06/21 DOTA
pygame学习笔记(4):声音控制
2015/04/15 Python
浅谈Pandas中map, applymap and apply的区别
2018/04/10 Python
Python魔法方法详解
2019/02/13 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
python def 定义函数,调用函数方式
2020/06/02 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
幼教简历自我评价
2014/01/28 职场文书
药品采购员岗位职责
2014/02/08 职场文书
远程网络教育毕业生自我鉴定
2014/04/14 职场文书
班主任经验交流心得体会
2015/11/02 职场文书
小学语文的各类谚语(70首)
2019/08/15 职场文书
MySQL如何使用使用Xtrabackup进行备份和恢复
2021/06/21 MySQL