【发布时间】:2012-12-10 23:46:36
【问题描述】:
假设有一个具有多种样式等的复杂网站。该网站上也有许多图像可以定位、内联、块或其他。
我想做的是在每张图片上方放一个小叠加图标!
第一次尝试是在正文末尾为每个图像创建一个position:absolutespan,并将其移动到图像上。问题:如果网站上的某些内容移动、隐藏或显示,则图像可能也会移动,但图标叠加层会保留,因此图标将不再位于图像上方。
所以我想使用jQuery.wrap 将每个图像包装在一个带有position:relaitve 的div 中,然后我将图标叠加层也放在该div 中并将其放置在div 中。所以如果div+image移动,图标也会移动。
问题是 div 必须在某种程度上对上下文、网站结构和 dom 没有影响,这样它才不会破坏网站的布局。如何创建这样一个“中性”的 div?
我的代码的简化版:
$("img:visible").each(function(i, v){
var img = $(this);
var position = img.offset();
$('<span class="icon" />')
.css({
'top': position['top'] + 5,
left': position['left'] + 5
})
.appendTo(document.documentElement)
}
//css
.icon {
position: absolute;
display: block;
z-index: 50000;
width: 16px;
height: 16px;
}
【问题讨论】:
-
你能展示你正在使用的代码吗?
-
让它与硬编码的 HTML/CSS 一起工作,然后研究如何使用 javascript/jQuery 实现自动化。
-
我的代码已经可以正常工作并正确显示覆盖图标。但如果我这样做 $('body').prepend('');然后所有图像都会下移 300 像素,但图标不会!不幸的是,我无法跟踪所有此类元素的插入或删除来更新我的图标覆盖.....
标签: javascript jquery css dom jquery-wrap