JS與JQuery分別實(shí)現(xiàn)淘寶五星好評(píng)特效
本文實(shí)例為大家分享了JS與JQuery實(shí)現(xiàn)淘寶五星好評(píng)特效的具體代碼,供大家參考,具體內(nèi)容如下
我們經(jīng)常用的五星好評(píng)是如何來(lái)的,主要就是三個(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 () { ? ? ? ? ? ? ? ? ? ? //記錄下來(lái)被點(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)文章
bootstrap選項(xiàng)卡擴(kuò)展功能詳解
這篇文章主要為大家詳細(xì)介紹了bootstrap選項(xiàng)卡擴(kuò)展功能,增加關(guān)閉,超出一行顯示下拉,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06Bootstarp在pycharm中的安裝及簡(jiǎn)單的使用方法
這篇文章主要介紹了Bootstarp在pycharm中的安裝及簡(jiǎn)單的使用方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04微信小程序全局變量GLOBALDATA的定義和調(diào)用過(guò)程解析
這篇文章主要介紹了微信小程序全局變量GLOBALDATA的定義和調(diào)用過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09《JavaScript DOM 編程藝術(shù)》讀書筆記之DOM基礎(chǔ)
這篇文章主要介紹了《JavaScript DOM 編程藝術(shù)》讀書筆記之DOM基礎(chǔ),需要的朋友可以參考下2015-01-01javascript實(shí)現(xiàn)博客園頁(yè)面右下角返回頂部按鈕
這篇文章主要介紹了使用javascript實(shí)現(xiàn)博客園頁(yè)面右下角返回頂部按鈕的思路及源碼,非常不錯(cuò),這里推薦給小伙伴們2015-02-02詳解關(guān)閉令人抓狂的ESlint 語(yǔ)法檢測(cè)配置方法
這篇文章主要介紹了詳解關(guān)閉令人抓狂的ESlint 語(yǔ)法檢測(cè)配置方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10基于 webpack2 實(shí)現(xiàn)的多入口項(xiàng)目腳手架詳解
這篇文章主要給大家介紹了基于 webpack2 實(shí)現(xiàn)的多入口項(xiàng)目腳手架的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-06-06JavaScript 高級(jí)篇之閉包、模擬類,繼承(五)
本篇主要分享我對(duì)閉包的理解及使用閉包完成私有屬性、模擬類、繼承等,結(jié)合大量例子,希望大家能快速掌握!首先讓我們先從一些基本的術(shù)語(yǔ)開始吧2012-04-04