关于使用style.display时下拉框错位问题

二师兄的老公 2005-05-10 04:03:52
问:怎么解决显示/隐藏中出现的下拉框错位问题?

测试页:
<html>
<head>
<script>
function ShowInfo(div){
if(div==null||typeof(div)=='undefined')
return
div.style.display=div.style.display=='none'?'block':'none'
}
</script>
</head>
<body>
<form>
<p>line
<p>line
<p>line
<p>line
<p>line
<p>line
<p>line
<p>line
<p>line
<p><a href="javascript:ShowInfo(divInfo)">click me</a>
<p><div id=divInfo>
<p>line
<p>line
<p>line
<p>line
<p><input type=text value="hold"><select><option>move<option><select>
<p>line
<p>line
<p>line
<p>line
<p>line
<p>line
<p>line
<p>line
</div>
</form>
</body>
</html>

操作:展开时窗口右边出现滚动条,下拉滚动条;点击隐藏,同时滚动条消失;再点击展开,Select错位;改变窗口大小,Select复原。
...全文
139 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
二师兄的老公 2005-05-10
  • 打赏
  • 举报
回复
嗯,用看来scrollBy最好。
if(div.style.display=='block')
{
window.scrollBy(0,1)
window.scrollBy(0,-1)
}
二师兄的老公 2005-05-10
  • 打赏
  • 举报
回复
不过好像最大化窗口就不能偷懒了,用表格倒也可以,但是固定位置(style.top/left)的又怎么办呢?
二师兄的老公 2005-05-10
  • 打赏
  • 举报
回复
谢谢楼上好主意!

也可以用resizeBy来偷懒,如:
function ShowInfo(div){
if(div==null||typeof(div)=='undefined')
return
div.style.display=div.style.display=='none'?'block':'none'
if(div.style.display=='block')
{
window.resizeBy(1,0)
window.resizeBy(-1,0)
}
}

:)
newrockyluojun 2005-05-10
  • 打赏
  • 举报
回复
用Table固定位置

<html>
<head>
<script>
function ShowInfo(div){
if(div==null||typeof(div)=='undefined')
return
div.style.display=div.style.display=='none'?'block':'none'
}
</script>
</head>
<body>
<form>
<p>line
<p>line
<p>line
<p>line
<p>line
<p>line
<p>line
<p>line
<p>line
<p><a href="javascript:ShowInfo(divInfo)">click me</a>
<p><div id=divInfo>
<p>line
<p>line
<p>line
<p>line
<p><TABLE>
<TR>
<TD><input type=text value="hold"></TD><TD><select><option>move<option><select></TD>
</TR>
</TABLE>
<p>line
<p>line
<p>line
<p>line
<p>line
<p>line
<p>line
<p>line
</div>
</form>
</body>
</html>

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧