#javascript
Здравствуйте! Никак не получается решить проблему, знания JS очень скудные. Нужно заставить квадраты двигаться при наведении на текст над ним. Как заставить этот скрипт работать для всех элементов с одинаковым классом? Я пробовал через querySelectorAll, но максимум чего удалось добиться - это одновременное движение всех квадратов вниз, без обратного движения. Нужно, чтобы каждый работал по отдельности. CSS не подойдёт, в оригинале блоки расположены далеко друг от друга. Помогите пожалуйста, я уже всю голову себе сломал :( var dms = document.querySelector('.dm-short-news'); var dmi = document.querySelector('.dm-intro-news'); dms.onmouseover = function(e) { dmi.style.transform = 'translateY(50px)'; }; dms.onmouseout = function(e) { dmi.style.transform = ''; }; .dm-intro-news { width: 200px; height: 200px; background: #333333; transition: 0.5s; } .wr {display: inline-block}ТекстТекстТекст
Ответы
Ответ 1
При этой верстке можно и без JS обойтись .dm-intro-news { width: 200px; height: 200px; background: #333333; transition: 0.5s; } .wr {display: inline-block;transition:2s} .dm-short-news{display:inline-block} .dm-short-news:hover~.dm-intro-news{margin-top:20px}ТекстТекстТекстОтвет 2
Получилось решить проблему собственными силами. NodeList.prototype.forEach = Array.prototype.forEach; var dmns = document.querySelectorAll('.wr'); dmns.forEach(function(dmn) { dmn.querySelector('.dm-short-news').addEventListener('mouseenter', function() { dmn.querySelector('.dm-intro-news').style['transform'] = 'translateY(50px)'; }) dmn.querySelector('.dm-short-news').addEventListener('mouseout', function() { dmn.querySelector('.dm-intro-news').style['transform'] = 'translateY(0px)'; }) }); .dm-intro-news { width: 200px; height: 200px; background: #333333; transition: 0.5s; } .wr { display: inline-block }ТекстТекстТекст
Комментариев нет:
Отправить комментарий