Пытаюсь подцепить одну и ту же картинку к нескольким span
Здравствуйте,
Я пытаюсь подцепить одну и ту же картинку к разным областям так:
<style>
span { padding:10; margin:10; display:inline-block; border:1px dotted red;}
span img {position:absolute; left:0; top:0;}
</style>
<script>
window.onload = function () {
var base_image = new Image();
base_image.src = 'images/pic7.jpg';
base_image.width=30;
var spans = document.getElementsByTagName('span');
for(var i=0; i<spans.length; i++){
alert(i+':'+spans[i].style.height);
spans[i].appendChild(base_image);
}
}
</script>
</head><body>
<span></span>
<span></span>
<span></span>
<span></span>
но картинка появляется только в первой области... Помогите, пожалуйста, разобраться. Возможно ли вообще такое? Или здесь есть баг? Я пробовал создавать каждый раз новую картинку в цикле - никакой разницы не получил. |
Уже решил сам. )
position: absolute; ставит картинку в абсолютные координаты (0,0) и картинку нужно создавать новую - в цикле. Иначе она открывается в одном "окне", затем во втором и удаляется в первом. Спасибо, всем кто пытался помочь |
Григорий Данилович,
:) spans[i].appendChild(base_image.cloneNode()); |
Спасибо. Это - быстрее, конечно и лучше.
И можно сразу второй вопрос? Я хочу поместить несколько картинок внутри каждой области друг на друга (пока в картинках установлена альфа, но как изменять её динамически - это будет третья проблема:) ). Никакая position не выглядит для этого подходящей... Я дажн пробовал помещать внутри картинку по умолчанию, но брать её координаты или размеры, что-то не выходит... ;( |
Григорий Данилович,
непонял ничего |
Рони, я хочу помещать одну картинку поверх другой.
Как сделать, чтобы внутри одной области было несколько картинок покрывающих друг друга? |
как при position:absolut; top:0; left:0; только относительно не всего экрана, а родителя?
|
zIndex поможет?
|
<style>
span { padding:10; margin:10; display:inline-block; border:1px dotted red;}
span img {position:static; left:0; top:0;}
</style>
<script>
window.onload = function () {
var spans = document.getElementsByTagName('span');
var imgs = ['images/pic1-40x40.png','images/pic5-40x40.png'];
for (var imi=0; imi<imgs.length; imi++)
var base_image = new Image();
base_image.src = imgs[imi];
base_image.width=30;
for(var i=0; i<spans.length; i++){
var imar=spans[i].getElementsByTagName('img');
if (imar.length>0){
alert(imar[0].src+'--'+
imar[0].style.width+'@'+imar[0].style.top);
base_image.style.top = imar[0].style.top;
base_image.style.left = imar[0].style.left;
base_image.style.width = imar[0].style.width;
}
else {
alert('no picture found!');
}
spans[i].appendChild(base_image.cloneNode());
}
}
</script>
</head><body>
<span id=1><img src='images/pic9.jpg' width=30></img></span>
<span id=2><img src='images/pic8.jpg' width=40></img></span>
<span id=3><img src='images/pic7.jpg' width=50></img></span>
Помещает знак неудавшейся загрузки картинки рядом с базовой - не поверх её
|
Григорий Данилович,
родителю position: relative; картинкам position:absolut; |
Получилось. Спасибо.
Спасибо, Рони.
Получилось. |
| Часовой пояс GMT +3, время: 05:53. |