#javascript #html #jquery #css #reactjs
#javascript #HTML #jquery #css #reactjs
Вопрос:
В исходном состоянии шрифты должны быть одного цвета, то есть черного или другого цвета, но когда кто-то наводит курсор на один p
текст, текст при наведении курсора должен изменить свой цвет, а остальные меняют его на штрихи, пока цвет текста прозрачный, и наоборот,
Когда я навожу курсор на текст, он должен вернуться к своему обычному цвету. Я хочу применить это в содержимом CMS, поэтому оно должно принимать динамические значения, если не динамические, но необходимые, по крайней мере, для изменения цветов и штрихов.
.style1 {
font-size: 30px;
position: absolute;
}
.Ancestors {
width: 500px;
height: 500px;
font-size: 30px;
text-align: center;
background: #00f;
color: rgba(0, 0, 0, 0);
-webkit-text-stroke-width: 1px;
-webkit-text-stroke-color: white;
}
.overAncestors {
width: 500px;
height: 500px;
font-size: 30px;
text-align: center;
color: black;
}
<table border="0" cellpadding="10" cellspacing="100" summary="">
<tr>
<td>
<span class="style1" valign="middle" onmouseover="this.className='overAncestors';" onmouseout="this.className='Ancestors';">vita</span>
</td>
<td>
<span class="style1" valign="middle" onmouseover="this.className='overAncestors';" onmouseout="this.className='Ancestors';">mege</span>
</td>
<td>
<span class="style1" valign="middle" onmouseover="this.className='overAncestors';" onmouseout="this.className='Ancestors';">Hita</span>
</td>
<td>
<span class="style1" valign="middle" onmouseover="this.className='overAncestors';" onmouseout="this.className='Ancestors';">nitml</span>
</td>
<td>
<span class="style1" valign="middle" onmouseover="this.className='overAncestors';" onmouseout="this.className='Ancestors';">rage</span>
</td>
</tr>
</table>
Ответ №1:
Основная проблема вашего кода заключается в том, что после Ancestors
добавления класса в <span>
теги он больше никогда не удаляется.
Вы можете использовать jquery hover()
для настройки span
классов всякий раз, когда происходит наведение курсора мыши и наведение курсора мыши.
В этом заключается идея алгоритма:
$('.style1').hover(function(){
//mouse over...
//Add class 'overAncestor' in the span hovered
//Add class 'Ancestor' in the other spans
}, function(){
//mouse out...
//Remove class 'Ancestor' and 'overAncestor' of all spans
});
Это фрагмент рабочего кода:
$(document).ready(function(){
$('.style1').hover(function(){
$('.style1').addClass('Ancestors');
$(this).addClass('overAncestors').removeClass('Ancestors');
}, function(){
$('.style1').removeClass('Ancestors').removeClass('overAncestors');
});
});
.style1 {
font-size: 30px;
position: absolute;
}
.Ancestors {
font-size: 30px;
text-align: center;
background: #00f;
color: rgba(0, 0, 0, 0);
-webkit-text-stroke-width: 1px;
-webkit-text-stroke-color: white;
}
.overAncestors {
font-size: 30px;
text-align: center;
color: black;
}
<table border="0" cellpadding="10" cellspacing="100" summary="">
<tr>
<td>
<span class="style1" valign="middle">vita</span>
</td>
<td>
<span class="style1" valign="middle">mege</span>
</td>
<td>
<span class="style1" valign="middle">Hita</span>
</td>
<td>
<span class="style1" valign="middle">nitml</span>
</td>
<td>
<span class="style1" valign="middle">rage</span>
</td>
</tr>
</table>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>