Hou*_*man 24 django twitter-bootstrap font-awesome
Fontawesome有一个很棒的星级css扩展,看起来非常棒.
但是,点击任何span元素都不会真正做任何事情.我不知道如何将其与我的数据库模型联系起来.假设我在Django中有一个0-5的整数字段.如何根据模板中用户的选择设置值?
<span class="rating">
<span class="star"></span>
<span class="star"></span>
<span class="star"></span>
<span class="star"></span>
<span class="star"></span>
</span>
Run Code Online (Sandbox Code Playgroud)
Hou*_*man 19
我最后使用了Raty.如果您正在寻找一个简单而干净的解决方案,我发现这是最简单的.
$('#star').raty('score'); // Get the current score.
Run Code Online (Sandbox Code Playgroud)
小智 16
我看过这篇文章,但不想使用超过我需要的插件.所以,我把它放在一起,用于我正在进行的一个小项目.您不需要bootstrap来使用它.
HTML
<div class="star-rating">
<span class="fa fa-star-o" data-rating="1"></span>
<span class="fa fa-star-o" data-rating="2"></span>
<span class="fa fa-star-o" data-rating="3"></span>
<span class="fa fa-star-o" data-rating="4"></span>
<span class="fa fa-star-o" data-rating="5"></span>
<input type="hidden" name="whatever" class="rating-value" value="3">
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.star-rating {
line-height:32px;
font-size:1.25em;
cursor: pointer;
}
Run Code Online (Sandbox Code Playgroud)
CoffeeScript的
$star_rating = $('.star-rating .fa')
SetRatingStar = ->
$star_rating.each ->
if parseInt($star_rating.siblings('input.rating-value').val()) >= parseInt($(this).data('rating'))
$(this).removeClass('fa-star-o').addClass('fa-star')
else
$(this).removeClass('fa-star').addClass('fa-star-o')
$star_rating.on 'click', ->
$star_rating.siblings('input.rating-value').val $(this).data('rating')
SetRatingStar()
SetRatingStar()
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
var $star_rating = $('.star-rating .fa');
var SetRatingStar = function() {
return $star_rating.each(function() {
if (parseInt($star_rating.siblings('input.rating-value').val()) >= parseInt($(this).data('rating'))) {
return $(this).removeClass('fa-star-o').addClass('fa-star');
} else {
return $(this).removeClass('fa-star').addClass('fa-star-o');
}
});
};
$star_rating.on('click', function() {
$star_rating.siblings('input.rating-value').val($(this).data('rating'));
return SetRatingStar();
});
SetRatingStar();
Run Code Online (Sandbox Code Playgroud)
我没有看到只使用bootstrap glyphicons和jquery的简单答案.我相信其他人都来这里寻找快速复制和粘贴所以我只写了一个.
$(function(){
$('.rating-select .btn').on('mouseover', function(){
$(this).removeClass('btn-default').addClass('btn-warning');
$(this).prevAll().removeClass('btn-default').addClass('btn-warning');
$(this).nextAll().removeClass('btn-warning').addClass('btn-default');
});
$('.rating-select').on('mouseleave', function(){
active = $(this).parent().find('.selected');
if(active.length) {
active.removeClass('btn-default').addClass('btn-warning');
active.prevAll().removeClass('btn-default').addClass('btn-warning');
active.nextAll().removeClass('btn-warning').addClass('btn-default');
} else {
$(this).find('.btn').removeClass('btn-warning').addClass('btn-default');
}
});
$('.rating-select .btn').click(function(){
if($(this).hasClass('selected')) {
$('.rating-select .selected').removeClass('selected');
} else {
$('.rating-select .selected').removeClass('selected');
$(this).addClass('selected');
}
});
});
Run Code Online (Sandbox Code Playgroud)
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="rating-select">
<div class="btn btn-default btn-sm"><span class="glyphicon glyphicon-star-empty"></span></div>
<div class="btn btn-default btn-sm"><span class="glyphicon glyphicon-star-empty"></span></div>
<div class="btn btn-default btn-sm"><span class="glyphicon glyphicon-star-empty"></span></div>
<div class="btn btn-default btn-sm"><span class="glyphicon glyphicon-star-empty"></span></div>
<div class="btn btn-default btn-sm"><span class="glyphicon glyphicon-star-empty"></span></div>
</div>
Run Code Online (Sandbox Code Playgroud)
要使用django模板从DB设置默认值,请为每个星形执行以下操作:
<div class="btn btn-{% if rate.value > 0 %}warning{% else %}default{% endif %}{% if rate.value == 1 %} selected{% endif %} btn-sm"><span class="glyphicon glyphicon-star-empty"></span></div>
Run Code Online (Sandbox Code Playgroud)
一个更有趣的方法.纯CSS,保持选定的值,使用单选按钮(酷!)和FA字体
摘自这篇文章
HTML
<div class="star-rating">
<div class="star-rating__wrap">
<input class="star-rating__input" id="star-rating-5" type="radio" name="rating" value="5">
<label class="star-rating__ico fa fa-star-o fa-lg" for="star-rating-5" title="5 out of 5 stars"></label>
<input class="star-rating__input" id="star-rating-4" type="radio" name="rating" value="4">
<label class="star-rating__ico fa fa-star-o fa-lg" for="star-rating-4" title="4 out of 5 stars"></label>
<input class="star-rating__input" id="star-rating-3" type="radio" name="rating" value="3">
<label class="star-rating__ico fa fa-star-o fa-lg" for="star-rating-3" title="3 out of 5 stars"></label>
<input class="star-rating__input" id="star-rating-2" type="radio" name="rating" value="2">
<label class="star-rating__ico fa fa-star-o fa-lg" for="star-rating-2" title="2 out of 5 stars"></label>
<input class="star-rating__input" id="star-rating-1" type="radio" name="rating" value="1">
<label class="star-rating__ico fa fa-star-o fa-lg" for="star-rating-1" title="1 out of 5 stars"></label>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.star-rating{
font-size: 0;
}
.star-rating__wrap{
display: inline-block;
font-size: 1rem;
}
.star-rating__wrap:after{
content: "";
display: table;
clear: both;
}
.star-rating__ico{
float: right;
padding-left: 2px;
cursor: pointer;
color: #FFB300;
}
.star-rating__ico:last-child{
padding-left: 0;
}
.star-rating__input{
display: none;
}
.star-rating__ico:hover:before,
.star-rating__ico:hover ~ .star-rating__ico:before,
.star-rating__input:checked ~ .star-rating__ico:before
{
content: "\f005";
}
Run Code Online (Sandbox Code Playgroud)
您可以查看我使用各种可配置选项创建的Bootstrap JQuery Star评级插件(场景的演示包含在其中).它尽可能使用CSS3,但也使用JQuery(如果你没关系).您可以通过插件方法获得星级评分或轻松设置.
使用Bootstrap 3.x glyphicons,包括RTL支持,支持插件事件和方法.该插件还支持任何分数填充的恒星.您可以在这里参考来源.
如果您热衷于使用Font-Awesome,可以在项目中覆盖插件CSS以使用Font-Awesome而不是Bootstrap Glyphicons.
归档时间: |
|
查看次数: |
73470 次 |
最近记录: |