如何在鼠标悬停和鼠标出出时增加选择元素的大小时固定表格的位置
How to fix the position of table while increasing size of select element onmouseover and onmouseout
我必须在鼠标悬停时增加选择元素的宽度,并在鼠标悬停时减小宽度。选择元素在表的 td 元素下定义。我已经做了一些编码来更改其大小,但它会影响表格位置。
如何解决这个问题?
请帮帮我。
<head>
<script>
function AdjustWidth(ddl) {
var maxWidth = 0;
for (var i = 0; i < ddl.length; i++) {
if (ddl.options[i].text.length > maxWidth) {
maxWidth = ddl.options[i].text.length;
}
}
ddl.style.width = maxWidth * 27 + "px";
}
function AdjustWidthOut(ddl) {
var maxWidth = 0;
for (var i = 0; i < ddl.length; i++) {
if (ddl.options[i].text.length > maxWidth) {
maxWidth = ddl.options[i].text.length;
}
}
ddl.style.width = maxWidth * 7 + "px";
}
</script>
</head>
<table>
<tr>
<td valign="top"><strong style="color: #3265a6">Area: </strong></td>
<td>
<select onmouseover="AdjustWidth(this)" onmouseout="AdjustWidthOut(this)">
<option value="">x</option>
<option value="">y</option>
<option value="">z</option>
<option value="">x</option>
</select>
</td>
</tr>
</table>
你的代码似乎做了你指示它做的事情。
在onmouseover
,它将select
的宽度设置为27px,因为最长的option
是一个字符。
在onmouseout
中,它将select
的宽度设置为7px。
请注意,27px 的宽度不足以显示select
中的单个字符。 7px 的宽度几乎不足以显示下拉箭头。
在下面的代码片段中,我添加了 27px 和 7px 的div。 您将看到您的select
框在onmouseover
和onmouseout
期间与它们中的每一个都匹配。
如果希望select
更宽,请使用大于 27 和 7 的值。 您可能需要尝试以找到最适合您的方法。
如果您希望select
在onmouseout
期间恢复到其原始宽度,则可以这样做:
function AdjustWidthOut(ddl) {
ddl.style.width = 'auto;
}
片段:
function AdjustWidth(ddl) {
var maxWidth = 0;
for (var i = 0; i < ddl.length; i++) {
if (ddl.options[i].text.length > maxWidth) {
maxWidth = ddl.options[i].text.length;
}
}
ddl.style.width = maxWidth * 24 + "px";
}
function AdjustWidthOut(ddl) {
var maxWidth = 0;
for (var i = 0; i < ddl.length; i++) {
if (ddl.options[i].text.length > maxWidth) {
maxWidth = ddl.options[i].text.length;
}
}
ddl.style.width = maxWidth * 7 + "px";
}
#D1 {
width: 27px;
height: 20px;
background: green;
}
#D2 {
width: 7px;
height: 20px;
background: green;
}
<table>
<tr>
<td>27px:
<td><div id="D1"></div>
<tr>
<td>7px:
<td><div id="D2"></div>
<tr>
<td valign="top"><strong style="color: #3265a6">Area: </strong></td>
<td>
<select onmouseover="AdjustWidth(this)" onmouseout="AdjustWidthOut(this)">
<option value="">x</option>
<option value="">y</option>
<option value="">z</option>
<option value="">x</option>
</select>
</td>
</tr>
</table>
您需要为表格和/或行和列设置宽度,否则表格宽度将设置为其内容的 100%。看看我创建的这个小提琴,它只会改变下拉元素的宽度。
http://jsfiddle.net/1k03tvmu/
table{border: 1px solid;}
tr{border: 1px solid;}
td{ width: 100px; position: relative;}
td.content{width: 1000px; }
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 当鼠标悬停在文本中的单词上时显示警报
- JsFiddle上的鼠标事件不起作用
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 如何在鼠标悬停时在另一个图像上滑动图像.
- 鼠标悬停事件影响列表中所有行中的按钮,而不仅仅是特定按钮
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- 将鼠标旋转限制为特定的度数
- 跟踪jqplot垂直折线图的鼠标位置
- node-webkit-从父窗口捕获iframe鼠标事件
- IE在将字符串转换为日期时从日期中删除4小时
- 悬停下拉菜单即使在鼠标移出后也保持活动状态
- 画布 - 在调整窗口大小时转换鼠标坐标
- 如何在鼠标悬停和鼠标出出时增加选择元素的大小时固定表格的位置
- 当更改页面大小时,动态地重新计算选择框的鼠标位置
- 当我将鼠标悬停在Button上以增加它的大小时,它下面的元素会向下移动
- 调整窗口大小时在镶边中触发的鼠标输入事件