我有一个无序列表,每个 li 包含一个 img 和一个 div。我的目标是悬停在 div 上将使 img 做一些事情。现在它只是添加/删除类,但这是一个占位符。添加/删除有效,但这不是问题(尽管如果您对此有提示,总是很乐意从更有经验的人那里获得意见)。
问题是悬停的 div 在悬停时突然膨胀以填满整个 li,并且似乎也暂时失去了其上部填充。这意味着当那个 div 被一个花哨的按钮替换时......该按钮可能会像当前的纯文本一样跳跃。
的HTML:
<ul id="headmenu">
<li id="kite1">
<img src="img/kitesani1a.png" id="kites1a" />
<div id="attend" class="headmenulink">attending</div>
</li>
</ul>
的CSS:
ul#headmenu { margin: 2em 0 0 0; padding: 0; }
ul#headmenu li { margin: 0 1% 0 0; padding: 0; width: 19%; float: left; display: inline; list-style: none;}
ul#headmenu img { padding-bottom: 5em; position: relative; top: 0; left: 0; z-index: 100; }
li .headmenulink { padding-top: 2em; position: relative; bottom: 0; left: 0; border:1px solid blue; }
ul#headmenu li img {
transition-duration: 0.8s;
transition-property: transform;
}
.kite1ahover {
float: right;
position: relative;
-webkit-transform:rotate(10deg);
-moz-transform:rotate(10deg);
}
(在实际版本中,css 更加冗长。)最后,当前的 jQuery 草案位:
$("#attend").hover(function(){
$("#kites1a").addClass('kite1ahover').delay(500).queue(function(next){
$(this).removeClass('kite1ahover');
next();
});
我做了一个jsfiddle,但它给了我奇怪的错误。不确定它是否可以编辑,但以防万一,它位于http://jsfiddle.net/klh02/5UMK5/7/ - 然后我还在 http://jsfiddle.net/klh02/5UMK5/7/ 上做了一个精简的真实示例/www.karinoyo.com/temp/index.php。如果您打开实时版本(不是小提琴),您会看到临时蓝色边框在悬停时扩展,同时文本跳上一两行。(注意:唯一的“实时”悬停在“参加”李,左起第一个李。)
扩展 div 是因为 CSS 吗?还是因为 jQuery?或者这只是在这种情况下发生的事情,我需要做一些创造性的定位来让 div 保持原样而不是扩展/跳跃?
提前致谢!