Как при наведении на родительский элемент "вкл" стили :hover::before для дочернего?
Добрый день!
Ситуация такая: есть ссылка <a ..> в ней <span> При наведении на <a ..> у меня срабатывают нужные стили (:hover). Мне нужно, чтобы при наведении на <a ..> срабатывали span:hover::before, span:hover стили. Такой себе event propagation только наоборот - навожу курсор на родительский элемент, и получаю событие и на дочернем. Пробовала: $('a').on('mouseenter', function(e) { $('span').trigger(e); }) Ошибка: Uncaught RangeError: Maximum call stack size exceeded |
Так?
<style>
a {
display: inline-block;
padding: 10px 20px;
border: 2px solid red;
font: 1em/1.2 Tahoma, sans-serif;
}
a:hover > span:before {
content: 'bla-bla '
}
a:hover > span {
color: red;
}
</style>
<a href="">
<span>Link</span>
</a>
|
Нет, код пишу ниже.
- Смотри, когда я навожу на span (кружок), то верхний бордер дива меняет цвет и соответственно происходит стилизация кружочка (своеобразная анимация; всплытие события). - Когда навожу на див, то меняется только цвет верхнего бордера. А мне нужно,чтобы и анимация кружочка происходила. Вот и думаю как затопить hover. Можно при событии hover добавлять класс .hover к span, но это не сработает с псевдоэлементом. А просто передать событие на другой элемент при mouseenter на диве, почему-то не срабатывает. Может есть вообще другой подход к этой задаче... Код:
<style> |
Gera Herbst,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>JS Bin</title>
<style>
.heading {
margin-top: 6px;
background: #FFF;
border-top: 2px solid #EEE;
border-bottom: 2px solid #EEE;
}
.heading a {
display: block;
color: #853E29;
padding: 20px;
}
.heading a span {
display: block;
float: left;
background-color: #E14817;
border-radius: 50%;
padding: 7px 14px;
margin-top: -7px;
margin-right: 10px;
-webkit-transition: color 0.3s;
transition: color 0.3s;
position: relative;
z-index: 1;
-webkit-backface-visibility: hidden;
-moz-osx-font-smoothing: grayscale;
}
.heading a span:focus {
outline: none;
}
.heading a span::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: inherit;
z-index: -1;
box-shadow: inset 0 0 0 35px #f9e1c4;
-webkit-transform: scale3d(0.9, 0.9, 1);
transform: scale3d(1.05, 1.05, 1);
-webkit-transition: box-shadow 0.3s, -webkit-transform 0.3;
transition: box-shadow 0.3s, transform 0.3s;
}
.heading:hover {
border-top: 2px solid #E14817;
}
.heading:hover span {
color: #fff;
}
.heading a span:hover {
color: #FFF;
}
.heading:hover span:before {
box-shadow: inset 0 0 0 1px #E14817;
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1);
}
.heading a span:hover::before {
box-shadow: inset 0 0 0 1px #E14817;
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1);
}
</style>
</head>
<body>
<div class="heading">
<a role="button">
<span>2</span>Configure product
</a>
</div>
</body>
</html>
|
Спасибо!
|
| Часовой пояс GMT +3, время: 19:14. |