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 相关文章推荐
用js获取电脑信息(是使用与IE浏览器)
Jan 15 Javascript
网页整体变灰白色(兼容各浏览器)实例
Apr 21 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
Apr 10 Javascript
javascript中Date对象应用之简易日历实现
Jul 12 Javascript
完美解决js传递参数中加号和&amp;号自动改变的方法
Oct 11 Javascript
Vue组件开发初探
Feb 14 Javascript
Node错误处理笔记之挖坑系列教程
Jun 05 Javascript
解决jQuery使用append添加的元素事件无效的问题
Aug 30 jQuery
从0到1搭建Element的后台框架的方法步骤
Apr 10 Javascript
vue界面发送表情的实现代码
Sep 11 Javascript
通过JS判断网页是否为手机打开
Oct 28 Javascript
如何制作自己的原生JavaScript路由
May 05 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
在字符串指定位置插入一段字符串的php代码
2010/02/16 PHP
php目录操作函数之获取目录与文件的类型
2010/12/29 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
header导出Excel应用示例
2014/01/24 PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
2014/02/13 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
2016/03/18 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
jquery select选中的一个小问题
2009/10/11 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
2018/03/01 Javascript
js+canvas实现滑动拼图验证码功能
2018/03/26 Javascript
React如何避免重渲染
2018/04/10 Javascript
基于vue-element组件实现音乐播放器功能
2018/05/06 Javascript
深入浅出理解JavaScript闭包的功能与用法
2018/08/01 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
js简单的分页器插件代码实例
2019/09/11 Javascript
JS实现简单tab选项卡切换
2019/10/25 Javascript
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
python的绘图工具matplotlib使用实例
2014/07/03 Python
Python发送form-data请求及拼接form-data内容的方法
2016/03/05 Python
Python 操作MySQL详解及实例
2017/04/30 Python
特征脸(Eigenface)理论基础之PCA主成分分析法
2018/03/13 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
2019/08/15 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
python用700行代码实现http客户端
2021/01/14 Python
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
编写用C语言实现的求n阶阶乘问题的递归算法
2014/10/21 面试题
医院护士的求职信
2014/01/03 职场文书
2014年财务个人工作总结
2014/12/08 职场文书
2014年教研员工作总结
2014/12/23 职场文书
SQL实现LeetCode(180.连续的数字)
2021/08/04 MySQL