Как реализовать событие для групп при наведении?
Всем привет. Подскажите, как реализовать событие.
Задача: В svg 10 групп path, при наведении(ховер) на каждую группу происходит некое событие, т.е. визуальная транформация формы группы (сделано через css - hover). Можно ли через js сделать зависимость групп друг от друга? Т.е., наводя на 2 группу - происходит ховер эффект для нее и для предыдущей. Аналогично для следующих: при наведении на 5 группу, сразу активируются и 1-4 и так по нарастающей. |
Вот такой кривой костыль.
<style>
div {display:inline-block;
height:100px;
width:100px;
border:1px solid grey;
transition-property: border-radius;
transition-duration: 2s;
}
.mover {
border:2px solid red;
border-radius:30px;
}
</style>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<script>
var elems = document.querySelectorAll('div');
[].forEach.call(elems, function(it) {
it.onmouseover = function() {
for(var i = 0;i < elems.length; i++) {
elems[i].classList.add('mover');
if(elems[i] == it) break;
}
}
it.onmouseleave = function() {
for(var i = 0;i < elems.length; i++) {
elems[i].classList.remove('mover');
}
}
});
</script>
|
|
Экстракт из звездочек
<style>
.cont:hover .rating ~ div{
opacity: 1
}
.cont:hover div:hover ~ div, .rating ~ div{
opacity: .2
}
.cont:hover {
opacity: 1
}
.cont {
opacity: .2
}
div {display:inline-block;
height:100px;
width:100px;
background:black;
}
</style>
<section class='cont'>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</section>
|
Dilettante_Pro,
вариант ...
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style>
.cont:hover div:hover ~ div, .cont div{
opacity: .2
}
.cont:hover div {
opacity: 1;
}
.cont {
display: flex;
}
div {
height:100px;
width:100px;
background:black;
}
</style>
</head>
<body>
<section class='cont'>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</section>
</body>
</html>
|
рони,
Да, так почище код |
| Часовой пояс GMT +3, время: 18:59. |