JS與JQuery分別實(shí)現(xiàn)淘寶五星好評(píng)特效
本文實(shí)例為大家分享了JS與JQuery實(shí)現(xiàn)淘寶五星好評(píng)特效的具體代碼,供大家參考,具體內(nèi)容如下
我們經(jīng)常用的五星好評(píng)是如何來的,主要就是三個(gè)Event 中的三個(gè)事件分別:
onmouseover 指向事件
onmouseout 離開事件
onclick 點(diǎn)擊事件

代碼展示:
<!DOCTYPE html>
<html>
<head>
? ? <meta charset="utf-8" />
? ? <title></title>
? ? <script>
? ? ? ? var clickIndex = -1;
? ? ? ? onload = function () {
? ? ? ? ? ? //獲取所有的img標(biāo)簽
? ? ? ? ? ? var imgs = document.getElementsByTagName('img');
? ? ? ? ? ? //遍歷所有圖片對(duì)象,為每個(gè)圖片注冊(cè)指向事件
? ? ? ? ? ? for (var index in imgs) {
? ? ? ? ? ? ? ? imgs[index].onmouseover = function () {
? ? ? ? ? ? ? ? ? ? //將當(dāng)前的及之前的圖片變黃,之后的變?yōu)榛疑?
? ? ? ? ? ? ? ? ? ? var id = this.id;//獲取當(dāng)前元素的id
? ? ? ? ? ? ? ? ? ? for (var i = 0; i < imgs.length; i++) {
? ? ? ? ? ? ? ? ? ? ? ? //當(dāng)前元素之前的元素
? ? ? ? ? ? ? ? ? ? ? ? if (i <= id) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? //star2為黃色圖片
? ? ? ? ? ? ? ? ? ? ? ? ? ? imgs[i].src = 'images/star2.png';
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? else {
? ? ? ? ? ? ? ? ? ? ? ? ? ? //當(dāng)前元素之后的圖片,顏色為灰色
? ? ? ? ? ? ? ? ? ? ? ? ? ? imgs[i].src = 'images/star1.png';
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? };
? ? ? ? ? ? ? ? //為每個(gè)圖片對(duì)象注冊(cè)移開事件
? ? ? ? ? ? ? ? imgs[index].onmouseout = function () {
? ? ? ? ? ? ? ? ? ? //被點(diǎn)擊項(xiàng)之前的元素為黃色
? ? ? ? ? ? ? ? ? ? for (var i = 0; i <= clickIndex; i++) {
? ? ? ? ? ? ? ? ? ? ? ? imgs[i].src = 'images/star2.png';
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? for (var i = clickIndex + 1; i < imgs.length; i++) {
? ? ? ? ? ? ? ? ? ? ? ? //被點(diǎn)擊項(xiàng)之后的元素為灰色
? ? ? ? ? ? ? ? ? ? ? ? imgs[i].src = 'images/star1.png';
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? };
? ? ? ? ? ? ? ? //為每個(gè)圖片注冊(cè)點(diǎn)擊事件
? ? ? ? ? ? ? ? imgs[index].onclick = function () {
? ? ? ? ? ? ? ? ? ? //記錄下來被點(diǎn)的圖片編號(hào),編號(hào)與索引對(duì)應(yīng)
? ? ? ? ? ? ? ? ? ? clickIndex = parseInt(this.id);
? ? ? ? ? ? ? ? };
? ? ? ? ? ? }
? ? ? ? };?
? ? ?
? ? </script>
</head>
<body>
? ? <img id="0" src="images/star1.png" />
? ? <img id="1" src="images/star1.png" />
? ? <img id="2" src="images/star1.png" />
? ? <img id="3" src="images/star1.png" />
? ? <img id="4" src="images/star1.png" />
</body>
</html>JQuery實(shí)現(xiàn)方式
<!DOCTYPE html>
<html>
<head>
? ? <meta charset="utf-8" />
? ? <title></title>
? ? <script src="../js/jquery-3.3.1.min.js"></script>
? ? <style>
? ? ? ? div{
? ? ? ? ? ? width:200px;
? ? ? ? ? ? height:200px;
? ? ? ? ? ? background-color :pink; ? ??
? ? ? ? }
? ? </style>
? ? <script>
? ? ? ? $(function () {
? ? ? ? ? ? var wjxs = "★";
? ? ? ? ? ? var wjxk = "☆";
? ? ? ? ? ? //鼠標(biāo)進(jìn)入事件
? ? ? ? ? ? $(".comment>li").on("mouseenter", function () {
? ? ? ? ? ? ? ? $(this).text(wjxs).prevAll().text(wjxs);
? ? ? ? ? ? ? ? $(this).nextAll().text(wjxk);
? ? ? ? ? ? });
? ? ? ? ? ? //離開事件,所有的li變成空心
? ? ? ? ? ? $(".comment").on("mouseleave", function () {
? ? ? ? ? ? ? ? $(this).children().text(wjxk);
? ? ? ? ? ? ? ? // 找到current,讓current以及current前面的變成實(shí)心
? ? ? ? ? ? ? ? $("li.current").text(wjxs).prevAll().text(wjxs);
? ? ? ? ? ? });
?
? ? ? ? ? ? //給li注冊(cè)點(diǎn)擊事件,獲取當(dāng)前元素的位置current
? ? ? ? ? ? $(".comment>li").on("click", function () {
? ? ? ? ? ? ? ? $(this).addClass("current").siblings().removeClass("current");
? ? ? ? ? ? });
? ? ? ? });
? ? </script>
</head>
<body>
? ? <div>
? ? ? ? <ul class="comment">
? ? ? ? ? ? <li>☆</li>
? ? ? ? ? ? <li>☆</li>
? ? ? ? ? ? <li>☆</li>
? ? ? ? ? ? <li>☆</li>
? ? ? ? ? ? <li>☆</li>
? ? ? ? </ul>
? ? </div>
?
</body>
</html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js實(shí)現(xiàn)按Ctrl+Enter發(fā)送效果
按Ctrl+Enter發(fā)送,思路是監(jiān)聽textarea的onkeydown事件,當(dāng)ctrl鍵被按下,并且,keycode為13(回車),時(shí),調(diào)用發(fā)送表單的函數(shù)2014-09-09
JS動(dòng)態(tài)增加刪除UL節(jié)點(diǎn)LI及相關(guān)內(nèi)容示例
這篇文章主要介紹了JS如何動(dòng)態(tài)增加刪除UL節(jié)點(diǎn)LI及相關(guān)內(nèi)容,需要的朋友可以參考下2014-05-05
window.print()打印根據(jù)高度設(shè)置居中顯示和布局(縱向橫向)
本文主要介紹了window.print()打印根據(jù)高度設(shè)置居中顯示和布局(縱向橫向),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
js獲取當(dāng)前年月日-YYYYmmDD格式的實(shí)現(xiàn)代碼
下面小編就為大家?guī)硪黄猨s獲取當(dāng)前年月日-YYYYmmDD格式的實(shí)現(xiàn)代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06
D3.js實(shí)現(xiàn)拓?fù)鋱D的示例代碼
本篇文章主要介紹了D3.js實(shí)現(xiàn)拓?fù)鋱D的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06
原生javascript實(shí)現(xiàn)自動(dòng)更新的時(shí)間日期
這篇文章主要介紹了原生javascript實(shí)現(xiàn)自動(dòng)更新的時(shí)間日期的相關(guān)資料,對(duì)實(shí)現(xiàn)代碼進(jìn)行詳細(xì)分析,感興趣的朋友可以參考一下2016-02-02

