Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.09.2021, 10:27
Аспирант
Отправить личное сообщение для Vahan60 Посмотреть профиль Найти все сообщения от Vahan60
 
Регистрация: 20.04.2020
Сообщений: 46

Копировать картинку из одного <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>
Ответить с цитированием
  #2 (permalink)  
Старый 29.09.2021, 12:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

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`;
            });
        };
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перетаскивание изображения из одного div-a в другой div Lera78906 Элементы интерфейса 2 01.05.2017 17:59
как с помощью javascript взять данные из одного файла html и закинуть в другой? rusik Общие вопросы Javascript 10 08.08.2016 12:11
ктивация одного блока через другой zerofx Элементы интерфейса 6 14.01.2014 00:28
Скопировать HTML код с одного id в другой lamer Общие вопросы Javascript 17 08.01.2013 01:42
Переместить картинку из одного div элемента в другой KamalovRadik jQuery 1 11.02.2012 20:14