JS與JQuery分別實現(xiàn)淘寶五星好評特效
本文實例為大家分享了JS與JQuery實現(xiàn)淘寶五星好評特效的具體代碼,供大家參考,具體內(nèi)容如下
我們經(jīng)常用的五星好評是如何來的,主要就是三個Event 中的三個事件分別:
onmouseover 指向事件
onmouseout 離開事件
onclick 點擊事件
代碼展示:
<!DOCTYPE html> <html> <head> ? ? <meta charset="utf-8" /> ? ? <title></title> ? ? <script> ? ? ? ? var clickIndex = -1; ? ? ? ? onload = function () { ? ? ? ? ? ? //獲取所有的img標簽 ? ? ? ? ? ? var imgs = document.getElementsByTagName('img'); ? ? ? ? ? ? //遍歷所有圖片對象,為每個圖片注冊指向事件 ? ? ? ? ? ? for (var index in imgs) { ? ? ? ? ? ? ? ? imgs[index].onmouseover = function () { ? ? ? ? ? ? ? ? ? ? //將當前的及之前的圖片變黃,之后的變?yōu)榛疑? ? ? ? ? ? ? ? ? ? ? var id = this.id;//獲取當前元素的id ? ? ? ? ? ? ? ? ? ? for (var i = 0; i < imgs.length; i++) { ? ? ? ? ? ? ? ? ? ? ? ? //當前元素之前的元素 ? ? ? ? ? ? ? ? ? ? ? ? if (i <= id) { ? ? ? ? ? ? ? ? ? ? ? ? ? ? //star2為黃色圖片 ? ? ? ? ? ? ? ? ? ? ? ? ? ? imgs[i].src = 'images/star2.png'; ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? else { ? ? ? ? ? ? ? ? ? ? ? ? ? ? //當前元素之后的圖片,顏色為灰色 ? ? ? ? ? ? ? ? ? ? ? ? ? ? imgs[i].src = 'images/star1.png'; ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? }; ? ? ? ? ? ? ? ? //為每個圖片對象注冊移開事件 ? ? ? ? ? ? ? ? imgs[index].onmouseout = function () { ? ? ? ? ? ? ? ? ? ? //被點擊項之前的元素為黃色 ? ? ? ? ? ? ? ? ? ? for (var i = 0; i <= clickIndex; i++) { ? ? ? ? ? ? ? ? ? ? ? ? imgs[i].src = 'images/star2.png'; ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? for (var i = clickIndex + 1; i < imgs.length; i++) { ? ? ? ? ? ? ? ? ? ? ? ? //被點擊項之后的元素為灰色 ? ? ? ? ? ? ? ? ? ? ? ? imgs[i].src = 'images/star1.png'; ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? }; ? ? ? ? ? ? ? ? //為每個圖片注冊點擊事件 ? ? ? ? ? ? ? ? imgs[index].onclick = function () { ? ? ? ? ? ? ? ? ? ? //記錄下來被點的圖片編號,編號與索引對應(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實現(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 = "☆"; ? ? ? ? ? ? //鼠標進入事件 ? ? ? ? ? ? $(".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前面的變成實心 ? ? ? ? ? ? ? ? $("li.current").text(wjxs).prevAll().text(wjxs); ? ? ? ? ? ? }); ? ? ? ? ? ? ? //給li注冊點擊事件,獲取當前元素的位置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>
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
微信小程序全局變量GLOBALDATA的定義和調(diào)用過程解析
這篇文章主要介紹了微信小程序全局變量GLOBALDATA的定義和調(diào)用過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-09-09《JavaScript DOM 編程藝術(shù)》讀書筆記之DOM基礎(chǔ)
這篇文章主要介紹了《JavaScript DOM 編程藝術(shù)》讀書筆記之DOM基礎(chǔ),需要的朋友可以參考下2015-01-01javascript實現(xiàn)博客園頁面右下角返回頂部按鈕
這篇文章主要介紹了使用javascript實現(xiàn)博客園頁面右下角返回頂部按鈕的思路及源碼,非常不錯,這里推薦給小伙伴們2015-02-02詳解關(guān)閉令人抓狂的ESlint 語法檢測配置方法
這篇文章主要介紹了詳解關(guān)閉令人抓狂的ESlint 語法檢測配置方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-10-10基于 webpack2 實現(xiàn)的多入口項目腳手架詳解
這篇文章主要給大家介紹了基于 webpack2 實現(xiàn)的多入口項目腳手架的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-06-06