Javascript模仿淘宝信用评价实例(附源码)


Posted in Javascript onNovember 26, 2015

本文实例讲述了Javascript模仿淘宝信用评价实现方法。分享给大家供大家参考,具体如下:

老板昨天开会说:要给公司的购物平台增加信用评价功能,用户体验参考淘宝。

于是今天研究了一下,用jQuery模似一个类似的效果:

Javascript模仿淘宝信用评价实例(附源码)

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title>模仿淘宝的信用评价</title>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript">
  var rateMessage = {
   'rate-1': {
    'rate-1': '差得太离谱,与卖家描述的严重不符,非常不满',
    'rate-2': '部分有破损,与卖家描述的不符,不满意',
    'rate-3': '质量一般,没有卖家描述的那么好',
    'rate-4': '质量不错,与卖家描述的基本一致,还是挺满意的',
    'rate-5': '质量非常好,与卖家描述的完全一致,非常满意'
   },
   'rate-2': {
    'rate-1': '卖家态度很差,还骂人、说脏话,简直不把顾客当回事',
    'rate-2': '卖家有点不耐烦,承诺的服务也兑现不了',
    'rate-3': '卖家回复问题很慢,态度一般,谈不上沟通顺畅',
    'rate-4': '卖家服务挺好的,沟通挺顺畅的,总体满意',
    'rate-5': '卖家的服务太棒了,考虑非常周到,完全超出期望值'
   },
   'rate-3': {
    'rate-1': '再三提醒下,卖家才发货,耽误我的时间,包装也很马虎',
    'rate-2': '卖家发货有点慢的,催了几次终于发货了',
    'rate-3': '卖家发货速度一般,提醒后才发货的',
    'rate-4': '卖家发货挺及时的,运费收取很合理',
    'rate-5': '卖家发货速度非常快,包装非常仔细、严实'
   },
   'rate-4': {
    'rate-1': '物流公司态度非常差,送货慢,外包装有破损',
    'rate-2': '物流公司服务态度挺差,运送速度太慢',
    'rate-3': '物流公司服务态度一般,运送速度一般',
    'rate-4': '物流公司态度还好吧,送货速度挺快的',
    'rate-5': '物流公司服务态度很好,运送速度很快'
   }
  };
  $().ready(function () {
   var starInit = $("#starInit");
   var ulStars = $("#ulStars");
   var txtStar = $("#txtStar");
   var tip = $("#tip");
   var rate_1_result = $("#rate_1_result");
   var star_wrap = $("#star_wrap");
   starInit.hover(function () {
    starInit.hide();
    star_wrap.show();
   })
   var oLis = $("#ulStars li");
   oLis.each(function (i) {
    $(this).click(function () {
     var iStar = parseInt($(this).attr("star"), 10);
     txtStar.val(iStar);
     rate_1_result.html("<span style='color:red'>" + iStar + " 分</span> - " + rateMessage["rate-1"]["rate-" + iStar]);
    }).hover(function () {
     var iStar = parseInt($(this).attr("star"), 10);
     for (var i = 0; i < oLis.length; i++) {
      var _temp = oLis[i];
      if (_temp.attributes["star"].value <= iStar) {
       if (iStar >= 3) {
        _temp.className = "good";
       }
       else {
        _temp.className = "bad";
       }
      }
      else {
       _temp.className = "";
      }
     }
    }, function () {
     if (txtStar.val() != "") {
      var iSelectedStar = parseInt(txtStar.val(), 10);
      for (var i = 0; i < oLis.length; i++) {
       var _temp = oLis[i];
       if (_temp.attributes["star"].value > iSelectedStar) {
        _temp.className = "";
       }
       else {
        var iSelfStar = parseInt(_temp.attributes["star"].value, 10);
        if (iSelfStar >= 3) {
         _temp.className = "good";
        }
        else {
         if (iSelectedStar >= 3) {
          _temp.className = "good";
         }
         else {
          _temp.className = "bad";
         }
        }
       }
      }
     }
    }).mousemove(function (e) {
     var intX = 0, intY = 0;
     if (e == null) {
      e = window.event;
     }
     if (e.pageX || e.pageY) {
      intX = e.pageX; intY = e.pageY;
     }
     else if (e.clientX || e.clientY) {
      if (document.documentElement.scrollTop) {
       intX = e.clientX + document.documentElement.scrollLeft;
       intY = e.clientY + document.documentElement.scrollTop;
      }
      else {
       intX = e.clientX + document.body.scrollLeft;
       intY = e.clientY + document.body.scrollTop;
      }
     }
     var tipbar = tip.get(0);
     tipbar.style.top = (intY + 20) + "px";
     tipbar.style.left = (intX - 95) + "px";
     tipbar.style.display = "";
     var iStar = parseInt($(this).attr("star"), 10);
     tip.html("<span style='color:red'>" + iStar + " 分</span> - " + rateMessage["rate-1"]["rate-" + iStar]);
    }).mouseout(function () {
     tip.hide();
    })
   })
   star_wrap.hover(function () { }, function () {
    setTimeout(initStar, 50);
   })
   ulStars.hover(function () { }, function () { setTimeout(initStar, 50); });
   var initStar = function () {
    if (txtStar.val() == "") {
     star_wrap.hide();
     starInit.show();
     for (var i = 0; i < oLis.length; i++) {
      var _temp = oLis[i];
      _temp.className = "";
     }
    }
   }
  }) 
 </script>
 <style type="text/css">
  * { padding: 0; margin: 0; list-style: none; font-size: 12px; }
  #starBox { margin: 100px; }
  #starInit { width: 120px; height: 36px; overflow: hidden; float: left; }
  #star_wrap, #ulStars { width: 120px; height: 18px; overflow: hidden; float: left; }
  #ulStars li { width: 19px; height: 18px; background: url(bg.gif) no-repeat -278px -96px; float: left; margin-right: 5px; cursor: pointer; }
  #ulStars li.good { background: url(bg.gif) no-repeat -278px -52px; }
  #ulStars li.bad { background: url(bg.gif) no-repeat -278px -73px; }
  #tip { width: 171px; height: 67px; background: url(bg.gif) no-repeat -40px -167px; padding: 15px 3px 0 5px; line-height: 18px; }
  #txtStar { position: absolute; left: 0; top: -30px; }
  #rate_1_result { float: left; line-height: 25px; text-indent: 15px; color: Red; }
 </style>
</head>
<body>
 <div id="starBox">
  <div id="starInit">
   <img src="star_init.gif" alt="点击星星即可评分" />
  </div>
  <div id="star_wrap" style="display: none">
   <ul id="ulStars">
    <li star="1"></li>
    <li star="2"></li>
    <li star="3"></li>
    <li star="4"></li>
    <li star="5"></li>
   </ul>
  </div>
  <div id="rate_1_result">←点击星星就能评价了</div>
  <input type="text" id="txtStar" style="width: 30px" value="" />
  <div id="tip" style="position: absolute; display: none"></div>
 </div>
</body>
</html>

完整实例代码代码点击此处本站下载。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript的模块化:封装(闭包),继承(原型) 介绍
Jul 22 Javascript
今天是星期几的4种JS代码写法
Sep 17 Javascript
javascript中闭包(Closure)详解
Jan 06 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
May 03 Javascript
AngularJS 基础ng-class-even指令用法
Aug 01 Javascript
JavaScript-html标题滚动效果的简单实现
Sep 08 Javascript
JS作用域深度解析
Dec 29 Javascript
vue.js异步上传文件前后端实现代码
Aug 22 Javascript
基于vue.js的分页插件详解
Nov 27 Javascript
JS 正则表达式验证密码、邮箱格式的实例代码
Oct 28 Javascript
vue.js实现回到顶部动画效果
Jul 31 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
Jan 15 Javascript
Javascript BOM学习小结(六)
Nov 26 #Javascript
js实现延时加载Flash的方法
Nov 26 #Javascript
学习JavaScript设计模式(链式调用)
Nov 26 #Javascript
学习JavaScript设计模式(继承)
Nov 26 #Javascript
js图片跟随鼠标移动代码
Nov 26 #Javascript
学习JavaScript设计模式(封装)
Nov 26 #Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
Nov 26 #Javascript
You might like
晶体管单管来复再生式收音机
2021/03/02 无线电
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
thinkphp控制器调度使用示例
2014/02/24 PHP
详解WordPress中给链接添加查询字符串的方法
2015/12/18 PHP
Zend Framework前端控制器用法示例
2016/12/11 PHP
JQuery autocomplete 使用手册
2010/04/01 Javascript
jQuery插件开发全解析
2012/10/10 Javascript
JavaScript错误处理
2015/02/03 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
2016/12/02 Javascript
Angular2 父子组件通信方式的示例
2018/01/29 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
2019/01/05 jQuery
小程序登录之支付宝授权的实现示例
2019/12/13 Javascript
Map与WeakMap类型在JavaScript中的使用详解
2020/11/18 Javascript
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
视觉直观感受若干常用排序算法
2017/04/13 Python
Python中模块与包有相同名字的处理方法
2017/05/05 Python
python爬取网页内容转换为PDF文件
2020/07/28 Python
详解Python_shutil模块
2019/03/15 Python
python图形绘制奥运五环实例讲解
2019/09/14 Python
详解python中docx库的安装过程
2019/11/08 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
python实现3D地图可视化
2020/03/25 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
银河香水:Galaxy Perfume
2019/03/25 全球购物
JoJo Maman Bébé爱尔兰官网:英国最受欢迎的精品母婴品牌
2020/12/20 全球购物
工程管理专业个人求职信范文
2013/12/07 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
材料化学专业求职信
2014/07/15 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python
苹果的回收机器人可以通过拆解iPhone获取大量的金和铜并外公布了环境保护最新进展
2022/04/21 数码科技