#javascript #jquery #html #css
#javascript #jquery #HTML #css
Вопрос:
Хорошо, прежде всего, я действительно сожалею о своем последнем сообщении, но мне действительно нужна помощь, здесь я добавлю более четкий код о том, чего я действительно хочу. Я не силен в javascript, поэтому надеюсь, что вы, пожалуйста, поможете мне.
<span class="rating ipsType_smaller">
<a href="" id="topic_rate_1" title="Rate topic 1 star">
<i class="fa fa-star-o fa-lg rate_img"></i>
</a>
<a href="" id="topic_rate_2" title="Rate topic 2 stars">
<i class="fa fa-star-o fa-lg rate_img"></i>
</a>
<a href="" id="topic_rate_3" title="Rate topic 3 stars">
<i class="fa fa-star-o fa-lg rate_img"></i>
</a>
<a href="" id="topic_rate_4" title="Rate topic 4 stars">
<i class="fa fa-star-o fa-lg rate_img"></i>
</a>
<a href="" id="topic_rate_5" title="Rate topic 5 stars">
<i class="fa fa-star-o fa-lg rate_img"></i>
</a>
</span>
итак, вот html. IPB делает все, но я хочу внести небольшую правку с помощью javascript. и никаких проблем, если это изменит html в css, оба они одинаковы, так что вот о чем я думаю:
Когда я наведу курсор на звезду 2, звезда 1 и звезда 2 будут иметь один и тот же новый класс или они изменятся на что-то новое, когда я наведу курсор на звезду 4, звезда 4 и все звезды перед звездой 4 будут иметь новый тот же класс или они изменятся на ту же новую вещь
и когда я нажимаю на звездочку 4 или любую другую звездочку 2, к этому классу будет добавлен новый класс.
можно ли это сделать с помощью javascript?
Комментарии:
1. Ответ — да, это можно сделать с помощью javascript.
2. Более того, это можно сделать даже с помощью чистого CSS.
3. Вы получите меньше ехидных ответов, чем приведенные выше, если попытаетесь написать какой-то код, застрянете и зададите конкретный вопрос о том, где вы застряли, чем если вы поступите так, как делаете, и попросите «эй, пожалуйста, напишите для меня какой-нибудь код»
4. Вы можете начать отсюда: api.jquery.com/category/selectors и api.jquery.com/addclass и api.jquery.com/click способ jquery самый простой.
Ответ №1:
Конечно, вы можете сделать это на JS, но также и только на CSS.
Предполагая, что вы хотите изменить фон,
.rating:hover > a {
background: red; /* Set it for all elements */
}
.rating > a:hover ~ a {
background: transparent; /* Unset it for following elements */
}
Комментарии:
1. извини, чувак, я пытаюсь создать что-то новое. я пытаюсь использовать приемы перехода для css и активный метод, поэтому, когда я нажимаю на звездочку 3, все начальные символы 1, 2 и 3 загораются или будут иметь другой фон, а два других прозрачных. но я не смог заставить это работать. итак, есть ли у вас какое-либо решение или есть какой-либо противоположный метод, а не этот «a: hover ~ a», чтобы все элементы перед этим элементом не находились после этого элемента?
2. @user3802001 Можешь опубликовать скрипку?
3. я не могу, поскольку я использую шрифт awesome, и он не может отображаться в fiddle, это мой css для моего кода, который я написал: .rating: hover > a i::before {content: » f005″; color: #053B81; } .rating > a: hover ~ a i :: before {content: » f006″; color: #3A7DB9; } и это метод, который я пытаюсь использовать: tympanus.net/codrops/2012/12/17/css-click-events взлом последнего метода перехода