Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Изменение фона другого изображения (https://javascript.ru/forum/dom-window/71878-izmenenie-fona-drugogo-izobrazheniya.html)

Win_D 19.12.2017 15:01

Изменение фона другого изображения
 
Здравствуйте. На странице есть несколько элементов:
  1. Изображение красного цвета
  2. Изображение зелёного цвета
  3. Картинка с прозрачным фоном
<figure>
<img id="redPic" src="redPic.png">
<figcaption>Красная картинка</figcaption>
</figure>
<figure>
<img id="greenPic" src="greenPic.png">
<figcaption>Зелёная картинка</figcaption>
</figure>
<img id="transparentBackground.png" src="transparentBackground.png"></img>

Возможно ли с помощью JS сделать следующее:
  • при нажатии на id="redPic", у картинки transparentBackground.png в качестве фона устанавливается изображение redPic.png
  • соответственно, при нажатии на id="greenPic", у картинки transparentBackground.png в качестве фона устанавливается изображение greenPic.png
Заранее огромное спасибо за помощь

Nexus 19.12.2017 15:35

<figure>
    <img id="redPic" src="https://javascript.ru/forum/image.php?u=19392&dateline=1385220798"/>
    <figcaption>Красная картинка</figcaption>
</figure>
<figure>
    <img id="greenPic" src="https://javascript.ru/forum/image.php?u=39916&dateline=1498604796"/>
    <figcaption>Зелёная картинка</figcaption>
</figure>
<img id="transparentBackground" src="https://javascript.ru/forum/image.php?u=7416&dateline=1372796129"/>

<script>
var target=document.getElementById('transparentBackground');
[].forEach.call(document.querySelectorAll('#redPic,#greenPic'),function(node){
    node.addEventListener('click',function(){
        target.src=node.src;
    });
});
</script>

Dilettante_Pro 19.12.2017 15:42

<figure>
<img id="redPic" src="https://javascript.ru/cat/list/jquery_54.png">
<figcaption>Красная картинка</figcaption>
</figure>
<figure>
<img id="greenPic" src="https://javascript.ru/cat/list/scriptaculous_54.png">
<figcaption>Зелёная картинка</figcaption>
</figure>
<img id="transparentBackground" src="https://img-fotki.yandex.ru/get/15517/66124276.2e4/0_c2654_881ccb5_S.png" ></img>
<script>
redPic.onclick = function() {
   transparentBackground.style.backgroundImage = "url(" + this.src + ")";
}
greenPic.onclick = function() {
   transparentBackground.style.backgroundImage = "url(" + this.src + ")";
}
</script>

Dilettante_Pro 19.12.2017 15:51

Или на базе скрипта Nexus
<figure>
<img id="redPic" src="https://javascript.ru/cat/list/jquery_54.png">
<figcaption>Красная картинка</figcaption>
</figure>
<figure>
<img id="greenPic" src="https://javascript.ru/cat/list/scriptaculous_54.png">
<figcaption>Зелёная картинка</figcaption>
</figure>
<img id="transparentBackground" src="https://img-fotki.yandex.ru/get/15517/66124276.2e4/0_c2654_881ccb5_S.png" ></img>
<script>
var target=document.getElementById('transparentBackground');
[].forEach.call(document.querySelectorAll('#redPic,#greenPic'),function(node){
    node.addEventListener('click',function(){
        target.style.backgroundImage = "url(" + this.src + ")";
    });
});

</script>

Win_D 19.12.2017 16:45

Цитата:

Сообщение от Dilettante_Pro (Сообщение 473243)
<figure>
<img id="redPic" src="https://javascript.ru/cat/list/jquery_54.png">
<figcaption>Красная картинка</figcaption>
</figure>
<figure>
<img id="greenPic" src="https://javascript.ru/cat/list/scriptaculous_54.png">
<figcaption>Зелёная картинка</figcaption>
</figure>
<img id="transparentBackground" src="https://img-fotki.yandex.ru/get/15517/66124276.2e4/0_c2654_881ccb5_S.png" ></img>
<script>
redPic.onclick = function() {
   transparentBackground.style.backgroundImage = "url(" + this.src + ")";
}
greenPic.onclick = function() {
   transparentBackground.style.backgroundImage = "url(" + this.src + ")";
}
</script>

То что надо! Спасибо огромное!


Часовой пояс GMT +3, время: 04:17.