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 相关文章推荐
javascript 打开页面window.location和window.open的区别
Mar 17 Javascript
浅谈JavaScript字符集
May 22 Javascript
Jquery实现瀑布流布局(备有详细注释)
Jul 31 Javascript
详解javascript数组去重问题
Nov 06 Javascript
详解Node.Js如何处理post数据
Sep 19 Javascript
网络传输协议(http协议)
Nov 18 Javascript
angularjs $http实现form表单提交示例
Jun 09 Javascript
Angular在模板驱动表单中自定义校验器的方法
Aug 09 Javascript
vue实现数据控制视图的原理解析
Jan 07 Javascript
vue组件讲解(is属性的用法)模板标签替换操作
Sep 04 Javascript
适合后台管理系统开发的12个前端框架(小结)
Jun 29 Javascript
js作用域及作用域链工作引擎
Jul 07 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中使用Imagick实现图像直方图的实现代码
2011/08/30 PHP
PHP zip扩展Linux下安装过程分享
2014/05/05 PHP
PHP输入流php://input实例讲解
2015/12/22 PHP
Jquery 过滤器(first,last,not,even,odd)的使用
2014/01/22 Javascript
js实现进度条的方法
2015/02/13 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
js限制文本框只能输入中文的方法
2015/08/11 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
vue使用vue-cli快速创建工程
2017/07/28 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
React 高阶组件入门介绍
2018/01/11 Javascript
简单介绍react redux的中间件的使用
2018/04/06 Javascript
微信小程序之swiper轮播图中的图片自适应高度的方法
2018/04/23 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
vue-cli3中配置alias和打包加hash值操作
2020/09/04 Javascript
vue实现列表拖拽排序的功能
2020/11/02 Javascript
利用Python演示数型数据结构的教程
2015/04/03 Python
Django框架中方法的访问和查找
2015/07/15 Python
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
python装饰器初探(推荐)
2016/07/21 Python
Python实现加载及解析properties配置文件的方法
2018/03/29 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
ALDI奥乐齐官方海外旗舰店:德国百年超市
2017/12/27 全球购物
意大利在线药房:shop-farmacia.it
2019/03/12 全球购物
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
名人演讲稿范文
2013/12/28 职场文书
法学自荐信
2014/06/20 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
十八大观后感
2015/06/12 职场文书
python中print格式化输出的问题
2021/04/16 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
2021/06/05 Python
MySQL数据库实验之 触发器和存储过程
2022/06/21 MySQL
python高温预警数据获取实例
2022/07/23 Python