js实现select下拉框菜单


Posted in Javascript onDecember 08, 2015

本文实例讲述了js实现select下拉框菜单的详细代码。分享给大家供大家参考。具体如下:
运行效果截图如下:

js实现select下拉框菜单

具体代码如下:

<!DOCTYPE html>

<html>

<head>
 <title></title>
 <style type="text/css">
  #gridComboBox {
  background: #fff;
  border: 1px solid #2d78f4;
  border-radius: 2px;
  -moz-box-shadow: inset 0 0 4px #06c;
  -webkit-box-shadow: inset 0 0 4px #06c;
  box-shadow: inset 0 0 4px #06c;
 }
 </style>
</head>

<body>
 <input onclick="doClick(this,'ddd(aa/bb/cc/erererer/dfdfdfdfdfdfdfdfdfdfdfdfdf/ejjejrjerjer//erererer ////////)eee')" />
 <input onclick="doClick(this,'ddd(aa/bb/cc/erererer/dfdfdfdfdfdfdfdfdfdfdfdfdf/ejjejrjerjer//erererer ////////)eee')" style='width: 300px;' />
 <p><b>Needed Properties:</b> sender.offsetTop & sender.offsetLeft & sender.offsetHeight</p>
</body>

</html>
<script type="text/javascript">

function delGridComboBox() { // 删除弹出框
 var divContainer = document.getElementById('gridComboBox');
 if (divContainer) {
  divContainer.parentNode.removeChild(divContainer);
 }
}

function doClick(sender, str) {//str='ddd(aa/bb/cc/erererer/dfdfdfdfdfdfdfdfdfdfdfdfdf/ejjejrjerjer//erererer ////////)eee' 只取()得内容/分割做为数据源

 delGridComboBox();

 // console.log(sender);
 // for(var i in sender) 
 // {
 //  console.log(i+"|"+sender[i]);
 // }

 
 var re = /[^\)\(]*/g //取出()中的内容作为下拉数据源
 var fit = str.match(re);
 var fmt = fit[2].split('/');

 var divContainer = document.createElement('div');
 divContainer.style.width = sender.clientWidth + 2 + "px";
 divContainer.style.overflow = "hidden";
 divContainer.style.position = 'absolute'; 
 divContainer.style.top = sender.offsetTop + sender.offsetHeight + 'px';
 divContainer.style.left = sender.offsetLeft + 'px';
 divContainer.style.zIndex = 999;
 divContainer.id = "gridComboBox";

 for (var i = 0; i < fmt.length; i++) {  

  console.log('fmt[i]>>', fmt[i]);
  var txt = document.createElement('div'); 
  txt.innerHTML = fmt[i];
  txt.title = txt.innerHTML;
  txt.style.margin = 3+'px';  
  txt.addEventListener('mouseover', function changeBg(event) {
   event.target.style.fontWeight = 'bold';
   event.target.style.color = 'white';
   event.target.style.backgroundColor = '#2d78f4';
  }, false);
  txt.addEventListener('mouseout', function unChangeBg(event) {
   event.target.style.fontWeight = 'normal';
   event.target.style.color = 'black';
   event.target.style.backgroundColor = 'white';
  }, false);
  txt.onclick = function(subSender) {
   sender.value = subSender.target.innerText;
   delGridComboBox();
  };
  divContainer.appendChild(txt);
 };
 
 document.body.appendChild(divContainer);
};
</script>

如果大家还想深入学习,可以点击jquery下拉框效果汇总、JavaScript下拉框效果汇总进行学习。

以上就是js实现select下拉框菜单的代码,希望本文所述对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript While 循环基础教程
Apr 05 Javascript
jscript之List Excel Color Values
Jun 13 Javascript
JavaScript 版本自动生成文章摘要
Jul 23 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
Jun 06 Javascript
JS实现的tab切换选项卡效果示例
Feb 28 Javascript
原生js的ajax和解决跨域的jsonp(实例讲解)
Oct 16 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
Jul 26 Javascript
在vue项目中引用Iview的方法
Sep 14 Javascript
vue项目中常见问题及解决方案(推荐)
Oct 21 Javascript
jQuery实现开关灯效果
Aug 02 jQuery
vue项目里面引用svg文件并给svg里面的元素赋值
Aug 17 Javascript
微信小程序中使用vant框架的具体步骤
Feb 18 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
Dec 07 #Javascript
JavaScript的代码编写格式规范指南
Dec 07 #Javascript
JSON遍历方式实例总结
Dec 07 #Javascript
JS实现日期时间动态显示的方法
Dec 07 #Javascript
基于jQuey实现鼠标滑过变色(整行变色)
Dec 07 #Javascript
js实现遍历含有input的table实例
Dec 07 #Javascript
JavaScript中的return语句简单介绍
Dec 07 #Javascript
You might like
PHP网页游戏学习之Xnova(ogame)源码解读(八)
2014/06/23 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
javascript实现表单验证
2016/01/29 Javascript
JavaScript学习笔记之取数组中最大值和最小值
2016/03/23 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
2016/12/19 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
2017/01/19 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
2018/09/21 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
监控微信小程序中的慢HTTP请求过程详解
2019/07/05 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
关于angular引入ng-zorro的问题浅析
2020/09/09 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
[01:10:03]OG vs EG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
对numpy中布尔型数组的处理方法详解
2018/04/17 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
python的json中方法及jsonpath模块用法分析
2019/12/06 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
html5+CSS3+JS实现七夕言情功能代码
2017/08/28 HTML / CSS
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
使用索引有什么好处
2016/07/27 面试题
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
婚庆司仪主持词
2014/03/15 职场文书
如何写求职信
2014/05/24 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书
Python爬虫基础讲解之请求
2021/05/13 Python
python处理json数据文件
2022/04/11 Python