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 相关文章推荐
JS 遮照层实现代码
Mar 31 Javascript
JavaScript中常见陷阱小结
Apr 27 Javascript
javascript 获取元素样式必杀技
May 04 Javascript
Javascript Object 对象学习笔记
Dec 17 Javascript
jQuery打字效果实现方法(附demo源码下载)
Dec 18 Javascript
jquery.Callbacks的实现详解
Nov 30 Javascript
jQuery EasyUI 页面加载等待及页面等待层
Feb 06 Javascript
JavaScript ES6中export、import与export default的用法和区别
Mar 14 Javascript
理解 Node.js 事件驱动机制的原理
Aug 16 Javascript
video.js 实现视频只能后退不能快进的思路详解
Aug 09 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
Apr 26 Javascript
vue数据响应式原理知识点总结
Feb 16 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 基于Yii框架中使用smarty模板的方法详解
2013/06/13 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
2014/11/18 PHP
php按单词截取字符串的方法
2015/04/07 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
php实现简单四则运算器
2020/11/29 PHP
jquery select下拉框操作的一些说明
2010/04/02 Javascript
基于JQuery的模拟苹果桌面Dock效果(稳定版)
2012/10/15 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
nodejs之请求路由概述
2014/07/05 NodeJs
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
2020/02/12 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
JavaScript对象字面量和构造函数原理与用法详解
2020/04/18 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
Python和GO语言实现的消息摘要算法示例
2015/03/10 Python
Python实现登录人人网并抓取新鲜事的方法
2015/05/11 Python
利用Python实现颜色色值转换的小工具
2016/10/27 Python
一个基于flask的web应用诞生(1)
2017/04/11 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
解决pycharm界面不能显示中文的问题
2018/05/23 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
如何在django中运行scrapy框架
2020/04/22 Python
python 元组和列表的区别
2020/12/30 Python
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
教师自我鉴定
2013/12/13 职场文书
个人担保书范文
2014/05/20 职场文书
社区反邪教工作方案
2014/06/16 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
Python常遇到的错误和异常
2021/11/02 Python