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 中的 &amp;&amp; 和 || 使用小结
Apr 25 Javascript
JavaScript 学习历程和心得分享
Dec 12 Javascript
基于jquery的关于动态创建DOM元素的问题
Dec 24 Javascript
获取服务器传来的数据 用JS去空格的正则表达式
Mar 26 Javascript
浅谈Javascript鼠标和滚轮事件
Jun 27 Javascript
利用js制作html table分页示例(js实现分页)
Apr 25 Javascript
JavaScript的函数式编程基础指南
Mar 19 Javascript
BooStrap对导航条的改造实践小结
Sep 21 Javascript
jquery css实现邮箱自动补全
Nov 14 Javascript
JS 在数组指定位置插入/删除数据的方法
Jan 12 Javascript
使用异步controller与jQuery实现卷帘式分页
Jun 18 jQuery
react-router-dom 嵌套路由的实现
May 02 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
【COS正片】蕾姆睡衣cos,纯洁可爱被治愈了 cn名濑弥七
2020/03/02 日漫
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
PHP实现验证码校验功能
2017/11/16 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
JS代码优化技巧之通俗版(减少js体积)
2011/12/23 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
javascript实现禁止复制网页内容
2014/12/16 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
EXT中单击button按钮grid添加一行(光标位置可设置)的实例代码
2016/06/02 Javascript
js实现StringBuffer的简单实例
2016/09/02 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
2017/07/07 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
2017/12/27 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
ES6顶层对象、global对象实例分析
2019/06/14 Javascript
vue使用video.js进行视频播放功能
2019/07/18 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
Python创建模块及模块导入的方法
2015/05/27 Python
python开发之str.format()用法实例分析
2016/02/22 Python
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
Python探索之ModelForm代码详解
2017/10/26 Python
Python反射的用法实例分析
2018/02/11 Python
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
什么是python的必选参数
2020/06/21 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
2014领导干部四风问题查摆思想汇报
2014/09/13 职场文书
大三学年自我鉴定范文(3篇)
2014/09/28 职场文书
2014年企业党支部工作总结
2014/12/04 职场文书
兼职安全员岗位职责
2015/02/15 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python
Java对文件的读写操作方法
2022/04/29 Java/Android
python实现双向链表原理
2022/05/25 Python