Отображать изображение, щелкнув где-нибудь на странице

Я хочу создать такой сайт: https://davidgomezmaestre.com/?nav=1

когда вы нажимаете где-нибудь без кнопки, вы видите картинку, а также цвет фона зависит от картинки.

Я собираюсь создать свой собственный веб-сайт с Squarespace, но я не мог найти, как это сделать. пожалуйста, помогите мне (:

Я пытался найти исходные коды на сайте-примере, но на самом деле кодирование — это не моя работа, и я не мог этого сделать.

Вы хотите, чтобы изменения происходили, когда вы нажимаете на что-то или наводите курсор, например, на веб-сайт, на который вы ссылаетесь?

strawberrymilk 27.12.2022 13:40

я хочу, чтобы это происходило, когда я нажимаю в любом месте страницы. это случайно. Я думаю, вы смотрите на меню.

Buura 27.12.2022 13:44

Ах я вижу. Веб-сайт загружает изображения с помощью плагина «imagesLoaded» — вот ссылка на веб-сайт разработчиков, она должна помочь вам начать работу imagesloaded.desandro.com

strawberrymilk 27.12.2022 13:59

Спасибо. но как я могу использовать этот плагин?

Buura 27.12.2022 14:06

Я переоценил, насколько сложно это было сделать. Хотя веб-страница, на которую вы ссылаетесь, использует плагин, без него можно обойтись. Смотрите мой ответ.

strawberrymilk 28.12.2022 03:11

Привет еще раз :/ утром, я сделал это. но теперь я не вижу результата, хотя и внедрил код. Кстати, я использую эти коды в Squarespace. Пожалуйста, можем ли мы проверить вместе, если у вас есть время.

Buura 28.12.2022 17:49

Раньше я не пользовался Squarespace, но я определенно могу взглянуть на вас. У вас есть ссылка?

strawberrymilk 29.12.2022 00:53

ну, я думаю, я не могу поделиться ссылкой, не сделав свой сайт закрытым. Вы можете написать мне, когда вы свободны, пожалуйста?

Buura 03.01.2023 08:43
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
8
91
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сделать это:

  • добавление array для ваших изображений,
  • создание нового элемента с помощью click event,
  • вставка изображений из массива в указанный элемент.

Затем сделайте то же самое для background-color, создав array цветов и изменив <body> CSS на click event.

var counter = 0;

var bgColor = [
  "#e8dff5", // color array for background-color
  "#fce1e4",
  "#fcf4dd",
  "#ddedea"
];

var imgArray = [
  "https://i.stack.imgur.com/GqweJ.png", //add URLs for your images here
  "https://i.stack.imgur.com/tFC7W.png",
  "https://i.stack.imgur.com/WjZch.png",
  "https://i.stack.imgur.com/7ALBl.png"
];


container.onclick = function(e) { //add images on click-event

  if (counter == bgColor.length) counter = 0; //loop background colors
  if (counter == imgArray.length) counter = 0; //loop images

  document.body.style.background = bgColor[counter]; //change background 

  var pic = document.createElement('img'); //create new element 
  pic.src = imgArray[counter]; //add URL for images
  pic.classList.add("image"); //add class name for images
  pic.style.position = 'absolute';
  pic.style.top = e.clientY + 'px'; //place images where you click
  pic.style.left = e.clientX + 'px';
  this.appendChild(pic);
  counter++;
}


reset = document.querySelector(".reset") //remove images on click-event
reset.addEventListener('click', function() {
  document.querySelectorAll('.image').forEach(function(x) {
    x.remove();
  })
})
#container {
  width: 100vw; /* makes whole page clickable, make smaller if need */
  height: 100vh;
}

.image {
  width: 100px;  /* style your images here */
  height:100px;
}

.reset { 
  position: fixed; /* click to remove images */
  bottom: 10px;
  right: 10px;
  z-index: 999999; /* ensure reset isn't hidden behind images */
  cursor: pointer; /* indicates element is clickable */
}
<div id = "container"></div>

<div class = "reset">REMOVE IMAGES</div>

Другие вопросы по теме