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 相关文章推荐
网站页面自动跳转实现方法PHP、JSP(上)
Aug 01 Javascript
浅谈JavaScript function函数种类
Dec 29 Javascript
全面了解JavaScript对象进阶
Jul 19 Javascript
pc加载更多功能和移动端下拉刷新加载数据
Nov 07 Javascript
React学习笔记之列表渲染示例详解
Aug 22 Javascript
JS实现小球的弹性碰撞效果
Nov 11 Javascript
使用elementUI实现将图片上传到本地的示例
Sep 04 Javascript
JSON字符串操作移除空串更改key/value的介绍
Jan 05 Javascript
用Fundebug插件记录网络请求异常的方法
Feb 21 Javascript
微信小程序表单验证WxValidate的使用
Nov 27 Javascript
15分钟学会vue项目改造成SSR(小白教程)
Dec 17 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
Mar 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
PHP4与PHP5的时间格式问题
2008/02/17 PHP
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
PHP中strlen()和mb_strlen()的区别浅析
2014/06/19 PHP
javascript 表单规则集合对象
2009/07/21 Javascript
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
JS异常处理的一个想法(sofish)
2013/03/14 Javascript
js获取内联样式的方法
2015/01/27 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
JavaScript知识点总结(十)之this关键字
2016/05/31 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
Nodejs中Express 常用中间件 body-parser 实现解析
2017/05/22 NodeJs
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
Vue.js学习笔记之修饰符详解
2017/07/25 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
vue动画效果实现方法示例
2019/03/18 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
详解React的回调渲染模式
2020/09/10 Javascript
Python中装饰器学习总结
2018/02/10 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
详解PyCharm+QTDesigner+PyUIC使用教程
2019/06/13 Python
使用Python的turtle模块画国旗
2019/09/24 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
pandas实现导出数据的四种方式
2020/12/13 Python
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
企业治理工作自我评价
2013/09/26 职场文书
客户代表实习人员自我鉴定
2013/09/27 职场文书
教师自我评价范文
2013/12/16 职场文书
幼儿园招生广告
2014/03/19 职场文书
社区服务活动总结
2014/05/07 职场文书
幼儿生日活动方案
2014/08/27 职场文书
大明湖导游词
2015/02/03 职场文书
2015年助残日活动总结
2015/03/27 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书
不要在HTML中滥用div
2021/05/08 HTML / CSS
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js