【发布时间】:2013-04-17 12:29:24
【问题描述】:
我创建了这个小提琴来说明我的问题:http://jsfiddle.net/AVxbd/
我有一个菜单 (#container),带有一些链接 (#text1, #text2)。我制作了一个#highlighter 元素来突出显示此人在特定时刻所在页面的链接。 HTML:
<div id="container">
<div id="highlighter"></div>
<div id="text1">Text 1</div><div id="text2">Text 2</div>
</div>
JavaScript:
$('#highlighter')
.offset($('#text1').offset())
.width($('#text1').width()
);
$('#text1, #text2').click(function(){
$('#highlighter').animate({
top: $(this).offset().top,
left: $(this).offset().left,
width: $(this).width() + "px"
},300);
});
问题在于#highlighter 元素显示在 #text1 和#text2 元素之上。这不是我想要的!
我试图用 z-index 解决这个问题:
#container { z-index: 1; }
#highlighter { z-index: 2; }
#text1, #text2 { z-index: 3; }
但是,这不起作用,正如您在小提琴中看到的那样。
我怎样才能让它工作?我想让#text1 和#text2 元素看起来像橙色背景,但是因为我希望荧光笔在宽度和位置上设置动画,所以我不能只给这些元素本身设置背景。
【问题讨论】:
-
+ "px"不是明确需要的,因为您也没有将它用于顶部和左侧。我认为 z-index 也是多余的,因为荧光笔元素是容器内的第一个元素,请参见小提琴:jsfiddle.net/AVxbd/7(我将荧光笔移到了末尾,所以它是最后一个元素) -
@Imperative 是的,我只是添加它们以确保 那 不是问题。感谢您指出!
标签: javascript jquery html css z-index