vue2.0实现前端星星评分功能组件
<template id="pingJia">
		<div>
		<ul>
			<li :class="{li1:1,bg1:index%2}" v-for="(value,index) in list"><span class="stu_span1">
				{{value.classs.major}}</span>
				<span class="stu_teacher">任课老师:{{value.classs.teacher}}</span>
				<div v-for="(item,index1) in value.classs.zh" class="stu_div" :id="index">
					<span class="stu_title">{{item.title}}</span>
				<span class="stu_bgstar" :id="index1">
					<span class="stu_bgstar1" :title="value.classs.title1"></span>
					<span class="stu_bgstar1" :title="value.classs.title1"></span>
					<span class="stu_bgstar1" :title="value.classs.title1"></span>
					<span class="stu_bgstar1" :title="value.classs.title1"></span>
					<span class="stu_bgstar1" :title="value.classs.title1"></span>
				</span>
				<span class="stu_bgstar2" @mousemove="pingjia($event)" :title="value.classs.title1" 
					 @click="pingjia1($event)" @mouseleave="pingjia2($event)"></span>
				<span>{{item.lastD}}</span>
				</div>
			</li>
			<button class="but1" @click="pingjia3($event)">评价</button>
		</ul>
		</div>
	</template>
<style>
.li1{
	width: 1200px;
	/*height: 330px;*/
	color: #f60;
	border: 1px solid #000000;
	font-size: 20px;
	line-height: 50px;
}
.bg1{
	background: #00A2D4;
}
.but1{
	width: 200px;
	height: 40px;
	font-size: 25px;
	float: right;
	margin: 5px 5px;
}
.stu_span1{
	float: left;
	margin: 0px 25px;
}
.stu_teacher{
	float: left;
}
.stu_div{
	float: left;
	width: 1000px;
	height: 50px;
}
.stu_title{
	float: left;
}
.stu_bgstar{
	width: 250px;
	height: 50px;
	float: left;
	margin-left:500px;
	/*background: url(../image/star.png);*/
	background-size: 50px 50px;
	
	}
.stu_bgstar1{
	width: 50px;
	height: 50px;
	float: left;
	background: url(../image/star.png);
	background-size: 50px 50px;
	margin-left: 0px;
	
}
.stu_bgstar2{
	width: 250px;
	height: 50px;
	float: left;
	/*background: url(../image/star.png);*/
	/*background-size: 50px 50px;*/
	margin-left: -250px;
	opacity: 0;
}
.stu_bgstar3{
	background: url(../image/star1.png);
	background-size: 50px 50px;
	
}
.stu_li_text{
	width: 95%;
	height: 100px;
	border: 1px solid #000000;
	resize: none;
}
</style>
<script>
export default{
data(){
return{
list:[{classs:{major:"数学",teacher:"郑...0",title1:0,
					zh:[{title:"课堂氛围",d:0,lastD:0},
					{title:"老师水平",d:0,lastD:0},{title:"课后布置",d:0,lastD:0}
					],text:"好"}},
					{classs:{major:"语文",teacher:"郑...1",title1:1,
					zh:[{title:"课堂氛围",d:0,lastD:0},
					{title:"老师水平",d:0,lastD:0},{title:"课后布置",d:0,lastD:0}
					],text:"好"}},
					{classs:{major:"英语",teacher:"郑...2",title1:2,
					zh:[{title:"课堂氛围",d:0,lastD:0},
					{title:"老师水平",d:0,lastD:0},{title:"课后布置",d:0,lastD:0}
					],text:"好"}},
					{classs:{major:"数学",teacher:"郑...3",title1:3,
					zh:[{title:"课堂氛围",d:0,lastD:0},
					{title:"老师水平",d:0,lastD:0},{title:"课后布置",d:0,lastD:0}
					],text:"好"}},
					{classs:{major:"数学",teacher:"郑...4",title1:4,
					zh:[{title:"课堂氛围",d:0,lastD:0},
					{title:"老师水平",d:0,lastD:0},{title:"课后布置",d:0,lastD:0}
					],text:"好"}},
					{classs:{major:"数学",teacher:"郑...5",title1:5,
					zh:[{title:"课堂氛围",d:0,lastD:0},
					{title:"老师水平",d:0,lastD:0},{title:"课后布置",d:0,lastD:0}	
					],text:"好"}}]
}
},
methods:{
pingjia($event){
					let wei = $event.target.parentNode.id;
					let b = $event.target.previousElementSibling.id;
					let a = parseInt($event.offsetX/250*100);
					let c = parseFloat($event.offsetX/50);
					this.list[wei].classs.zh[b].d = Math.ceil(c);
					this.list[wei].classs.title1 = a;
					for(let i = 0;i<5;i++){
						if(i<this.list[wei].classs.zh[b].d){
						$event.target.previousElementSibling.children[i].classList.add('stu_bgstar3');							
						}
						else{
						$event.target.previousElementSibling.children[i].classList.remove('stu_bgstar3');	
						}
}
					if(a==0){
						$event.target.previousElementSibling.children[0].classList.remove('stu_bgstar3');	
					}
				},
				pingjia1($event){
					let wei = $event.target.parentNode.id;
					let b = $event.target.previousElementSibling.id;
					this.list[wei].classs.zh[b].lastD = this.list[wei].classs.zh[b].d;
				},
				pingjia2($event){
					let wei = $event.target.parentNode.id;
					let b = $event.target.previousElementSibling.id;
					for(let i = 0;i<5;i++){
						if(i<this.list[wei].classs.zh[b].lastD){
						$event.target.previousElementSibling.children[i].classList.add('stu_bgstar3');							
						}
						else{
						$event.target.previousElementSibling.children[i].classList.remove('stu_bgstar3');	
						}
}
				},
				pingjia3($event){
					console.log(this.list[0].classs.text);
				}
}
}
</script>
vue2.0实现前端星星评分功能组件的更多相关文章
- vue2.0 实现富文本编辑器功能
		
前端富文本编译器使用总结: UEditor:百度前端的开源项目,功能强大,基于 jQuery,但已经没有再维护,而且限定了后端代码,修改起来比较费劲 bootstrap-wysiwyg:微型,易用,小 ...
 - jQuery实现星星评分功能
		
一.这是我做的调查问卷中的一个功能.(第三方MVC框架) 二.功能说明:1.用户点击星星,将值放到隐藏域中.2.用户可以重新点击星星修改回答. 前台JS代码: <script type=&quo ...
 - vue2.0  自定义  弹窗(MessageBox)组件
		
组件模板 src/components/MessageBox/index.vue <!-- 自定义 MessageBox 组件 --> <template> <div c ...
 - vue2.0 + vux (二)Footer组件
		
1.Footer组件 Footer.vue <!-- 底部 footer --> <template> <div> <tabbar> <!-- 综 ...
 - jquery--实现类似淘宝星星评分功能
		
- 不正之处,欢迎指正.^-^.好绕的话 贴码.html <body> <div id="div"> <ul> <li>☆< ...
 - vue2.0 + vux (一)Header 组件
		
1.main.js import Vue from 'vue' import FastClick from 'fastclick' import VueRouter from 'vue-router' ...
 - 基于vue2.0前端组件库element中 el-form表单 自定义验证填坑
		
eleme写的基于vue2.0的前端组件库: http://element.eleme.io 我在平时使用过程中,遇到的问题. 自定义表单验证出坑: 1: validate/resetFields 未 ...
 - vue2.0 父子组件之间的通信问题
		
概要: 父组件向子组件通信:props属性 子组件向父组件通信:$emit()触发事件,$on()监听事件 在 vue 1.0 中可以使用$dispatch 和 $broadcast来实现 向上派发事 ...
 - vue2.0 父子组件数据传递prop
		
vue的一个核心概念就是组件,而组件实例的作用域是孤立的,所以组件之间是不能直接引用其他组件的数据的.极端点举例来说,就是可以在同一个项目中,每一个组件内都可以定义相同名称的数据. data () { ...
 
随机推荐
- HTML 和 PHP 、MySQL 的交互
			
为什么要用到数据库? World Wide Web (WWW)不仅仅是一个提供信息的地方.如果你有什么东西,作一个网站,同样可以和全世界的人一起分享.但是,这并不是一件很容易的事.当网站越做越大时,你 ...
 - 部署Asp.net Core 项目发生502.5 或者500 没有其他提示信息
			
最近将公司原来.NetCore 1.6的项目升级到.net Core 2.0首先发生 502.5的错误,包括IIS日志,Windows应用程序日志都没有记录问题始终解决不了,首先看看官网给出的解决方案 ...
 - 关于Set对象(ES6)
			
今天初次接触ES6,发现确实挺神奇的,许多用以前方法去实现需要一大串代码的,用ES6竟然几句就搞定了. 这里我要说的是Set对象.Set对象是ES6中新增的类型,可以自动排除重复项,生成Set对象后, ...
 - NYOJ 1248 海岛争霸(Dijkstra变形——最短路径最大权值)
			
题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=1248 描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比 ...
 - 用于 C♯ 图像识别的轮廓分析技术
			
用于 C♯ 图像识别的轮廓分析技术 供稿:Conmajia 标题:Contour Analysis for Image Recognition in C# 作者:Pavel Torgashov 此中文 ...
 - sql 中文转拼音首字母
			
http://blog.csdn.net/zhanglong_longlong/article/details/46772571 --可支持大字符集20000个汉字! create function ...
 - echarts使用总结
			
项目中需要实现数据可视化,在前辈的推荐之下,最终选取了echarts来实现,在此关于echarts的使用进行总结,最终代码分享至我的github. 关于echarts echarts是百度推出的,使用 ...
 - jQuery --- 实现 checkbox 样式的单选框
			
早就想写点博客了 一直懒着动 最近发现一些写过的东西都不记得了,下决心把自己平时遇到的问题.得到的经验记录下来,希望能大家一点帮助 这是之前写的一个模态框 要求单选 但是 要求radio的默认样式 ...
 - P1144 最短路计数
			
P1144 最短路计数 题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 输入第一行包含2个正整数N,M,为图的顶 ...
 - 谈Ajax的Get和Post的区别
			
Get方式: 用get方式可传送简单数据,但大小一般限制在1KB下,数据追加到url中发送(http的header传送),也就是说,浏览器将各个表单字段元素及其数据按照URL参数的格式附加在请求行 ...