`
fenhonghai
  • 浏览: 15352 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

css+js模拟可变长度下拉选择框/下拉选项长度过长时可换行显示

    博客分类:
  • js
阅读更多
准备一张图片名称为1.gif
与此html放在同一路径下,打开此HTML即可看见效果

此代码也适用于动态加载下拉列表数据,具体方法可具体分析,也欢迎大家来与我讨论。
php中已试用过。


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<style>


.div_1{
height:100;
overflow-x:hidden;
overflow-y:scroll;
cellspacing:0px;
cellpadding:0px;
}

.table_1{
top:0px;
width:100%;
heigth:20;
border:1;
font-size:14px;
cellspacing:0px;
cellpadding:0px;
}
.tr_1{
heigth:20;
width:100%;
cursor:default;
}

</style>

<script>
function moveon(obj){
obj.background = "i.gif";
obj.style.color = "#FFFFFF";
}

function out(obj){
obj.background = "";
obj.style.color = "";
}

function selected(textobj,obj,divobj){
document.getElementById(textobj).value=obj.firstChild.nodeValue;
document.getElementById(divobj).style.display="none";
}


function showdiv(obj){
document.getElementById(obj).style.display="";
}


function showdiv_here(listid,obj,num){

if(num>15){
document.getElementById(listid).style.overflowY="scroll";
document.getElementById(listid).style.height = num*15;
}else{
document.getElementById(listid).style.overflowY="hidden";
document.getElementById(listid).style.height = num*24;
}
document.getElementById(obj).style.display="";

}

function leave(divobj){
document.getElementById(divobj).style.display="none";
}
</script>

</head>

<body cellspacing=0 cellpadding=0> 


<table border=1>
<tr>
<td>列表中的项目小于15的时候,不显示滚动条,列表框高度自适应</td>
<td>
<input type="text" id="name1" value="" onclick="showdiv_here('listdiv','showlist1',4);"  enable="false" onblur="leave('showlist1');"></input>
<div id="A" style="position:relative">

<div id="showlist1" style="display:none;position:absolute;left:0px;top:0px" >
<table  border=0 cellspacing=0 cellpadding=1>
   <tr>
     <td bgcolor="#000000">
<table  bgcolor="#FFFFFF" border=0 cellspacing=0 cellpadding=0>
   <tr>
     <td>
<div id="listdiv" class="div_1">
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name1',this,'showlist1')">123456789123456789123456789123456789123456789123456789</td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name1',this,'showlist1')">1ssssssssssssssssssssssssssssssssssssssssssssss</td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name1',this,'showlist1')">2</td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name1',this,'showlist1')">3</td></tr></table>
</div>
     </td>
   </tr>
</table>
     </td>
   </tr>
</table>
</div >
</div>
</td>
</tr>

<tr>
<td>超过15项之后自滚动条显示</td>
<td>
<input type="text" id="name3" value="" onclick="showdiv_here('listdiv3','showlist3',17);"  enable="false" onblur="leave('showlist3');"></input>
<div id="A" style="position:relative">

<div id="showlist3" style="display:none;position:absolute;left:0px;top:0px" >
<table  border=0 cellspacing=0 cellpadding=1>
   <tr>
     <td bgcolor="#000000">
<table  bgcolor="#FFFFFF" border=0 cellspacing=0 cellpadding=0>
   <tr>
     <td>
<div id="listdiv3" class="div_1">
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name3',this,'showlist3')">1</td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name3',this,'showlist3')">22222222222222222111111111111</td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name3',this,'showlist3')">2</td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name3',this,'showlist3')">3</td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name3',this,'showlist3')">1</td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name3',this,'showlist3')"></td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name3',this,'showlist3')">2</td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name3',this,'showlist3')">3</td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name3',this,'showlist3')">1</td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name3',this,'showlist3')"></td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name3',this,'showlist3')">2</td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name3',this,'showlist3')">3</td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name3',this,'showlist3')">1</td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name3',this,'showlist3')"></td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name3',this,'showlist3')">2</td></tr></table>
<table class="table_1"><tr class="tr_1"><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name3',this,'showlist3')">3</td></tr></table>
</div>
     </td>
   </tr>
</table>
     </td>
   </tr>
</table>
</div >
</div>
</td>
</tr>

<tr>
<td>项目文本过长时,分行显示</td>

<td>
<input type="text" id="name" value="" onclick="showdiv('showlist');"  enable="false" onblur="leave('showlist');"></input>
<div id="A" style="position:relative">

<div id="showlist" style="display:none;width:300px;position:absolute;left:0px;top:0px" >
<table style="width:100%;" border=0 cellspacing=0 cellpadding=1>
   <tr>
     <td bgcolor="#000000">
<table style="width:100%" bgcolor="#FFFFFF" border=0 cellspacing=0 cellpadding=0>
   <tr>
     <td>
<div class="div_1">
<table class="table_1" style="word-break:break-all;"><tr><td  onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name',this,'showlist')">123456789123456789123456789123456789123456789123456789</td></tr></table>
<table class="table_1"><tr><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name',this,'showlist')">1ssssssssssssssssssssssssssssssssssssssssssssss</td></tr></table>
<table class="table_1"><tr><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name',this,'showlist')">2</td></tr></table>
<table class="table_1"><tr><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name',this,'showlist')">3</td></tr></table>
<table class="table_1"><tr><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name',this,'showlist')">4</td></tr></table>
<table class="table_1"><tr><td onmouseover='moveon(this)' onmouseout='out(this)'
             onMouseDown ="selected('name',this,'showlist')">5</td></tr></table>
</div>
     </td>
   </tr>
</table>
     </td>
   </tr>
</table>
</div >
</div>
</td>
</tr>
</table>

</body>
</html>



下拉按钮和具体的下拉列表的事件处理,大家完善一下就可以用了。
分享到:
评论

相关推荐

    js+css实现可搜索的下拉选择框插件

    为了解决这个问题,我们可以使用"js+css实现可搜索的下拉选择框插件",它结合了jQuery和CSS技术,提供了一个高效、易用的解决方案,使用户可以通过输入关键字快速查找所需选项。 这个插件的实现基于JavaScript的...

    JS+CSS美化经典Select选项框插件

    为了改善这一情况,开发者们通常会利用JavaScript(JS)和层叠样式表(CSS)来增强Select的视觉效果,创建出更加精美、自定义的选项框插件。本文将深入探讨如何使用JS和CSS来美化经典Select选项框。 首先,我们需要...

    css+js控件、提示层、滑动门

    在网页设计和开发中,CSS(层叠样式表)和JavaScript是两个不可或缺的工具,它们共同构建了丰富多样的交互式用户体验。在这个“css+js控件、提示层、滑动门”的主题中,我们将深入探讨这些技术如何用于创建动态的...

    html+css+js实现XP WINDOW界面

    例如,可以使用`&lt;div&gt;`标签来创建窗口容器,`&lt;button&gt;`标签定义可点击的按钮,以及`&lt;ul&gt;`和`&lt;li&gt;`来创建下拉菜单。HTML代码会定义这些元素的位置、大小和层次关系,形成UI的基础。 其次,CSS(Cascading Style ...

    jQuery分类下拉选择搜索框代码.zip

    《jQuery实现分类下拉选择搜索框的代码解析与实践》 在现代网页设计中,交互性和用户体验至关重要。jQuery作为一个强大的JavaScript库,为开发者提供了丰富的功能和便利,使得动态效果的实现变得简单。本文将深入...

    Bootstrap+css+js实现微票儿

    7. **插件集成**:Bootstrap有许多可扩展的插件,如日期选择器、模态框等,它们都是通过JS实现的。 总的来说,这个项目将带你深入理解Web开发的基础,并教会你如何使用Bootstrap来快速构建专业级的Web应用。通过...

    jQuery和css3超赞select下拉列表框美化插件

    在网页设计中,Select元素通常是用来创建下拉选择菜单的,但其默认样式在许多浏览器中并不统一,有时显得较为简陋。为了提升用户体验和界面美观度,开发者经常需要借助第三方插件来对Select进行美化。本插件就是这样...

    select下拉列表显示图片内容

    在网页设计中,`&lt;select&gt;`元素通常用于创建下拉列表,用户可以在其中选择一个或多个选项。然而,标准的`&lt;select&gt;`元素通常只支持文本内容,不直接支持显示图片。但随着网页交互性的增强,设计师们有时需要在下拉列表...

    DIV+CSS下拉菜单

    1. 鼠标悬停效果:利用`:hover`伪类,当鼠标悬停在菜单项上时,触发下拉菜单的显示。 2. 层叠和定位:通过`position`属性设置元素的位置,如`relative`(相对定位)、`absolute`(绝对定位)或`fixed`(固定定位),...

    Web前端技术项目式教程(HTML5+CSS3+Flex+Bootstrap)-课后练习答案.zip

    CSS3不仅在样式设计上提供了更多的选择,例如新增了多种选择器(如属性选择器、伪类和伪元素),还引入了过渡(Transitions)、动画(Animations)和变形(Transforms),使得网页元素的动态效果更加丰富。CSS3的...

    动态网页设计与制作:CSS+JavaScript

    通过JavaScript,网页可以变得更具互动性,如图片轮播、表单验证、下拉菜单、时间戳实时更新等。 3. 图片处理:在网页设计中,图片的优化和处理至关重要。使用Photoshop等图像编辑软件,可以对图片进行裁剪、调整...

    CSS3+jQuery模拟ipad前端技术界面

    在本文中,我们将深入探讨如何使用CSS3和jQuery来模拟iPad的前端技术界面。这个项目主要针对的是在Chrome浏览器上获得最佳的显示效果,因此,我们将会关注如何利用这两种强大的技术来实现逼真的iPad界面体验。 **...

    bootstrap下拉多选框

    在Bootstrap中,下拉多选框是实现用户界面交互时常见的一种元素,尤其在数据筛选、选项选择等场景下非常实用。Bootstrap本身并没有内置专门的多选下拉框组件,但通过扩展或第三方插件,我们可以轻松地实现这一功能。...

    select下拉选择不同状态

    在IT行业中,尤其是在前端开发领域,我们经常遇到各种...通过定制每个选项的样式,结合JavaScript监听用户的交互,可以创建一个具有丰富视觉反馈的下拉选择器。同时,考虑与设计资源的配合,可以进一步提升用户体验。

    CSS+DIV帮助文档包

    2. **CSS选择器**:涵盖ID选择器、类选择器、元素选择器、伪类和伪元素,以及更高级的选择器如属性选择器和后代选择器,帮助定位并应用样式到特定元素。 3. **CSS布局**:探讨流体布局、网格布局、响应式设计和...

    CSS3+jQuery 模拟苹果系统

    在本项目中,“CSS3+jQuery 模拟苹果系统”是一个使用现代Web技术来复刻苹果设备用户界面的示例。这个项目结合了CSS3的样式功能和jQuery的交互效果,为网页创建出类似苹果系统的视觉体验和交互行为。下面我们将深入...

    js 下拉菜单 特效

    4. **悬停效果**:通过JS可以实现鼠标悬停在下拉菜单上时显示子菜单的效果。例如: ```javascript var dropdown = document.getElementById('myDropdown'); dropdown.addEventListener('mouseover', function() { ...

    jQuery自定义表单选择框效果改变平淡无奇的下拉列表.zip

    在网页设计中,表单是收集用户数据的重要手段,而选择框(下拉列表)作为表单元素之一,经常用于让用户在预设的选项中进行选择。然而,原生的HTML下拉列表样式通常较为简单,无法满足设计师们对美观和交互性的需求。...

    jQuery Select 下拉单选框模拟插件 V1.3.6

    **jQuery Select 下拉单选框模拟插件 V1.3.6** 在Web开发中,jQuery库被广泛用于简化JavaScript的DOM操作,提高用户体验。这个插件,名为jQuery Select,专注于改进传统的HTML `&lt;select&gt;` 元素,将其转化为具有更好...

    Choicesjs一个JS可定制的选择框文本输入插件

    Choices.js 是一个强大的JavaScript库,专门用于创建可高度定制的选择框和文本输入插件。它为开发者提供了丰富的自定义选项,使得在Web应用中构建功能丰富、交互性强的表单元素变得轻而易举。这个插件尤其适用于那些...

Global site tag (gtag.js) - Google Analytics