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 相关文章推荐
对jQuery的事件绑定的一些思考(补充)
Apr 20 Javascript
javascript解析json数据的3种方式
May 08 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
Apr 06 Javascript
基于javascript实现泡泡大冒险网页版小游戏
Mar 23 Javascript
如何通过js实现图片预览功能【附实例代码】
Mar 30 Javascript
vue.js 初体验之Chrome 插件开发实录
May 13 Javascript
react-native-fs实现文件下载、文本存储的示例代码
Sep 22 Javascript
webpack4实现不同的导出类型
Apr 09 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
Sep 12 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
Apr 28 Javascript
vue基础知识--axios合并请求和slot
Jun 04 Javascript
javascript遍历对象的五种方式实例代码
Oct 24 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
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
PHP之autoload运行机制实例分析
2014/08/28 PHP
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
利用ASP发送和接收XML数据的处理方法与代码
2007/11/13 Javascript
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
2013/12/30 Javascript
javascript实现分栏显示小技巧附图
2014/10/13 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
JS实现左右拖动改变内容显示区域大小的方法
2015/10/13 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
2016/09/02 Javascript
js中字符型和数值型数字的互相转化方法(必看)
2017/04/25 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
vue 实现input表单元素的disabled示例
2019/10/28 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
2019/12/23 jQuery
微信小程序button标签open-type属性原理解析
2020/01/21 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
2020/06/17 Javascript
js实现贪吃蛇游戏 canvas绘制地图
2020/09/09 Javascript
python 统计列表中不同元素的数量方法
2018/06/29 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
CSS3等相关属性制作分页导航实现代码
2012/12/24 HTML / CSS
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
一名老师的自我评价
2014/02/07 职场文书
2014大学生学生会工作总结
2014/12/19 职场文书
检讨书怎么写
2015/01/23 职场文书
老员工辞职信范文
2015/05/12 职场文书
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
如何使用分区处理MySQL的亿级数据优化
2021/06/18 MySQL
简单聊聊TypeScript只读修饰符
2022/04/06 Javascript
Windows 64位 安装 mysql 8.0.28 图文教程
2022/04/19 MySQL
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers
CSS 鼠标选中文字后改变背景色的实现代码
2023/05/21 HTML / CSS