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 相关文章推荐
jQuery 使用个人心得
Feb 26 Javascript
JavaScript 构造函数 面相对象学习必备知识
Jun 09 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
Mar 11 Javascript
一个js控制的导航菜单实例代码
Dec 03 Javascript
详谈JavaScript 匿名函数及闭包
Nov 14 Javascript
javascript每日必学之运算符
Feb 16 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
May 10 Javascript
超实用的JavaScript代码段 附使用方法
May 22 Javascript
微信小程序日历/日期选择插件使用方法详解
Dec 28 Javascript
Vue+Express实现登录状态权限验证的示例代码
May 05 Javascript
JavaScript中的惰性载入函数及优势
Feb 18 Javascript
你不知道的SpringBoot与Vue部署解决方案
Nov 09 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
Protoss建筑一览
2020/03/14 星际争霸
PHP默认安装产生系统漏洞
2006/10/09 PHP
php,不用COM,生成excel文件
2006/10/09 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
2019/09/16 PHP
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
2012/12/17 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
jquery实现简单实用的弹出层效果代码
2015/10/15 Javascript
Easyui form combobox省市区三级联动
2016/01/13 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
jQuery EasyUi 验证功能实例解析
2017/01/06 Javascript
原生js实现水平方向无缝滚动
2017/01/10 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
layui获取选中行数据的实例讲解
2018/08/19 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
JS实现简单打字测试
2020/06/24 Javascript
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python中用Ctrl+C终止多线程程序的问题解决
2013/03/30 Python
Python使用requests发送POST请求实例代码
2018/01/25 Python
对Python中的@classmethod用法详解
2018/04/21 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
2020/01/21 Python
Python爬虫爬取博客实现可视化过程解析
2020/06/29 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
Marc Jacobs官方网站:美国奢侈品牌
2017/08/29 全球购物
大学生毕业的自我鉴定
2013/11/13 职场文书
档案管理员岗位职责
2013/12/01 职场文书
眼镜促销方案
2014/03/15 职场文书
我爱我家教学反思
2014/05/01 职场文书
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL
Nginx 匹配方式
2022/05/15 Servers