knockoutJs 的进度小球

<style type="text/css">
.l_circle{
	height: 10px;
	width: 10px;
	margin: 5px;
	display: inline-block;
	border-radius: 6px;
	-moz-border-radius:6px;
	-webkit-border-radius:6px;
}
.black{
	border: 1px black solid;
	background-color: black; 
	height: 12px;
	width: 12px;
	border-radius: 7px;
	-moz-border-radius:7px;
	-webkit-border-radius:7px;
}

.white{
	border:1px gray solid;
	background-color: white; 
}



.gray{
	border:1px gray solid;
	background-color: gray;
}
</style>


<div data-bind="starRating: points"></div>
<button data-bind="click:addPoint">Next</button>

$(function(){

    ko.bindingHandlers.starRating = {
    init: function(element, valueAccessor) {
        //$(element).addClass("");
        var array = valueAccessor();
       //alert(array()[0]);
        for (var i = 0; i < array()[1]; i++)
           $("<span>").addClass('l_circle').appendTo(element);
       
        // Handle mouse events on the stars
        $("span", element).each(function(index) {
         
        });            
    },
    update: function(element, valueAccessor) {
        // Give the first x stars the "chosen" class, where x <= rating
        var array = valueAccessor();
      
        $("span", element).each(function(index) {
            $(this).toggleClass("gray", index < array()[0]);
            $(this).toggleClass("white", index > array()[0]);
            $(this).toggleClass("black", index == array()[0]);
        });
    }    
};

function WebmailViewModel() {
     self.points = ko.observableArray();
     self.points([10,30]);
     self.addPoint = function(){
    	var _array = self.points();
    	_array[0]++;
    	self.points(_array);
    }
}
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="knockout-3.0.0.js"></script>


效果图:


你可能感兴趣的:(html,css3,KnockoutJS)