<template>
<ul id="select">
<li>
<div class="select-head">
<span class="select-head-cont">{{cont}}</span>
<span class="select-icon">▼</span>
</div>
<ul class="option">
<li class="option-item" v-for="v in 10" @click="optionClick(v-1)">{{v-1}}</li>
</ul>
</li>
</ul>
</template>
<style type="text/css"> ul,li{
list-style: none;
padding: 0;
margin: 0;
}
/*下拉框样式*/
#select{
margin-right: .05rem;
background: rgba(0,0,0,0);
width: .5rem;
height: .28rem;
font-family: "微软雅黑";
font-size: 16px;
color: white;
border: 1px #DDDDDD solid;
border-radius: 3px;
}
.select-head{
overflow: hidden;
width: 100%;
height: .28rem;
box-sizing: border-box;
padding: 0 5px;
line-height: .28rem;
}
.select-head .select-head-cont{
float: left;
color: black;
}
.select-head .select-icon{
float: right;
color: #B2B2B2;
}
.option{
text-indent: 10px;
margin-top: 1px;
width: 100%;
color: black;
background: rgba(236,111,111,0.1);
line-height: .28rem;
border: 1px #cfcfcf solid;
visibility: hidden;
}
.option-item:hover{
background: rgba(204,106,67,0.3);
}
</style>
<script>
export default {
data () {
return {
cont:'-',
}
},
methods: {
optionClick(v){
this.cont='*'
this.$emit('input', v)
document.getElementsByClassName('option')[0].style.visibility = 'hidden';
}
},
mounted(){
let selectHead = document.getElementsByClassName('select-head')[0];
let Option = document.getElementsByClassName('option')[0];
let optionItem = document.getElementsByClassName('option-item');
let itemH=optionItem[0].offsetHeight
let Y =document.body.clientHeight-selectHead.getBoundingClientRect().bottom; if(Y<itemH*10){
Option.style.webkitTransform="translate(0px,-"+(itemH*11+5)+"px)"
}
// console.log(Y,itemH*11,Option.offsetHeight)
/*点击后出现下拉框*/
selectHead.addEventListener('click',()=>{
Option.style.visibility = 'visible';
},false); /*点击其他地方时,select会收起来*/
document.body.addEventListener('click',()=>{
Option.style.visibility = 'hidden';
},true);
},
}
</script>

效果:

vue js select下拉框的更多相关文章

  1. js select下拉框下拉跳转代码

    下拉跳转原理很简单这个用到了select的onchangeg事件,只要这里改变我们就获取select值直接location.href=this.value即可. <select name=&qu ...

  2. css配合js模拟的select下拉框

    css配合js模拟的select下拉框 <!doctype html> <html> <head> <meta charset="utf-8&quo ...

  3. JS为Select下拉框添加输入功能

    JavaScript使用parentNode.nextSibling.value实现的本功能,实际上你会发现网页上有两个控件元素,一个是Select,一个是input,使用CSS将input覆盖于se ...

  4. JS模拟下拉框select

    最近做的一个项目有下拉框 同事都是用的是美化控件,但是用美化控件当然是好 但是网上找的一个控件不知道扩展性怎么样?对以后的维护会不会造成有影响?比如我想增加一个功能或者减少一个功能会不会影响?还有就是 ...

  5. vue select下拉框绑定默认值

    vue select下拉框绑定默认值: 首先option要加value值,以便v-model可以获取到对应选择的值 一.当没有绑定v-model,直接给对应的option加selected属性 二.当 ...

  6. js&jquery 获取select下拉框的值、文本内容、自定义属性

      js&jquery 获取select下拉框的值.文本内容.自定义属性 CreationTime--2018年7月2日09点22分 Author:Marydon html <selec ...

  7. 非常实用的select下拉框-Select2.js

    在Web开发中,Select下拉框是常用的输入组件.由于原生的Select几乎很难通过CSS样式控制.一些好看的Select下拉框就只能通过模拟来实现.PHP程序员雷雪松给大家推荐一筐款不错的Sele ...

  8. js如何获取select下拉框的value以及文本内容

    select下拉框在项目开发中是经常用到的,特别是在联级菜单方面的应用更为广泛.但是,对于一些初学者来说,如何获取下拉框子节点option的value值和文本内容,还是有一点难度的.其他的就不说了,现 ...

  9. 在element-ui的select下拉框加上滚动加载

    在项目中,我们需要运用到很多来自后端返回的数据.有时是上百条,有时甚至上千条.如果加上后端的多表查询或者数据量过大,这就导致在前端的显示就会及其慢,特别是在网络不好的时候更是如此. 自然,后端就做了一 ...

随机推荐

  1. 基于微软hyper-v虚拟化服务器搭建方法和步骤整理

    基于Microsoft基础设施私有云计算搭建 摘要:私有云是指组织机构建设的专供自己使用的云平台,它所提供的服务不是供他人使用,而是供自己的内部人员或分支机构使用,不同于公有云,私有云部署在企业内部网 ...

  2. epoll、mysql概念及简单操作

    epoll 程序阻塞的过程 假设我们目前运行了三个进程A B C ,如果他们都在处于运行态,那就会被加到一个运行队列中 进程A正在运行socket程序 在linux中有句话,万物皆文件,socket对 ...

  3. js入门第二篇之流程控制语句

    表达式语句: 一个表达式可以产生一个值,有可能是运算.函数调用 字面量 表达式可以放在任何需要值的地方. 语句: 语句可以理解成一个行为,循环语句和判断语句就是典型的语句,一个程序有多个语句组成. 流 ...

  4. 阮一峰:jQuery官方基础教程笔记

    jQuery是目前使用最广泛的javascript函数库. 据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库.微软公司甚至把jQuery作为他们的官方库. 对于网页开发者来 ...

  5. weblogic快速安装版的安装和使用

    weblogic 12c提供了一个225MB大小的zip包, 我们下载下来之后解压后, 到jdk的bin目录下面, 执行java -jar ORACLE_HOME=[webloigc安装jar包绝对路 ...

  6. Eclipse中如何创建一个完整的Maven-Web项目

    Maven Web项目搭建 1.首先确保本地开发环境搭建完毕(jdk,maven). 2.打开Eclipse,新建Maven项目.选择Maven Project选项. 3.将第一项:Create a ...

  7. 新版mysql的配置文件my.ini位置

    在网上的博客上找了好久的my.ini,一直找不到.最后发现原来新版本的mysql已经不把my.ini放在原始的安装目录了.而是放在了C:/ProgramData下.

  8. MySQL5.7安装详解及常见安装问题解决

    数据库安装 Python开发使用mysql数据库5.5版本以上(django2.0之后放弃mysql5.5之前的支持),在mysql版本当中5.7之前的版本都有.exe或者.msi的可执行安装文件,但 ...

  9. 页面Header自适应屏幕

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...

  10. java学习笔记15-封装

    把属性(成员变量)设置为私有(private),把方法设置为共有的(public),假如外界想要得到或者改变某个属性,只能通过方法来办到,这其实是封装的思想之一. 新建一个Student类,这个类有几 ...