不幸的是,这是一个我继承的应用程序,没有任何帮助,并且没有真正的技能设置来维护,所以我会感激一点’解释,就像我是五个’.此外,我为文本墙道歉.
从广泛的谷歌搜索和应用程序中的其他代码检查我相信optionsCollection将解决这个特定的问题,但我需要触发一个函数来设置其他数据时所选的值更改,并没有找到一种方法来使用optionsCollection .
不幸的是,这个东西太大而不能发布,如果我试图将问题打包成独立的话,我可能会破坏它,所以这就是我认为的相关代码.
div
<div class="empform"> <html:form action="/processBlank"> <div id="divJobClass" style="visibility: hidden; position: absolute; height="50px" border-color: #fff; border-style:solid; border-width: 1px; background: white; opacity: 1"> <table id="tableJobClass" cellspacing="0" style="border-color: #9090ff; border-style:solid; border-width:1px;" cellpadding="0"> <% ctr = 0; for (JobClassVO jc : jcList) { // href="setJC(<%=jc.getGuid()% >,'< %=jc.getJcIdDesc()% >')" %> <tr><td><input style="border: none; background: white" type="text" id="jc<%=ctr%>" size="50" value="<%=jc.getJcIdDesc()%>" readonly="readonly" onclick="setJC(<%=jc.getGuid()%>,'<%=jc.getJcIdDesc()%>',<%=ctr%>)" onkeydown='jcListCheck(event);'></td></tr><% ctr++; } %>
通过单击字段触发下拉列表的位置
<td> <html:hidden name="erfEmployee" property="jcGUIDString" indexed="true"/> <html:text name="erfEmployee" property="jcId" indexed="true" size="8" maxlength="25" onblur='<%= "isLastRow('JobClass'," + count + ");" %>' onclick='<%= "showJcList(" + count + ");" %>' onkeydown='<%= "jcCheck(event," + count + ");" %>' onchange='<%= "verifyHoursClass(" + count + ");" %>' readonly="true" /> </td>
isLastRow,jcCheck和onChange与外观无关.
用于显示div的函数出现
function showJcList(index) { var fld = elem("erfEmployee[" + index + "].erfEeSsnFormatted"); if (fld.value == "") return; var div = elem_("divJobClass"); jcGuidTarget = elem("erfEmployee["+index+"].jcGUIDString"); jcIdTarget = elem("erfEmployee["+index+"].jcId"); showList(jcIdTarget,div,jcGuidTarget); focusSelected("jc",null,<%=jcList.size()-1%>); } function showList(idTarget,guidTarget) { ddDiv = div; if (ddDiv.style.visibility == "visible") { ddDiv.style.visibility = "hidden"; return; } var iTop = 0,oNode = idTarget,iLeft = 0; while(oNode.tagName != "BODY" && oNode.tagName != "HTML") { iTop += oNode.offsetTop; oNode = oNode.offsetParent; } oNode = idTarget; while(oNode.tagName != "BODY" && oNode.tagName != "HTML") { iLeft += oNode.offsetLeft; oNode = oNode.offsetParent; } ddDiv.style.left = "" + iLeft + "px"; ddDiv.style.top = "" + (iTop + idTarget.offsetHeight) + "px"; ddDiv.style.visibility = "visible"; ddIdTarget = idTarget; ddGuidTarget = guidTarget; }
我搜索的几个网站建议溢出:自动和设置大小,但这似乎没有改变任何东西.也许我搞砸了设定尺寸?但在我看来,固定大小无济于事,因为可用空间取决于输入的行.我发现overflow:scroll给了我水平和垂直滚动条,但是条形图只是在屏幕末端的div处延伸.我已经考虑过要弄清楚剩下多少空间,并让div看起来足够高,但我认为那会很难看.如果我不得不去,我会去那里.
任何提示,帮助,指点的想法将非常感激.谢谢.
解决方法
你只需要
>为元素设置所需的最大高度;
> set overflow-y:auto指示仅在需要时添加滚动条;
>使用javascript,计算元素的顶部位置加上元素的高度是否高于视口的高度(窗口的可见区域);
>如果它溢出,那么做点什么.通常,通常的行为是反转下拉的方向,使其从父元素的底部开始,向顶部增长.
看看使用jQuery制作的jsFiddle example(为方便起见).调整窗口大小,看看溢出元素会发生什么.
或者只运行以下代码段:
$(".dropdown li").on('mouseenter mouseleave',function(e) { var submenu = $('ul:first',this); var submenutop = submenu.offset().top; var submenuHeight = submenu.height(); var viewportHeight = $(window).height(); var isOverflowing = (submenutop + submenuHeight > viewportHeight); if (isOverflowing) { submenu.css("top",$(this).height() - submenuHeight); } else { submenu.css("top",0); } });
* { Box-sizing: border-Box; } body { background: dodgerBlue; } .dropdown,.dropdown li,.dropdown ul { list-style: none; margin: 0; padding: 0; } .dropdown { width: 100%; } .dropdown ul { position: absolute; top: 100%; left: 100%; visibility: hidden; display: none; z-index: 1; width: 200px; max-height: 150px; overflow-y: auto; overflow-x: hidden; } .dropdown li { position: relative; float: left; clear: both; } .dropdown li:hover { z-index: 910; } .dropdown ul:hover,.dropdown li:hover>ul,.dropdown a:hover+ul,.dropdown a:focus+ul { visibility: visible; display: block; } .dropdown a { display: block; background: #000; color: #fff; padding: 5px 20px; text-decoration: none; } .dropdown ul li { width: 100%; } .dropdown li:hover a { background: #333; } .dropdown li a:focus,.dropdown li a:hover { background: #666; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> </script> <ul class="dropdown"> <li><a href="#">Link 1</a> <ul> <li><a href="#">Link 1</a> </li> <li><a href="#">Link 2</a> </li> <li><a href="#">Link 3</a> </li> <li><a href="#">Link 4</a> </li> <li><a href="#">Link 5</a> </li> </ul> </li> <li><a href="#">Link 2</a> <ul> <li><a href="#">Link 1</a> </li> <li><a href="#">Link 2</a> </li> <li><a href="#">Link 3</a> </li> </ul> </li> <li><a href="#">Link 3</a> <ul> <li><a href="#">Link 1</a> </li> <li><a href="#">Link 2</a> </li> </ul> </li> <li><a href="#">Link 4</a> <ul> <li><a href="#">Link 1</a> </li> <li><a href="#">Link 2</a> </li> <li><a href="#">Link 3</a> </li> <li><a href="#">Link 4</a> </li> <li><a href="#">Link 5</a> </li> <li><a href="#">Link 6</a> </li> <li><a href="#">Link 7</a> </li> <li><a href="#">Link 8</a> </li> </ul> </li> <li><a href="#">Link 5</a> <ul> <li><a href="#">Link 1</a> </li> <li><a href="#">Link 2</a> </li> <li><a href="#">Link 3</a> </li> <li><a href="#">Link 4</a> </li> <li><a href="#">Link 5</a> </li> </ul> </li> <li><a href="#">Link 6</a> <ul> <li><a href="#">Link 1</a> </li> <li><a href="#">Link 2</a> </li> <li><a href="#">Link 3</a> </li> <li><a href="#">Link 4</a> </li> <li><a href="#">Link 5</a> </li> </ul> </li> <li><a href="#">Link 7</a> <ul> <li><a href="#">Link 1</a> </li> <li><a href="#">Link 2</a> </li> <li><a href="#">Link 3</a> </li> <li><a href="#">Link 4</a> </li> <li><a href="#">Link 5</a> </li> <li><a href="#">Link 6</a> </li> <li><a href="#">Link 7</a> </li> <li><a href="#">Link 8</a> </li> </ul> </li> </ul>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。