JavaScript实现星级评价效果


Posted in Javascript onMay 17, 2019

本文实例为大家分享了js实现星级评价效果展示的具体代码,供大家参考,具体内容如下

背景图片实现

图片是width:36px; height:25px;

背景是白色,中间一个空的五角星,空的边缘有一像素的边框;(不然就看不到了);

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>星级评价(可半星)</title>
 <style>
  .xin{height: 25px; background: url(images/x.png); position: relative; display: inline-block;}
  .xin span{display: block; height: 25px; background: #f60; position: absolute; left: 0; top: 0;z-index: -1;transition: 0.2s;}
  .xin ul{position: absolute; top: 0; left: 0; height: 25px; margin: 0; padding: 0; list-style: none;}
  .xin ul li{float: left; width: 18px; height: 25px;}
  .fensu{display: inline-block;}
 </style>
</head>
<body>
 <input type="hidden" title="10" value="3.5">
 <input type="hidden" title="5" value="1.5">
 <script>
  var input=document.querySelectorAll("input[type=hidden]");
  input.forEach(function(_input){
   var Div=document.createElement("div");
   Div.className="xin";
   Div.style.width=18*(_input.title || 5)*2 + "px";
   _input.parentNode.insertBefore(Div,_input);
   var span=document.createElement("span");
   span.style.width=(_input.value)*36+"px";
   var p=document.createElement("p");
   p.innerHTML=_input.value+"分";
   p.className="fensu";
   Div.parentNode.insertBefore(p,Div);
   Div.parentNode.insertBefore(Div,p);
   Div.appendChild(span);
   var ul=document.createElement("ul");
   Div.appendChild(ul);
   for(var i=0;i<(_input.title || 5)*2;i++){
    var li=document.createElement("li");
    li.title=(i+1)/2+"分";
    ul.appendChild(li);
   }
   var LI=ul.querySelectorAll("li");
   LI.forEach(function(_li,x){
    _li.onclick=function(){
     _input.value=(x+1)/2;
     span.style.width=18*(x+1)+"px";
     p.innerHTML=_input.value+"分";
    }
    _li.onmouseover=function(){
     span.style.width=18*(x+1)+"px";
    }
    _li.onmouseout=function(){
     span.style.width=(_input.value)*36+"px";
    }
   })
   var br=document.createElement("br");
   p.parentNode.insertBefore(br,p);
   p.parentNode.insertBefore(p,br);
  })
 </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript变量作用域详解
Dec 06 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
Jun 06 Javascript
可编辑下拉框的2种实现方式
Jun 13 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
Dec 02 Javascript
javascript每日必学之封装
Feb 23 Javascript
javascript中sort排序实例详解
Jul 24 Javascript
js中创建对象的几种方式
Feb 05 Javascript
Vue2递归组件实现树形菜单
Apr 10 Javascript
微信小程序 input输入及动态设置按钮的实现
Oct 27 Javascript
JavaScript时间戳与时间日期间相互转换
Dec 11 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
Jul 05 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
Aug 26 Javascript
JavaScript实现美化滑块效果
May 17 #Javascript
vue中使用mxgraph的方法实例代码详解
May 17 #Javascript
vue中引入mxGraph的步骤详解
May 17 #Javascript
微信小程序云开发 搭建一个管理小程序
May 17 #Javascript
微信小程序云开发实现增删改查功能
May 17 #Javascript
微信小程序云开发实现云数据库读写权限
May 17 #Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
May 17 #Javascript
You might like
奇怪的PHP引用效率问题分析
2012/03/23 PHP
thinkphp 多表 事务详解
2013/06/17 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
WordPress网站性能优化指南
2015/11/18 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
JS焦点图,JS 多个页面放多个焦点图的实例
2016/12/08 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
javascript回调函数的概念理解与用法分析
2017/05/27 Javascript
vue2.X组件学习心得(新手必看篇)
2017/07/05 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
nodejs基础之多进程实例详解
2018/12/27 NodeJs
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
JQuery绑定事件四种实现方法解析
2020/12/02 jQuery
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
python进阶教程之词典、字典、dict
2014/08/29 Python
python计算一个序列的平均值的方法
2015/07/11 Python
浅谈Python中函数的参数传递
2016/06/21 Python
Python使用剪切板的方法
2017/06/06 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
python pandas 时间日期的处理实现
2019/07/30 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
2019/12/25 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
彪马日本官网:PUMA日本
2019/01/31 全球购物
幼师专业毕业生自荐信
2013/09/29 职场文书
教师作风整顿个人剖析材料
2014/10/10 职场文书
Python django中如何使用restful框架
2021/06/23 Python