javascript淘宝评星简版

 更新时间:2010年07月06日 23:51:52   作者:  
基本js实现的星星投票选择功能代码。
【程序源码】
这个效果主要体现在CSS和javascript的配合上
CSS代码
复制代码 代码如下:

ul, li {margin: 0; padding: 0; border: 0;}
.shop-rating {
height: 25px;
overflow: hidden;
zoom: 1;
padding: 2px 0;
position: relative;
z-index: 999;
font:12px Arial;
color:#000;
line-height:1.2em
}
.shop-rating span {
height: 23px;
display: block;
line-height: 23px;
float: left;
}
.shop-rating span.title {
width: 125px;
text-align: right;
margin-right: 5px;
}
.shop-rating ul {
float: left;
}
.shop-rating .result {
margin-left: 20px;
padding-top: 2px;
}
.shop-rating .result span {
color: #ff6d02;
}
.rating-level,
.rating-level a {
background: url(//img.jbzj.com/demoimg/201007/o_star.png) no-repeat scroll 1000px 1000px;
}
.rating-level {
background-position: 0px 0px;
width: 120px;
height: 23px;
position: relative;
z-index: 1000;
}
.shop-rating .result em {
color: #f60;
font-family: arial;
font-weight: bold;
}
.rating-level li {
display: inline;
}
.rating-level a {
line-height: 23px;
height: 23px;
position: absolute;
top: 0px;
left: 0px;
text-indent: -999em;
*zoom: 1;
outline: none;
}
.rating-level a.one-star {
width: 20%;
z-index: 6;
}
.rating-level a.two-stars {
width: 40%;
z-index: 5;
}
.rating-level a.three-stars {
width: 60%;
z-index: 4;
}
.rating-level a.four-stars {
width: 80%;
z-index: 3;
}
.rating-level a.five-stars {
width: 100%;
z-index: 2;
}
.rating-level .current-rating, .rating-level a:hover {background-position:0 -28px}
.rating-level a.one-star:hover,.rating-level a.two-stars:hover,.rating-level a.one-star.current-rating,.rating-level a.two-stars.current-rating{background-position:0 -116px;}
.rating-level .three-stars .current-rating,.rating-level .four-stars .current-rating,.rating-level .five-stars .current-rating{background-position:0 -28px;}

HTML结构
复制代码 代码如下:

<div class="shop-rating">
<span class="title">你对我人品的评价:</span>
<ul class="rating-level" id="stars2">
<li><a href="javascript:void(0);" class="one-star" star:value="20">20</a></li>
<li><a href="javascript:void(0);" class="two-stars" star:value="40">40</a></li>
<li><a href="javascript:void(0);" class="three-stars" star:value="60">60</a></li>
<li><a href="javascript:void(0);" class="four-stars" star:value="80">80</a></li>
<li><a href="javascript:void(0);" class="five-stars" star:value="100">100</a></li>
</ul>
<span id="stars2-tips" class="result"></span>
<input type="hidden" id="stars2-input" name="b" value="" size="2" />
</div>

Javascript代码
复制代码 代码如下:

var TB = function() {
var T$ = function(id) { return document.getElementById(id) }
var T$$ = function(r, t) { return (r || document).getElementsByTagName(t) }
var Stars = function(cid, rid, hid, config) {
var lis = T$$(T$(cid), 'li'), curA;
for (var i = 0, len = lis.length; i < len; i++) {
lis[i]._val = i;
lis[i].onclick = function() {
T$(rid).innerHTML = '<em>' + (T$(hid).value = T$$(this, 'a')[0].getAttribute('star:value')) + '分</em> - ' + config.info[this._val];
curA = T$$(T$(cid), 'a')[T$(hid).value / config.step - 1];
};
lis[i].onmouseout = function() {
curA && (curA.className += config.curcss);
}
lis[i].onmouseover = function() {
curA && (curA.className = curA.className.replace(config.curcss, ''));
}
}
};
return {Stars: Stars}
}().Stars('stars2', 'stars2-tips', 'stars2-input', {
'info' : ['人品极差', '人品不咋地', '人品一般吧', '人品不错', '人品极好啊'],
'curcss': ' current-rating',
'step': 20
});

代码演示:

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

相关文章

  • 基于javascript实现碰撞检测

    基于javascript实现碰撞检测

    这篇文章主要为大家详细介绍了基于javascript实现碰撞检测,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • 一不小心就做错的JS闭包面试题

    一不小心就做错的JS闭包面试题

    这篇文章为大家推荐了许多经典的JS闭包面试题,也可以说是一不小心就做错的JS闭包面试题,感兴趣的小伙伴们可以参考一下,自己试着解答这些大部分人都会做错的JS闭包面试题,检验自己的知识水平
    2015-11-11
  • JavaScript中文件流的处理场景及方法

    JavaScript中文件流的处理场景及方法

    作为一名前端开发,我们平时也少不了对文件流数据进行处理,今天简单整理一下日常开发中比较常见的一些处理文件流的场景及处理方法,希望可以帮助到大家
    2023-09-09
  • 基于Bootstrap3表格插件和分页插件实例详解

    基于Bootstrap3表格插件和分页插件实例详解

    这篇文章主要介绍了基于Bootstrap3表格插件和分页插件实例详解的相关资料,需要的朋友可以参考下
    2016-05-05
  • JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例

    JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例

    这篇文章主要介绍了JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果,涉及javascript事件响应及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下
    2019-01-01
  • JS数组排序方法实例分析

    JS数组排序方法实例分析

    这篇文章主要介绍了JS数组排序方法,结合实例形式分析了javascript数组冒泡排序与选择排序原理及实现技巧,需要的朋友可以参考下
    2016-12-12
  • 微信小程序云开发详细教程

    微信小程序云开发详细教程

    这篇文章主要为大家详细介绍了微信小程序云开发的详细教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • 深入剖析JavaScript instanceof 运算符

    深入剖析JavaScript instanceof 运算符

    这篇文章主要介绍了深入剖析JavaScript instanceof 运算符,ECMAScript 引入了另一个 Java 运算符 instanceof 来解决这个问题。instanceof 运算符与 typeof 运算符相似,用于识别正在处理的对象的类型。,需要的朋友可以参考下
    2019-06-06
  • JS封装通过className获取元素的函数示例

    JS封装通过className获取元素的函数示例

    这篇文章主要介绍了JS封装通过className获取元素的函数,涉及javascript针对页面元素属性的遍历与数组相关操作技巧,需要的朋友可以参考下
    2016-12-12
  • javascript 易错知识点实例小结

    javascript 易错知识点实例小结

    这篇文章主要介绍了javascript 易错知识点,结合实例形式总结分析了javascript 对象属性、继承常见易错知识点与注意事项,需要的朋友可以参考下
    2020-04-04

最新评论