1

好的,所以故事是我的用户需要一个多选下拉列表,它在 ASP.NET 中不存在,所以我要使用的简单解决方案是我使用启用多选的列表框,并以 1 号开始它们,并且 onmouseover 我将大小更改为 10,onmouseout 将其设置回 1。很简单,用户不知道区别。

现在,我的问题来自这样一个事实,因为我的 Web 应用程序上有任意数量的控件,所以我将这些列表框设置为比其他控件更高的 z-index 数字,这会产生一个问题:在我的列表框更靠近底部页面的列表在下方而不是上方展开,并且列表框的一部分位于页面底部下方,但是由于 onmouseout 重置了列表框的大小,因此我无法向下滚动页面。

有人知道我需要设置什么才能使其向上扩展而不是向下扩展吗?

编辑另外,有些人可能会问“为什么不将列表框重新排列到页面中的更高位置”,这不是一个可行的选项的原因是我在页面上有超过 40 个控件并且它们被分组凝聚力,我不只是随机地将它们放在它们所在的位置。(即,一个部分的投资信息,另一个部分的帐户,另一个部分的适用性)

4

1 回答 1

1

编辑:值得注意的是,下面的 jQuery 版本会更紧凑,在我看来,更容易理解。

Glo,您当前拥有的代码在这里会有所帮助,尤其是因为您似乎很难更改我们提供的任何内容或实现我们可能描述的内容。无论如何,这在 IE7、Firefox 和 Opera 中都能正常工作;Safari 和 Chrome 很奇怪:http: //jsfiddle.net/bUFzq/35/(修改自http://www.plus2net.com/html_tutorial/html_frmddl.php)。

CSS 只是使选择相对于其默认位置可定位。元素只能相对于其他定位元素进行定位。`位置:相对;' 将元素留在原处,直到您移动它,这与绝对和固定不同。它还相对于其最近定位的祖先的边缘进行定位。(IT 行业有向下而不是向上增加 Y 的不幸惯例;只是向上或向下增加。)

element.offsetHeight 是元素的计算高度——它出现在屏幕上的大小。element.style.bottom (就像它的表兄弟 top、left 和 right 一样)设置元素在元素中心方向上相对于相应边缘的偏移量。setAttribute 是不言自明的;就好像您实际上在编辑 HTML 一样。 element.style的大多数属性(不在所有其他对象上)表示和修改类似命名的 CSS 属性。例如, element.style.backgroundColor 设置背景颜色属性。

addEvent 是从 Dustin Diaz 的Rock Solid addEvent()复制的一个函数,因为浏览器在如何处理事件方面并不一致。但是,如果我不在单个脚本区域内工作,我会将他的脚本放在一个单独的文件中,然后将我的脚本放在另一个文件中。我做了`var addEvent = init();' 只是这样你就不必滚动浏览他的源代码,即使它是好代码的一个很好的例子。

mouseover 和 mouseout 是实际的侦听器,使用apply 1) 显式调用,因为我以后需要该高度值和 2) 因为出于某种原因(至少在 jsFiddle 中)它没有从正确的位置开始,并且只有当侦听器会按该顺序被调用,它会到达那里。

于 2011-03-16T01:25:07.213 回答