Замена Javascript

#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 взлом последнего метода перехода