zoukankan      html  css  js  c++  java
  • div模拟实现select下拉框

     1 <!DOCTYPE html>
     2 <html>
     3 
     4 <head>
     5     <title></title>
     6     <style type="text/css">
     7      #gridComboBox {
     8         background: #fff;
     9         border: 1px solid #2d78f4;
    10         border-radius: 2px;
    11         -moz-box-shadow: inset 0 0 4px #06c;
    12         -webkit-box-shadow: inset 0 0 4px #06c;
    13         box-shadow: inset 0 0 4px #06c;
    14     }
    15     </style>
    16 </head>
    17 
    18 <body>
    19     <input  onclick="doClick(this,'ddd(aa/bb/cc/erererer/dfdfdfdfdfdfdfdfdfdfdfdfdf/ejjejrjerjer//erererer ////////)eee')" />
    20     <input  onclick="doClick(this,'ddd(aa/bb/cc/erererer/dfdfdfdfdfdfdfdfdfdfdfdfdf/ejjejrjerjer//erererer ////////)eee')" style=' 300px;' />
    21     <p><b>Needed Properties:</b> sender.offsetTop & sender.offsetLeft & sender.offsetHeight</p>
    22 </body>
    23 
    24 </html>
    25 <script type="text/javascript">
    26 
    27 function delGridComboBox() { // 删除弹出框
    28     var divContainer = document.getElementById('gridComboBox');
    29     if (divContainer) {
    30         divContainer.parentNode.removeChild(divContainer);
    31     }
    32 }
    33 
    34 function doClick(sender, str) {//str='ddd(aa/bb/cc/erererer/dfdfdfdfdfdfdfdfdfdfdfdfdf/ejjejrjerjer//erererer ////////)eee' 只取()得内容/分割做为数据源
    35 
    36     delGridComboBox();
    37 
    38     // console.log(sender);
    39     // for(var i in sender)  
    40     // {
    41     //     console.log(i+"|"+sender[i]);
    42     // }
    43 
    44    
    45     var re = /[^)(]*/g //取出()中的内容作为下拉数据源
    46     var fit = str.match(re);
    47     var fmt = fit[2].split('/');
    48 
    49     var divContainer = document.createElement('div');
    50     divContainer.style.width = sender.clientWidth + 2 + "px";
    51     divContainer.style.overflow = "hidden";
    52     divContainer.style.position = 'absolute'; 
    53     divContainer.style.top = sender.offsetTop + sender.offsetHeight + 'px';
    54     divContainer.style.left = sender.offsetLeft + 'px';
    55     divContainer.style.zIndex = 999;
    56     divContainer.id = "gridComboBox";
    57 
    58     for (var i = 0; i < fmt.length; i++) {     
    59 
    60         console.log('fmt[i]>>', fmt[i]);
    61         var txt = document.createElement('div'); 
    62         txt.innerHTML = fmt[i];
    63         txt.title = txt.innerHTML;
    64         txt.style.margin = 3+'px';        
    65         txt.addEventListener('mouseover', function changeBg(event) {
    66             event.target.style.fontWeight = 'bold';
    67             event.target.style.color = 'white';
    68             event.target.style.backgroundColor = '#2d78f4';
    69         }, false);
    70         txt.addEventListener('mouseout', function unChangeBg(event) {
    71             event.target.style.fontWeight = 'normal';
    72             event.target.style.color = 'black';
    73             event.target.style.backgroundColor = 'white';
    74         }, false);
    75         txt.onclick = function(subSender) {
    76             sender.value = subSender.target.innerText;
    77             delGridComboBox();
    78         };
    79         divContainer.appendChild(txt);
    80     };
    81     
    82     document.body.appendChild(divContainer);
    83 };
    84 </script>

    原文地址:  http://www.cnblogs.com/xuejianxiyang/p/4959912.html

  • 相关阅读:
    [j2me]KSoap2在Nokia真机上可能导致SymbianOS error 28
    [J2ME]Nokia播放音乐时发生MediaException的解决办法
    [j2me]利用JLayerMECLDC0.2播放MP3的试验[1]
    [j2me]手机也可以玩播客(Podcast)! Geek开发说明[开源]
    [JavaME]手机申请移动分配的动态IP(3)?
    [流媒体]实例解析MMS流媒体协议,下载LiveMediaVideo[1][修正版,增加了带宽测试包]
    [JavaME]手机申请移动分配的动态IP(2)?
    [JavaME]手机是否能够申请到动态IP?
    [收藏]MIDlet如何签名的tutorial
    [流媒体]实例解析MMS流媒体协议,下载LiveMediaVideo[3]
  • 原文地址:https://www.cnblogs.com/xuejianxiyang/p/4959912.html
Copyright © 2011-2022 走看看