Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Копировать картинку из одного <div> в другой <div> (https://javascript.ru/forum/dom-window/83142-kopirovat-kartinku-iz-odnogo-div-v-drugojj-div.html)

Vahan60 29.09.2021 10:27

Копировать картинку из одного <div> в другой <div>
 
Доброго времени суток.

Никак не получается скопировать/сдублировать картинку и из одного <div> в другой <div>.

Алгоритм таков:
Дан двумерный массив (15Х3) содержащий картинки;
Надо:
1. по клику на кнопку меню (id="menu") вставить соответствующие картинки в 3 кнопки (<div class="room">) в выпадающем окне (<dialog id = "dial">);
2. по клику на кнопку "room" вставить ту же картинку в <div id="pic">, при этом сама кнопка "room" должна остаться на месте вместе с содержимым.

Вот пункт 2 у меня и не получается. DevTools ошибок не выдает, а "pic" так и остается пустым.

Что я делаю не так ?

<!DOCTYPE html>
 
<html>

  <head>
    <meta charset="UTF-8" />
	<meta name="viewport" content="width=device-width" />
    <title>TT</title>
	<style>
	    #menu{width: 80vw; height: 20vh; border: 1px solid red;}
		.cell{width: 20vw; height: 20vh; border: 1px solid black;}
		#dial{width: 80vw; height: 60vh; border: 1px solid green;}
	    #packaging { width: 70vw; height: 60vh; display: flex; flex-direction: row;}
		#pic{width: 80vw; height: 60vh; border: 1px solid blue;}
		#keypad{ width: 5vw; height: 60vh; border:  display: flex;flex-direction: column;}
		.room {width: 5vw;height: 5vw;border: 1px solid black;}
		#home {width: 5vw;height: 5vw;border: 1px solid black;}
		.fond {width: 5vw;height: 5vw;}
	</style>	
  </head>

  <body>

    <div id="menu">
  	    <button class="cell">1</button><button class="cell">2</button><button class="cell">3</button>
    </div>
	
    <dialog id = "dial">
      <div id="packaging"> 	
		<div id="pic"><img class="fond0" src=""></div>
		<div id="keypad">
		    <div class="room"><img class="fond" src=""></div>
            <div class="room"><img class="fond" src=""></div>
            <div class="room"><img class="fond" src=""></div>    
		</div>	   
      </div>  
	</dialog>
	<script>
	    const inset = [["apricot", "apple", "avocado",],
                       ["butterfly", "bug", "bear"],		   
			           ["crow", "cat", "cup"]];	
					 
		let activeCell;
		let cell = document.querySelectorAll(".cell");
        let dial = document.getElementById("dial");
        let fond = document.querySelectorAll(".fond");
		let fond0 = document.querySelectorAll(".fond0");
        let room =  document.querySelectorAll(".room"); 
		let pic = document.getElementById("pic");

for (let i = 0; i < inset.length; i++){
      cell[i].addEventListener("click", function( ) {
	    activeCell = i;
		dial.show();
		
        for (let j = 0; j < room.length; j++) {
	      fond[j].src = "pic/".concat(inset[activeCell][j].concat(".webp"));          	  
          };
		  
		for (let j = 0; j < room.length; j++) {
	      room[j].addEventListener("click", function( ) {
	      fond0.src = "pic/".concat(inset[activeCell][j].concat(".webp"));      
	         });	       	  
          };
		     
	  }) 
   }; 

	</script>
	 
  </body>
  
</html>

рони 29.09.2021 12:58

Vahan60,
const inset = [
            ["apricot", "apple", "avocado", ],
            ["butterfly", "bug", "bear"],
            ["crow", "cat", "cup"]
        ];

        let activeCell = 0;
        let cell = document.querySelectorAll(".cell");
        let fond = document.querySelectorAll(".fond");
        let fond0 = document.querySelectorAll(".fond0");
        let room = document.querySelectorAll(".room");
        let pic = document.getElementById("pic");

        for (let i = 0; i < cell.length; i++) {
            cell[i].addEventListener("click", function() {
                activeCell = i;
                show();
            })
        };

        function show() {
            for (let j = 0; j < fond.length; j++) {
                fond[j].src = `pic/${inset[activeCell][j]}.webp`
            };
        }


        for (let j = 0; j < room.length; j++) {
            room[j].addEventListener("click", function() {
                fond0.src = `pic/${inset[activeCell][j]}.webp`;
            });
        };


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