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 Prototype对象
Jan 07 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
Jan 06 Javascript
JS对HTML标签select的获取、添加、删除操作
Oct 17 Javascript
JQuery记住用户名和密码的具体实现
Apr 04 Javascript
基于Javascript实现弹出页面效果
Jan 01 Javascript
javascript拖拽应用实例
Mar 25 Javascript
js匿名函数作为函数参数详解
Jun 01 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
Sep 09 Javascript
node.js操作mysql简单实例
May 25 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
Aug 08 Javascript
Vue 实现从小到大的横向滑动效果详解
Oct 16 Javascript
微信小程序去除左上角返回键的实现方法
Mar 06 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中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
2012/12/11 PHP
php中smarty区域循环的方法
2015/06/11 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
Javascript 跨域访问解决方案
2009/02/14 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
简单的代码实现jquery定时器
2013/11/17 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
浅析angularJS中的ui-router和ng-grid模块
2016/05/20 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
原生js实现拖拽移动与缩放效果
2020/08/24 Javascript
原生JS实现弹幕效果的简单操作指南
2020/11/10 Javascript
Vue仿百度搜索功能
2020/12/28 Vue.js
[03:11]不朽宝藏三外观展示
2020/09/18 DOTA
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
python 中文乱码问题深入分析
2011/03/13 Python
python web框架学习笔记
2016/05/03 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
2018/03/13 Python
python标准库os库的函数介绍
2020/02/12 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
python如何删除列为空的行
2020/07/17 Python
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
物业公司采购员岗位职责
2013/12/31 职场文书
倡议书格式
2014/04/14 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
诉讼和解协议书
2016/03/23 职场文书
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL