我正在尝试将员工的名字放在他们的肖像上。
我正在循环一个物体对象,以便雇佣员工
var classes = {
2013: {
"image/path.png" : "name of employee",
"image/path2.png" : "name of employee2"
},
2012...
}
并使用jQuery each
循环播放它们,以按租用年份显示他们的肖像和名称:
jQuery(document).ready(function($){
//identify all elements in <li>
$('li').on('mouseover', function(e){
$('#overlay').empty();
var title = $('<h2>');
title.text('Class of ' + e.target.id);
$('#overlay').append(title);
$.each(classes[e.target.id], function(path, name) {
var img = $('<img/>');
img.attr('src', path);
$('#overlay').append("<span class='imagesContainer'>");
$('#overlay').append(img);
$('#overlay').append("<span class='names'>" + name + "</span>");
$('#overlay').append("</span>");
});
});
});
为了让他们的名字出现在他们各自的肖像上,我已经按照这个this指南尝试将图像包裹在一个位置:相对容器($('#overlay').append("<span class='imagesContainer'>"); ... append image here ... $('#overlay').append("</span>");
,然后将文本放在上面定位:绝对......但它不起作用......
CSS:
#overlay {
position: relative;
float: left;
width: 100%;
}
.imagesContainer {
position: relative;
float: left;
}
.names {
position: absolute;
/*background: rgba(0, 0, 0, 0.7);*/
padding: 5px;
color: white;
font-size: 12px;
font-family: "Trebuchet MS", Helvetica, sans-serif;
}
我是否有任何想法可以让每个名字出现在正确的图像上?
谢谢!
答案 0 :(得分:3)
append()
不会这样做。您只能追加完整元素,而不仅仅是它们的一部分。因此,您需要创建.imagesContainer
,将其他元素附加到其中,然后将.imagesContainer
附加到#overlay
:
var $imgContainer = $("<span class='imagesContainer'>");
$imgContainer.append(img);
$imgContainer.append("<span class='names'>" + name + "</span>");
$('#overlay').append($imgContainer);