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 相关文章推荐
JQuery拖拽元素改变大小尺寸实现代码
Dec 10 Javascript
js实现字符串转日期格式的方法
May 20 Javascript
jQuery+Pdo编写login登陆界面
Aug 01 Javascript
JavaScript中boolean类型之三种情景实例代码
Nov 21 Javascript
javascript常用经典算法详解
Jan 11 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
May 04 jQuery
JavaScript多态与封装实例分析
Jul 27 Javascript
vue.js 实现评价五角星组件的实例代码
Aug 13 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
Aug 22 Javascript
微信小程序如何实现五星评价功能
Oct 15 Javascript
JS+CSS实现3D切割轮播图
Mar 21 Javascript
jQuery弹框插件使用方法详解
May 26 jQuery
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实现文件上传二法
2006/10/09 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
2012/10/06 PHP
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
PHP基础之输出缓冲区基本概念、原理分析
2019/06/19 PHP
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
Jquery中&quot;$(document).ready(function(){ })&quot;函数的使用详解
2013/12/30 Javascript
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
JavaScript中的console.profile()函数详细介绍
2014/12/29 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
Javascript的表单验证-提交表单
2016/03/18 Javascript
JS获取鼠标选中的文字
2016/08/10 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
2017/02/13 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
用python实现面向对像的ASP程序实例
2014/11/10 Python
Python读写zip压缩文件的方法
2018/08/29 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
2021/01/29 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
Expedia英国:全球最大的在线旅游公司
2017/09/07 全球购物
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
股份合作协议书
2014/04/12 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
领导干部考核评语
2015/01/04 职场文书
公证书格式
2015/01/23 职场文书
导游词欢迎词
2015/02/02 职场文书
2015年全国“爱牙日”宣传活动总结
2015/03/23 职场文书
2015员工年度考核评语
2015/03/25 职场文书
幼儿园小班工作总结2015
2015/04/25 职场文书
多人股份制合作协议书
2016/03/19 职场文书
Vue和Flask通信的实现
2021/05/19 Vue.js
vue使用Google Recaptcha验证的实现示例
2021/08/23 Vue.js
Android开发 使用文件储存的方式保存QQ密码
2022/04/24 Java/Android