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 相关文章推荐
解决FireFox下[使用event很麻烦]的问题
Nov 26 Javascript
表单切换,用回车键替换Tab健(不支持IE)
Jul 20 Javascript
js中switch case循环实例代码
Dec 30 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
Nov 07 Javascript
jquery实现简单Tab切换菜单效果
Jul 17 Javascript
mongoose中利用populate处理嵌套的方法
May 26 Javascript
详解KOA2如何手写中间件(装饰器模式)
Oct 11 Javascript
vue中使用codemirror的实例详解
Nov 01 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
Dec 03 Javascript
jquery获取img的src值实例介绍
Jan 16 jQuery
JS严格模式原理与用法实例分析
Apr 27 Javascript
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
May 25 Vue.js
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 和 XML: 使用expat函数(一)
2006/10/09 PHP
让你的网站首页自动选择语言转跳
2006/12/06 PHP
PHP小技巧之函数重载
2014/06/02 PHP
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
2017/07/10 PHP
IE8提示Invalid procedure call or argument 异常的解决方法
2012/09/30 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
2014/05/08 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
jQuery中eq()方法用法实例
2015/01/05 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
vue项目页面嵌入代码块vue-prism-editor的实现
2020/10/30 Javascript
在Django中限制已登录用户的访问的方法
2015/07/23 Python
PyQt5组件读取参数的实例
2019/06/25 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
Python基于进程池实现多进程过程解析
2020/04/30 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
2020/01/06 HTML / CSS
css3实现简单的白云飘动背景特效
2020/10/28 HTML / CSS
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
宏碁西班牙官网:Acer西班牙
2021/01/08 全球购物
会员活动策划方案
2014/08/19 职场文书
大学生自荐信范文
2015/03/05 职场文书
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL