Загрузка прогресс бара со сменой цвета
Вложений: 1
сайт https://xn----7sbbb7bbx7alc6h.xn--p1ai/
раздел Проекты. Вместе с наведением на картинку загружается горизонтальный прогесс голубым (before) элемент. Как сделеать чтоб он синхронно так же с текстом спан менял цвет? например: случайно загружется фиолетовый в спан и горизонтальный ползунок загрузки тоже становится фиолетовым при наведении на картинку. логика - при навденении на картинку цвет меняется синхронно и у ползунка загрузки и у span вместе. Я пробую но че то не алё
let img = document.querySelectorAll('.portfolio__bl img');
let span = getComputedStyle(document.querySelectorAll('.portfolio__bl__img'), ':before');
let colors = ['#8d67c3', '#f376a2', '#4263a8', '#19b4ee'];
for(let i = 0; i < img.length; i++) {
span[i].dataset.current = 0;
img[i].addEventListener('mouseover', function () {
span[i].style.backgroundColor = colors[span[i].dataset.current];
span[i].dataset.current++;
if (span[i].dataset.current >= colors.length) {
span[i].dataset.current = 0;
}
});
img[i].addEventListener('mouseout', function () {
span[i].style.backgroundColor = '';
});
}
css .portfolio__bl__img { margin-bottom: 20px; overflow: hidden; position: relative; width: 400px; } .portfolio__bl__img::before { content: ''; position: absolute; background-color: #19b4ee; -webkit-transition: 0.25s all ease-in-out; -o-transition: 0.25s all ease-in-out; transition: 0.25s all ease-in-out; height: 7px; width: 0; bottom: 0; right: 0; left: 0; } .portfolio__bl__img:hover::before { width: 400px; } |
Sanny333,
сделали бы минимальный макет целиком, а не куски кода. например: [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Sanny333,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<base href="https://xn----7sbbb7bbx7alc6h.xn--p1ai/" />
<style type="text/css">
body {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
}
.portfolio__bl__img {
margin-bottom: 20px;
overflow: hidden;
position: relative;
width: 200px;
height: 250px;
}
.portfolio__bl__img::before {
content: '';
position: absolute;
background-color: #19b4ee;
-webkit-transition: 0.25s all ease-in-out;
-o-transition: 0.25s all ease-in-out;
transition: 0.25s all ease-in-out;
height: 7px;
width: 0;
bottom: 0;
right: 0;
left: 0;
}
.portfolio__bl:hover .portfolio__bl__img::before {
width: 200px;
background-color: var(--color, #19b4ee);
}
.portfolio__bl:hover .portfolio__bl__title>span {
background-color: var(--color, #19b4ee);
}
.portfolio__bl:hover a.portfolio__cont__in {
text-decoration: none;
color: rgba(255, 255, 255, 1);
}
.portfolio__bl a.portfolio__cont__in {
line-height: 1;
text-align: center;
}
.portfolio__bl {
width: 200px;
}
</style>
<script>
document.addEventListener("DOMContentLoaded", function() {
const colors = ['#8d67c3', '#f376a2', '#4263a8', '#19b4ee'],
len = colors.length;
document.querySelectorAll(".portfolio__bl").forEach((div, i) =>{
i = 0;
div.addEventListener("mouseenter", _ => div.style.setProperty("--color", colors[i++ % len]))
});
});
</script>
</head>
<body>
<div class="portfolio__bl wow slideInUp" style="visibility: visible; animation-name: slideInUp;">
<a href="#" class="portfolio__cont__in">
<div class="portfolio__bl__img">
<img class="lazy" data-src="/images/portfolio/sarmat2.jpg" alt="Продвмжение ЖК «Сармат»" src="/images/portfolio/sarmat2.jpg">
</div>
<div class="portfolio__bl__title">
<span data-current="0" style="">Комплексное продвижение застройщика с первого этапа проектирования</span>
</div>
</a>
</div>
<div class="portfolio__bl wow slideInUp" style="visibility: visible; animation-name: slideInUp;">
<a href="#" class="portfolio__cont__in">
<div class="portfolio__bl__img">
<img class="lazy" data-src="/images/portfolio/sarmat2.jpg" alt="Продвмжение ЖК «Сармат»" src="/images/portfolio/sarmat2.jpg">
</div>
<div class="portfolio__bl__title">
<span data-current="0" style="">Комплексное продвижение застройщика с первого этапа проектирования</span>
</div>
</a>
</div>
<div class="portfolio__bl wow slideInUp" style="visibility: visible; animation-name: slideInUp;">
<a href="#" class="portfolio__cont__in">
<div class="portfolio__bl__img">
<img class="lazy" data-src="/images/portfolio/sarmat2.jpg" alt="Продвмжение ЖК «Сармат»" src="/images/portfolio/sarmat2.jpg">
</div>
<div class="portfolio__bl__title">
<span data-current="0" style="">Комплексное продвижение застройщика с первого этапа проектирования</span>
</div>
</a>
</div>
<div class="portfolio__bl wow slideInUp" style="visibility: visible; animation-name: slideInUp;">
<a href="#" class="portfolio__cont__in">
<div class="portfolio__bl__img">
<img class="lazy" data-src="/images/portfolio/sarmat2.jpg" alt="Продвмжение ЖК «Сармат»" src="/images/portfolio/sarmat2.jpg">
</div>
<div class="portfolio__bl__title">
<span data-current="0" style="">Комплексное продвижение застройщика с первого этапа проектирования</span>
</div>
</a>
</div>
<div class="portfolio__bl wow slideInUp" style="visibility: visible; animation-name: slideInUp;">
<a href="#" class="portfolio__cont__in">
<div class="portfolio__bl__img">
<img class="lazy" data-src="/images/portfolio/sarmat2.jpg" alt="Продвмжение ЖК «Сармат»" src="/images/portfolio/sarmat2.jpg">
</div>
<div class="portfolio__bl__title">
<span data-current="0" style="">Комплексное продвижение застройщика с первого этапа проектирования</span>
</div>
</a>
</div>
<div class="portfolio__bl wow slideInUp" style="visibility: visible; animation-name: slideInUp;">
<a href="#" class="portfolio__cont__in">
<div class="portfolio__bl__img">
<img class="lazy" data-src="/images/portfolio/sarmat2.jpg" alt="Продвмжение ЖК «Сармат»" src="/images/portfolio/sarmat2.jpg">
</div>
<div class="portfolio__bl__title">
<span data-current="0" style="">Комплексное продвижение застройщика с первого этапа проектирования</span>
</div>
</a>
</div>
</body>
</html>
|
Поставил. Цвета должны каждый раз меняться при наведении на каждый portfolio__bl
А они просто разноцветные стали, логика - навожу на каждое отдельно фото и при каждом наведении меняется цвет (цвета заданные в цикле). |
Цитата:
|
Вложений: 1
Спасибо. И подскажите как у всех span сохранять color: #fff при наведении (цвет текста)
|
разобрался.
|
| Часовой пояс GMT +3, время: 02:56. |