angularjs实现星星评分
angularjs实现星星评分
自定义指令
app.directive('myStars', function () {
return {
require : '?ngModel', // ?ngModel
restrict : 'E',
replace : true,
templateUrl : 'ui/templateUrl/myStars.html',
scope: {ngModel : '='},
link: function ($scope, element, attrs, ngModel) {
$scope.myStars = [1,2,3,4,5];
$scope.clickCnt = 1;
$scope.$watch('ngModel', function(newValue) {
var dataList = newValue;
console.log(dataList);
if(!dataList) return;
$scope.myStar = dataList;
$scope.clickCnt = dataList;
})
$scope.stars = function (myStar) {
$scope.clickCnt = myStar;
ngModel.$setViewValue(myStar);
}
$scope.mouseoverStar = function (myStar) {
$scope.hoverCnt = myStar;
}
$scope.mouseleaveStar = function (myStar) {
$scope.hoverCnt = 1;
}
}
}
});
里面的myStars.html
<div>
<meta charset="utf-8">
<ul class="my-stars-list">
<li class="my-stars-items" ng-mouseover="mouseoverStar(myStar)" ng-mouseleave="mouseleaveStar(maStar)" ng-click="stars(myStar)" ng-class="{myStarsSel: clickCnt > $index , myStarHover: hoverCnt > $index }" ng-repeat="myStar in myStars track by $index" title="{{ myStar }}星">{{ myStar }}</li>
</ul>
</div>
html中的使用如下:
<my-stars ng-model="drLevel"></my-stars>
css样式:
.my-stars-list{
height: 34px;
line-height: 34px;
display: -webkit-box;
display: -webkit-flex;
display: flex;
}
.my-stars-items{
cursor:pointer;
font-size:;
width: 34px;
line-height: 34px;
height:34px;
background-image: url(../images/star-off-big.png);
background-repeat: no-repeat;
background-position: center center;
}
.myStarHover.my-stars-items{
background-image: url(../images/star-on-big.png);
background-repeat: no-repeat;
background-position: center center;
}
.myStarsSel.my-stars-items{
background-image: url(../images/star-on-big.png);
background-repeat: no-repeat;
background-position: center center;
}
css中的图片:


完成的效果:

获取点击的是多少直接
var level = $scope.drLevel;
angularjs实现星星评分的更多相关文章
- HTML5商城开发三 jquery 星星评分插件
展示:
- js点亮星星评分并获取参数的js代码
点亮星星评分后,点击按钮,立即获得分数参数值,方便不想使用ajax传参的朋友 http://demo.jb51.net/js/2014/jsxxdf/demo2.html <!DOCTYPE h ...
- vue2.0:(九)、外卖App弹窗部分星星评分
本篇是星星评分部分,先上代码: 1.header.vue: <template> <transition name="fade"> & ...
- angularJs实现星星等级评分
星期六加班,教育后台也要有星级评分等级的需求,醉了……基本知道些怎么做,网上也随便找了找,没什么合意的,毕竟需求不同,也不能完全一样不是.学习之,改之╮(╯▽╰)╭ Directive angular ...
- Android星星评分控件RatingBar的使用
在Android的开发中,有一个叫做评分控件RatingBar,我们可以使用该控件做等级划分.评分等作用,星星形状显示,也可以半星级别,我们来看一下评分控件如何使用. 布局文件中定义控件以及属性,这里 ...
- 微信小程序——星星评分
先来个效果图镇楼: 实现原理: 1.循环需要评分的列表,判断它的分数 与 当前星星索引的大小: 2.点击,获取星星对应的分数,让星星高亮. 代码: star.wxml: <view class= ...
- ivew使用星星评分
这组件好像有问题,不知道是我们项目环境造成的还是什么,初始化半星不能正常显示,显示的全星. 1.template <div style="display:inline-block;ma ...
- vue 星星评分组件
显示评分和打分组件,可现实半颗星星效果 效果图: 参数名 类型 说明 score Number 分数 ,默认0,保留一位小数 disabled Boolean 是否只读,默认false,鼠标点击可以打 ...
- wex5中的星星评分
新建一个空白的.w文件,然后在页面上放5个img星星图片 重要的是图片路径不能是绝对路径,要用相对路径,不然js操作的时候会出bug 添加两个label标签(标签随你挑,在这我就用label) 你到时 ...
随机推荐
- 第05章—Swagger2打造在线接口文档
spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html 码云源码地址:https://gitee.com/jinxia ...
- quartz集群 定时任务 改成可配置
前面的博文中提到的quartz集群方式会有以下缺点: 1.假设配置了3个定时任务,job1,job2,job3,这时数据库里会有3条job相关的记录,如果下次上线要停掉一个定时任务job1,那即使定时 ...
- 转!!DNS域名解析使用的是TCP协议还是UDP协议?
原文地址:https://segmentfault.com/a/1190000006100959 DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP ...
- sql 锁类型与锁机制
SQL Server锁类型(SQL)收藏1. HOLDLOCK: 在该表上保持共享锁,直到整个事务结束,而不是在语句执行完立即释放所添加的锁. 2. NOLOCK:不添加共享锁和排它锁,当这个选项 ...
- 算法分析之——heap-sort堆排序
堆排序是一种原地排序算法,不使用额外的数组空间,运行时间为O(nlgn).本篇文章我们来介绍一下堆排序的实现过程. 要了解堆排序.我们首先来了解一个概念,全然二叉树. 堆是一种全然二叉树或者近似全然二 ...
- 001-ant design pro安装、目录结构、项目加载启动【原始、以及idea开发】
一.概述 1.1.脚手架概念 编程领域中的“脚手架(Scaffolding)”指的是能够快速搭建项目“骨架”的一类工具.例如大多数的React项目都有src,public,webpack配置文件等等, ...
- 005-shiro认证
一.shiro认证流程 二.入门程序 1.代码: 2.配置shiro-first.ini 通过此配置文件创建securityManager工厂. 需要修改eclipse的ini的编辑器: 配置数据: ...
- yii根据id查询一条数据
model层 public function selectone($ag_id=''){ return $this->findBySql("SELECT * FROM agency w ...
- js验证真实姓名
var regName = /^[\u4e00-\u9fa5]{2,4}$/; if (!regName.test(examinee.name)) { wx.showToast({ title: &q ...
- java return redirect
return “/user/new” 或 return “/user/edit” 如果new页面有下拉(举例)组件,在return之前如果没有准备select所需要的数据,则return到new的页面 ...