Comments 63
Спасибо!
+2
Во втором примере, если выбрать дробную оценку, звездочки после отправки на сервер выставляются неверно. У меня Rockmelt(Chrome 14.0.835.202)
0
Упс, туплю. Рейтинг общий
+1
А что собственно не правильно? Было 2,75 + Ваша оценка 4,5 / 2 = 3,625
0
А правильно было бы (2,75*2+4,5)/3=3,33
0
Да нет! Тогда надо слаживать сумму всех проголосовавших и делить на общее число голосов.
0
2.75 — это среднее значение из двух голосов, верно?
0
верно
0
Тогда 2.75*2 и будет сумма всех проголосовавших.
Допустим, два человека проголосовали 2.7 и 2.8, тогда среднее — 2.75. Если третий голос 4.5, то среднее значение будет равно (2.7+2.8+4.5)/3=10/3=3.33.
Пример с другими числами: 10 голосов по 5, среднее — 5. А я ставлю 1. Результат: (5+1)/2=3, хотя гораздо честнее был бы рейтинг (5*10+1)/11=4,63.
Допустим, два человека проголосовали 2.7 и 2.8, тогда среднее — 2.75. Если третий голос 4.5, то среднее значение будет равно (2.7+2.8+4.5)/3=10/3=3.33.
Пример с другими числами: 10 голосов по 5, среднее — 5. А я ставлю 1. Результат: (5+1)/2=3, хотя гораздо честнее был бы рейтинг (5*10+1)/11=4,63.
0
Согласен. Я об этом и говорил. Только же обычно в базе данных хранится одно поле для общего рейтинга, и одно для общего количества проголосовавших. Как вариант, можно добавить в плагин, чтобы сервер возвращал общую оценку рейтинга, которою нужно поставить в виде звезд? А как Вы это будете считать, уже Ваша забота.
0
Нужно просто немного поменять формулу расчета нового рейтинга.
Старая: (val + новый_голос) / 2
Новая: (val * votes + новый_голос) / (votes+1)
Ответ с сервера имеет смысл, если посетители голосуют очень активно (то есть, пока я думаю над оценкой, многие голосуют и оценка может существенно поменяться). Как на Хабре оценки комментариев, например: при загрузке страницы было +10, через 5 минут я плюсую, а получается уже +30.
Старая: (val + новый_голос) / 2
Новая: (val * votes + новый_голос) / (votes+1)
Ответ с сервера имеет смысл, если посетители голосуют очень активно (то есть, пока я думаю над оценкой, многие голосуют и оценка может существенно поменяться). Как на Хабре оценки комментариев, например: при загрузке страницы было +10, через 5 минут я плюсую, а получается уже +30.
+1
Почему не используете последнюю версию jQuery?
+1
Минусик есть один в 3 примере, 5 баллов выбрать сложновато
0
Да, есть такая проблема. Дело в том, что нужно точно навести на границу изображения, чтобы получить оценку 5.
0
я бы добавил смещение на 0.2 голоса, тогда попасть в 5 будет проще, а мене 0.2 не проголосовать
0
Хм. Интересное решение. Наверное так и надо делать
0
UFO just landed and posted this here
Третий пример, конечно, малопрактичен. Если только добавить возможность «вылезать» за края звёзд, тогда будет удобно ставить минимальное и максимальное значение
0
Спорно.
Я бы использовал его так:
1. Для отображения результата рейтинга (4.31).
2. А для выбора оценки, целые звёзды, т.к. на самом деле пользователю в общем случае вообще не нужны эти дробные возможности голоса.
Я бы использовал его так:
1. Для отображения результата рейтинга (4.31).
2. А для выбора оценки, целые звёзды, т.к. на самом деле пользователю в общем случае вообще не нужны эти дробные возможности голоса.
0
Тогда третий тип формы вообще не нужен. Для этого нужно использовать второй пример. Там по пол звезды выбирается
0
Надо раундить до ближайшего. (0.5 или 0.25 на выбор).
-1
Очень симпатичный плагин, благодарствую. Тоже задумывался надо проблемой показа дробного числа звёзд, но реализовать руки не дошил
-2
а как 0 поставить?
+1
После того, как оценка выставлена и никуда нажать уже нельзя, подсказки «Ваш голос: значение» всё равно зависят от того, над какой звездой находится курсор. Может быть на этом этапе стоит менять её на фиксированное значение проголосовавшего?
+1
а чем ваш плагин лучше уже существующего — www.fyneworks.com/jquery/star-rating/#tab-Testing?
+1
Именно от этого плагина я и ушел. Почему, читайте начало поста.
0
в плагине star-rating можно делить звезды больше чем в половину (см. Test 4 — Half Stars and Split Stars в примерах по ссылке), звезду можно поделить на 4 части по 0.25 и округлять рейтинг с точностью до 1/4 звезды, можно сделать деление на большее кол-во частей, но в нем нет смысла — визуально это будет почти не заметно для пользователя.
+2
А не пробовали вариант, когда нужна только одна звезда. Она же верхняя?
Под которую просто подкладывается бэкграунд нужного цвета.
Даже используя Ваш спрайт, получается приемлемо.
А если еще чуть чуть поморочить себе голову с Альфа-каналом получается совсем хорошо.
И уже можно легко выбирать цвет звезд по своему желанию.
Под которую просто подкладывается бэкграунд нужного цвета.
Даже используя Ваш спрайт, получается приемлемо.
А если еще чуть чуть поморочить себе голову с Альфа-каналом получается совсем хорошо.
И уже можно легко выбирать цвет звезд по своему желанию.
0
не совсем понял про Альфа-канал. Можно подробнее?
0
Я имел ввиду, что шаблонная звезда рисуется белым, а декоративные элементы этой звезды(такие как середина и так далее) регулируется заданием разной степени прозрачности этого белого.
То есть в сущности весь шаблон — это прозрачная(в разных местах с разной интенсивностью) белая звезда с небольшими оттенками серого — для придания объемности.
Для наглядности — загрузите в графическом редакторе спрайт плагина, и подложите под него слой любого цвета. И обратите внимание на верхнюю звезду.
еще для большей наглядности подложите слой с цветом второй сверху звезды.
Сразу станет понятно каким элементам базового шаблона нужно добавить прозрачности а у каких убавить.
В результате, подкладывая ровный цвет мы получали звезды, схожие с теми, что в спрайте на позициях 2 и 3 сверху.
То есть в сущности весь шаблон — это прозрачная(в разных местах с разной интенсивностью) белая звезда с небольшими оттенками серого — для придания объемности.
Для наглядности — загрузите в графическом редакторе спрайт плагина, и подложите под него слой любого цвета. И обратите внимание на верхнюю звезду.
еще для большей наглядности подложите слой с цветом второй сверху звезды.
Сразу станет понятно каким элементам базового шаблона нужно добавить прозрачности а у каких убавить.
В результате, подкладывая ровный цвет мы получали звезды, схожие с теми, что в спрайте на позициях 2 и 3 сверху.
0
Вы не подумали о том, что фон страницы может быть не только белого цвета. Жалко что -webkit-mask есть только у вебкитов, иначе можно было в сочетании с ним реализовать ваш вариант.
0
Годный плагин, спасибо
В качестве предложения:
вместо
использовать
И оставлю ссылку еще на один подобный плагин
В качестве предложения:
вместо
<div class="rating">
<input type="hidden" class="val" value="2.75"/>
<input type="hidden" class="votes" value="2"/>
<input type="hidden" class="vote-id" value="voteID"/>
</div>
использовать
<div class="rating" data-val="2.75" data-votes="2" data-vodeid="voteID">
</div>
И оставлю ссылку еще на один подобный плагин
+4
Предпочитаю “амазоновские” звездочки:
0
подскажи где дописать что бы он текстом выводил рейтинг?
0
Что вы имеете ввиду? Что не пойму Вас. Вместо звезд был текст?
0
не вместо, а вместе :). ну на самом деле уже нашел — дописал текстик в declOfNum().
кстати попутно обнаружился косячек — даже если пришел ответ ERR то считалка меняет рейтинг пересчитывая средний как если бы было OK. хотя число голосов не наращивает и ответ об ошибке отображает.
кстати попутно обнаружился косячек — даже если пришел ответ ERR то считалка меняет рейтинг пересчитывая средний как если бы было OK. хотя число голосов не наращивает и ответ об ошибке отображает.
0
уточню: рисунок звездочек не меняется, а вот this.val меняется.
0
Если же на одной странице размещено несколько рейтингов и Вам нужно отправлять данные на сервер, то для идентификации рейтинга используется еще одно скрытое поле ввода с классом vote-id.
Значение данного поля будет передано на сервер вместе с результатом голосования. Таким образом вы сможете идентифицировать рейтинг и обновить значение нужного Вам рейтинга!
Пробовал применить ваши скрипты. Процитирован именно мой случай. Нужен рейтинг для оценки изображений в фотогалерее. Подскажите, пожалуйста, как быть — при множественном добавлении элементов
<div class="rating">
состояние звездочек после голосования не меняется. Получается, что каждому рейтингу нужно присваивать в div'e свой индивидуальный идентификатор. И еще описывать их поведение в виде $('#rating_1').rating и т.д. Тогда работает. А если у меня их на странице несколько десятков?0
У меня похожий вопрос. У меня блоговая структура на портале. Хочется выводить для каждой статьи её текущий рейтинг и с режимом readOnly:true. На странице выводится по 20 статей. Как лучше осуществить вывод? Не прописывать же для каждой $('#rating_N').rating({..........});, где N=1,2...,20
Есть какой-то более простой способ?
Есть какой-то более простой способ?
0
Так можно не по id вызывать плагин, а по классу:
должно сработать.
$('.rating').rating();
должно сработать.
0
0
А где хранятся данные?
0
Sign up to leave a comment.
Плагин на jQuery для вывода рейтинга в виде звезд