Привет.
Появилась необходимость написания компонента на Java Script для определения рейтинга, так называемого star rating.
Подчеркну, что интересовала именно UI часть, ибо запись в БД и обработка рейтинга уже сделана на JAVA.
Сейчас на множестве блогов и новостных сайтов используется «звездный» подход для определения рейтинга комментария, статьи, новости. Удобно и приятно.
Обычно это 5 звездочек. При клике на одну из них выставляется соответственная оценка.
В сети нашел множество примеров для этого дела — на JQuery, с использованием AJAX и «обычного» JS.
Порывшись и на хабре, нашел ссылки на некоторые примеры:
http://www.fyneworks.com/jquery/star-rating/#tab-Testing
http://www.m3nt0r.de/devel/raterDemo/
Но большинство примеров показались мне усложненными. Хотелось же попроще и покороче. Пришлось заниматься велосипедизмом. Может это и неправильно в том плане, что таких примеров море в сети, но все же ой как захотелось минимализма.
И вот что из этого вышло:
1) маленький star rating с использованием JQuery, скриптовая часть занимает 57 строк;
2) CSS для затемнения звездочек при наведении мыши с помощью стандартных CSS фильтров;
3) соотвественно HTML часть для отображения всего этогобезобразия.
Прошу пинать и жаловать!
http://www.easy-share.com/1908532338/star.rar
Протестировано и работает в следующих браузерах:
FF 3.5.5; IE (7); IE8; IE6; Opera 10.00; Chrome 3.0.195.33; Safari 4 (Public Beta).
В IE 5.5 к сожалению, не работает ))
Жду ваших комментариев советов по минимизации.
А также очень интересуют отзывы тех, кто проще придумал рейтинг.
Появилась необходимость написания компонента на Java Script для определения рейтинга, так называемого star rating.
Подчеркну, что интересовала именно UI часть, ибо запись в БД и обработка рейтинга уже сделана на JAVA.
Сейчас на множестве блогов и новостных сайтов используется «звездный» подход для определения рейтинга комментария, статьи, новости. Удобно и приятно.
Обычно это 5 звездочек. При клике на одну из них выставляется соответственная оценка.
В сети нашел множество примеров для этого дела — на JQuery, с использованием AJAX и «обычного» JS.
Порывшись и на хабре, нашел ссылки на некоторые примеры:
http://www.fyneworks.com/jquery/star-rating/#tab-Testing
http://www.m3nt0r.de/devel/raterDemo/
Но большинство примеров показались мне усложненными. Хотелось же попроще и покороче. Пришлось заниматься велосипедизмом. Может это и неправильно в том плане, что таких примеров море в сети, но все же ой как захотелось минимализма.
И вот что из этого вышло:
1) маленький star rating с использованием JQuery, скриптовая часть занимает 57 строк;
2) CSS для затемнения звездочек при наведении мыши с помощью стандартных CSS фильтров;
3) соотвественно HTML часть для отображения всего этого
Прошу пинать и жаловать!
JS часть
$(document).ready(function() {
var starId = "[id*='star']";
var curRatingId = "[id*='curRating']";
var starredId = "[id*='starred']";
//mouse over handling
$(starId).bind(('mouseenter'), function(){
starIndex = $(this).attr('id').substr(4);
$('#curRating' + starIndex).show();
$('#rating').hide();
});
$(starId).bind(('mouseleave'), function(){
starIndex = $(this).attr('id').substr(4);
$('#curRating' + starIndex).hide();
$('#rating').show();
});
$(starredId).bind(('mouseenter'), function(){
starIndex = $(this).attr('id').substr(7);
$('#curRating' + starIndex).show();
$('#rating').hide();
});
$(starredId).bind(('mouseleave'), function(){
starIndex = $(this).attr('id').substr(7);
$('#curRating' + starIndex).hide();
$('#rating').show();
});
//opacity handling
$(starId).click(function() {
starIndex = $(this).attr('id').substr(4);
for (var i=1;i<=starIndex;i++){
$('#star' + i).hide();
$('#starred' + i).show();
$('#starred' + i).parent().removeAttr('class');
}
$('#rating').html(starIndex);
});
$(starredId).click(function() {
starredIndex = $(this).attr('id').substr(7);
for (var i=1;i<=starredIndex;i++){
$('#starred' + i).show();
$('#star' + i).hide();
}
for (var y=parseInt(starredIndex)+1;y<=5;y++){
$('#starred' + y).hide();
$('#star' + y).show();
}
$('#rating').html(starredIndex);
});
})
один архив с HTML и CSS
http://www.easy-share.com/1908532338/star.rar
совместимость
Протестировано и работает в следующих браузерах:
FF 3.5.5; IE (7); IE8; IE6; Opera 10.00; Chrome 3.0.195.33; Safari 4 (Public Beta).
В IE 5.5 к сожалению, не работает ))
Жду ваших комментариев советов по минимизации.
А также очень интересуют отзывы тех, кто проще придумал рейтинг.