jQuery模仿淘宝商品评价
最近做项目要做个商品评价的功能,我直接就跑到淘宝那里去研究了,可看着晕晕的,还不知道他是怎么做的,于是把图抠了下来,自己写了一个,接下来就展示一下我是怎么做的,大家有不同的实现方法可要记得分享一下呀。
经过研究,我发现在脚本事件上来说,就分三个事件,鼠标移入事件,鼠标离开事件和点击事件。移入就让鼠标移入的星星和之前的星星都变色,点击在移入的基础上保存了当前点击的星星位置,离开则恢复到上次点击的那个星星。从样式上来说,这些星星可以共用一个图片,切换星星时让图片的一部分展示出来就可以了。
这里展示Demo就只搞三个星星了,星星右边的文字提示也不弄了。这里用无链接的链接标签来放星星,使用链接有个好处就是如果以后要在点击星星时触发服务器的操作,比如点击星星直接完成评价操作,就可以直接用了,再用一个隐藏input来存放最近一次点击的星星的值:
<div id="rating-star">
<a href="#">0</a>
<a href="#">1</a>
<a href="#">2</a>
</div>
接着给rating-star和链接一个样式,切换图片的关键只需要修改background-position就可以了:
#rating-star {
margin: 50px;
}
#rating-star a {
background: url(commentstar.png) no-repeat 0 -90px;
display: inline-block;
height: 23px;
text-indent: -999em;
width: 23px;
}
最后就是关键的脚本了:
$('#rating-star').on('click', 'a', function () {
$('#rating-star').data('star', this.innerHTML);
}).on('mouseenter', 'a', function () {
setStar(this);
}).on('mouseleave', 'a', function () {
var $r_star = $('#rating-star');
var level = $r_star.data('star');
var $stars = $r_star.find('a');
if (level) {
setStar($stars[level]);
} else {
$stars.css('background-position', '0 -90px');
}
});
function setStar(star) {
var $this = $(star);
var level = $this.html();
var n;
if (level == '') {
n = '0 -30px';
} else if (level == '') {
n = '0 0';
} else {
n = '0 -60px';
}
$this.prevAll().andSelf().css('background-position', n);
$this.nextAll().css('background-position', '0 -90px');
}
这里有必要解释一下我的思路,可以看到点击事件只是给隐藏控件赋值,没做其他事,本来点击事件是要变换图片的,这事我发现鼠标移入事件已经做了,所以我就不再重复了,然后你会发现鼠标移入和离开最终都调用了setStar函数,那个方法其实就是把传入的星星以及他之前的星星改成相应的图片,把传入的星星之后的星星改成无颜色的星星,其实setStar也可以原html对象的数字下标,这样也可以用jquery的slice来实现。有些同志可能不知道'0 -30px'这些的是干什么的,其实'0 0'就是在原本默认的图片展示,-30px意思就是在y轴上把图片向上移动30个像素,这样在链接大小限定为长宽都为23px的情况下,我们看到的就是好评图片了,'0 0'对应的就是中评图片,'0 -60px'对应的就是差评图片,'0 -90px'对应的就是还没评价的图片。把原本的四个图片合成一张图片有什么好处呢,可以减少请求数,写代码也比较方便吧,估计脚本性能也会好点。
亲自试一试
jQuery模仿淘宝商品评价的更多相关文章
- JQuery模仿淘宝天猫魔盒抢购页面倒计时效果
1.效果及功能说明 通过对时间的控制来告诉用户一个活动还剩多少时间,精确到秒.2.实现原理 首先定义活动的截至的时间,要重年份精确到毫秒,在获得当前的年份到秒钟,在用截至时间,减去现在的时间,剩下的还 ...
- jquery模仿淘宝星星打分
今天做论坛页面有星星评分功能,以下是代码.用的时候引入jquery <span> <ul class="hs_df_xx"> <li><i ...
- 用PHP抓取淘宝商品的用户晒单评论+图片实例
为什么想起来做这个功能?是因为前段时间在做一个淘客网站的时候,想到是否能抓取到淘宝商品的买家秀呢?经过一番折腾发现,淘宝商品用户评价信息是通过Ajax来调取的,通过嗅探网址发现,评论数据的请求接口是: ...
- android ------ RecyclerView 模仿淘宝购物车
电商项目中常常有购物车这个功能,做个很多项目了,都有不同的界面,选了一个来讲一下. RecyclerView 模仿淘宝购物车功能(删除选择商品,商品计算,选择, 全选反选,商品数量加减等) 看看效果图 ...
- 爬取淘宝商品信息,放到html页面展示
爬取淘宝商品信息 import pymysql import requests import re def getHTMLText(url): kv = {'cookie':'thw=cn; hng= ...
- YY一下淘宝商品模型
淘宝的电商产品种类非常丰富,必然得力于其商品模型的高度通用性和扩展性. 下面我将亲自操作淘宝商品的发布过程,结合网上其他博客对淘宝网商品库的分析,简单谈谈我的理解. 注:下面不特殊说明,各个表除主键外 ...
- jquery仿淘宝规格颜色选择效果
jquery实现的仿淘宝规格颜色选择效果源代码如下 jquery仿淘宝规格颜色选择效果 -收缩HTML代码 运行代码 [如果运行无效果,请自行将源代码保存为html文件运行] <script t ...
- 一款基于jQuery仿淘宝红色分类导航
今天给大家分享一款基于jQuery仿淘宝红色分类导航.这款分类导航适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览 ...
- 利用Python爬虫爬取淘宝商品做数据挖掘分析实战篇,超详细教程
项目内容 本案例选择>> 商品类目:沙发: 数量:共100页 4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 项目目的 1. 对商品标题进行文本分析 词云可视化 2. ...
随机推荐
- "飞机大战"游戏_Java实现_详细注释
1 package cn.xiaocangtian.Util; import java.awt.Frame; import java.awt.Graphics; import java.awt.Ima ...
- 素数的平方阶群必为Abel群
定理 设$p$为素数,则$p^2$阶群$G$必为Abel群.
- hosts文件权限导致监听无法启动
1.所属系统:2.问题描述:3.解决4.参考???疑点:为什么修改主机名会使hosts文件权限发生改变 1.所属系统: ZHJS2#[/]uname -a HP-UX ZHJS2 B.11.31 U ...
- java的remote shell
http://www.ganymed.ethz.ch/ssh2/ 此程序的目的是执行远程机器上的Shell脚本. [环境参数] 远程机器IP:172.17.24.212 用户名:root 密码:zhe ...
- [UWP]UWP中获取联系人/邮件发送/SMS消息发送操作
这篇博客将介绍如何在UWP程序中获取联系人/邮件发送/SMS发送的基础操作. 1. 获取联系人 UWP中联系人获取需要引入Windows.ApplicationModel.Contacts名称空间. ...
- [译]:Xamarin.Android开发入门——Hello,Android深入理解
返回索引目录 原文链接:Hello, Android_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android深入理解 本部分介绍利用Xamarin开发And ...
- UWP学习记录2-设计和UI之布局
UWP学习记录2-设计和UI之布局 1.导航基础知识 应用里,多个页面会有层次关系或者对等关系.这两种关系,通常在一个复杂应用里都会存在,而关系的选定依据: 对于对等导航,一般用选项卡(tabs)或者 ...
- 【CentOS】LNMP
本文为博主JerryChan所有,如需转载,请联系博主747618706@qq.com,并附上博客链接/////////////////目录//////////////////一.LNMP的安装 1. ...
- HashMap的内部实现机制,Hash是怎样实现的,什么时候ReHash
1.HashMap的内部实现机制 HashMap是对数据结构中哈希表(Hash Table)的实现,Hash表又叫散列表.Hash表是根据关键码Key来访问其对应的值Value的数据结构,它通过一个映 ...
- 半吊子学习Swift--天气预报程序-准备工作
MacBookPro买完快半年了,当初想着买个本本学点ios,买完就看了几天的教程[捂脸],最近发现人都要废了,想重新开始学习Swift并将每天的进程通过博客发布来督促自己. 由于文笔不好,接触Swi ...