С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
2 / 2 / 1
Регистрация: 19.07.2016
Сообщений: 21

Замена backgroundImage в CSS через Javascript

27.07.2016, 08:36. Показов 2166. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помочь, не могу разобраться

Задача: при клике на блоки preview1, preview2, preview3 (background-image прописан в CSS), передавать путь картинки в mainview-image (картинка в HTML разметке) и соответственно менять саму картинку



HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
     <div class="preview-box">
        <div id="preview1" onclick="change_preview1()">
        </div>
 
        <div id="preview2" onclick="change_preview2()">
        </div>
 
        <div id="preview3" onclick="change_preview3()">
        </a>
     </div>
 
     <div id="mainview">
        <img src="images/red.jpg" alt="image" id="mainview-image">
     </div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#preview1 {
    background-image: url("images/red.jpg");
}
 
#preview2 {
    background-image: url("images/blue.jpg");
}
 
#preview3 {
    background-image: url("images/green.jpg");
}
 
#mainview {
    width: 200px;
    height: 300px;
}
JavaScript
1
2
3
4
5
6
7
8
9
10
11
function change_preview1 () { 
   /* Получаю url картинки из CSS preview1 */
   var element = document.getElementById('preview1').style.backgroundImage; 
   /* Смотрю передался ли путь в переменную */
   alert(element); 
   var mainview-image = document.getElementById('mainview-image'); 
   /* Подставляю полученный url из preview1 в путь картинки mainview-image */
   mainview-image.src = element;                                                  
}
 
... Повторяем код для 2 и 3 картинки
Написал - не работает, начал искать и возникли вопросы:
1) Почему alert не выдает путь?
2) Можно ли избежать дублирования кода для 2 и 3 картинки? Как дать понять скрипту откуда был клик?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.07.2016, 08:36
Ответы с готовыми решениями:

Сжатие javascript/css через bat
Здравствуйте. Есть библиотека YUI Compressor Как через бат заставить сжать все файлы js/css в папке/подпапках через данную библиотеку? ...

Как подключить два css через javascript
Всем привет. Господа, подскажите, пожалуйста, как подключить два css через javascript. В зависимости от времени суток на компьютере...

Замена слов через CSS
Здравствуйте! Подскажите, возможно ли через CSS провести русификацию сайта mishastik.com? То есть заменить слова &quot;Written by&quot; и...

2
2 / 2 / 1
Регистрация: 19.07.2016
Сообщений: 21
27.07.2016, 09:41  [ТС]
Так как путь картинок известен и его можно не получать из свойств CSS,
а сразу прописать вручную, попробовал сделать вот так:

HTML5
1
2
3
4
5
6
<div id="preview1" onclick="document.getElementById('mainview-image').src='images/red.jpg'">
</div>
<div id="preview2" onclick="document.getElementById('mainview-image').src='images/blue.jpg'">
</div>
<div id="preview3" onclick="document.getElementById('mainview-image').src='images/green.jpg'">
</div>
Вроде заработало, но большая картинка mainview-image меняется только на долю секунды и потом обратно возвращает картинку по умолчанию...

Прощу помощи
0
Эксперт JSЭксперт HTML/CSS
 Аватар для mrtoxas
3827 / 2677 / 1521
Регистрация: 12.07.2015
Сообщений: 6,672
Записей в блоге: 4
27.07.2016, 13:18
CSS
1
2
3
4
5
6
7
.preview {
  width: 100px;
  height: 100px;
  border: 1px solid black;
  display: inline-block;
  font-size: 32px;    
}
HTML5
1
2
3
<div class="preview" onclick="changeBack(this, 'green')"></div>
<div class="preview" onclick="changeBack(this, 'red')"></div>
<div class="preview" onclick="changeBack(this, 'blue')"></div>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function changeBack(div, color) {
  switch (color) {
    case 'green':
      color = 'images/green.jpg';
      break
    case 'red':
      color = 'images/red.jpg';
      break
    case 'blue':
      color = 'images/blue.jpg';
      break
  }
div.style.backgroundImage = 'url(' + color + ')';
}
Результат
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.07.2016, 13:18
Помогаю со студенческими работами здесь

Как подключить файл стилей CSS через JavaScript
вызов js скрита находится в теле документа. как мне в таком случае подключить CSS файлик &lt;link rel=&quot;stylesheet&quot;...

Переключение стилей при нажатии через css, без javascript
Необходимо реализовать смену стилей при выборе элемента input type=&quot;radio&quot; c id=&quot;list&quot; Есть html-ка там в блоке article много однотипных...

Установка BackgroundImage панели через OpenFileDialog
Мне нужно что бы открытой картинкой в панели заливался фон. Метод открытия изображения public Image ImageOpen(string filename) ...

Для PictureBox изменять BackGroundImage через фиксированый интервал времени
парни помогите сделать задание написать на С#. 11. Для компонента PictureBox изменять: – BackGroundImage через фиксированый интервал...

CSS, не работает ссылка на .css документ через java script
&lt;head&gt; &lt;title&gt;Сайта&lt;/title&gt; &lt;script language=JavaScript&gt; if (screen.width &lt; '810') {document.write...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru