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 相关文章推荐
node.js+Ajax实现获取HTTP服务器返回数据
Nov 26 Javascript
关于JS中prototype的理解
Sep 07 Javascript
Javascript实现苹果悬浮虚拟按钮
Apr 10 Javascript
更高效的使用JQuery 这里总结了8个小技巧
Apr 13 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
Jun 06 Javascript
js实现的在线调色板功能完整实例
Dec 21 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
May 17 Javascript
Vue.js中兄弟组件之间互相传值实例
Jun 01 Javascript
angular基于ng-alain定义自己的select组件示例
Feb 23 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
Jul 09 Javascript
javascript中undefined的本质解析
Jul 31 Javascript
vue+echarts实现动态折线图的方法与注意
Sep 01 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乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
PHP常用的文件操作函数经典收藏
2013/04/02 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
解析CodeIgniter自定义配置文件
2013/06/18 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
PHP使用imagick扩展实现合并图像的方法
2017/04/25 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
20个非常有用的PHP类库 加速php开发
2010/01/15 Javascript
JQuery在光标位置插入内容的实现代码
2010/06/18 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
javascript作用域、作用域链(菜鸟必看)
2016/06/16 Javascript
浅谈jQuery操作类数组的工具方法
2016/12/23 Javascript
Vue路由跳转问题记录详解
2017/06/15 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
2017/11/14 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
2020/11/05 Javascript
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
python3 与python2 异常处理的区别与联系
2016/06/19 Python
python 网络编程常用代码段
2016/08/28 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
HTML5添加禁止缩放功能
2017/11/03 HTML / CSS
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
师范应届生求职信
2013/11/15 职场文书
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
大学活动总结范文
2014/04/29 职场文书
大学班级文化建设方案
2014/05/06 职场文书
应届大学生求职信
2014/07/20 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
财务总监岗位职责
2015/02/03 职场文书
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS