Vue實(shí)現(xiàn)星級(jí)評(píng)價(jià)效果
本文實(shí)例為大家分享了Vue實(shí)現(xiàn)星級(jí)評(píng)價(jià)效果的具體代碼,供大家參考,具體內(nèi)容如下
1、本文五角星采用的阿里巴巴矢量圖標(biāo)庫(kù);
2、數(shù)據(jù)內(nèi)容可根據(jù)實(shí)際需求進(jìn)行改動(dòng);
3、主要實(shí)現(xiàn)了鼠標(biāo)滑動(dòng)改變樣式,鼠標(biāo)離開(kāi)樣式消失,鼠標(biāo)點(diǎn)擊對(duì)應(yīng)的五角星樣式被改變及完成評(píng)價(jià);
4、本文章只是簡(jiǎn)單的實(shí)現(xiàn)了功能,僅做參考!
<!doctype html>
<html lang="en">
<head>
?? ?<meta charset="UTF-8">
?? ?<title>五星評(píng)價(jià)(Vue組件)</title>
?? ?<!-- 引入阿里矢量圖標(biāo) -->
?? ?<link rel="stylesheet" href="./iconfont.css" >
?? ?<!-- 引入vue -->
?? ?<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
?? ?
?? ?<style>
?? ??? ?.box{
?? ??? ??? ?width:400px;
?? ??? ??? ?height: 100px;
?? ??? ??? ?border: 1px solid black;
?? ??? ??? ?margin:0 auto;
?? ??? ?}
?? ??? ?.box .icon-wjxb{
?? ??? ??? ?font-size:44px;
?? ??? ??? ?line-height: 100px;
?? ??? ??? ?color:grey;
?? ??? ??? ?padding: 0 10px;
?? ??? ?}
?? ??? ?.box ?.active{
?? ??? ??? ?color:yellow;
?? ??? ?}
?? ?</style>
</head>
<body>
?? ?<!-- 星級(jí)評(píng)價(jià)板塊 -->
?? ?<div class="box">
?? ??? ?<star></star>
?? ?</div>
</body>
<script>
?? ?// 創(chuàng)建局部組件
?? ?var star = {
?? ??? ?// 子模版
?? ??? ?template:`<div>
?? ??? ??? ??? ??? ?<span class="iconfont icon-wjxb" v-for="n in 5" @mouseenter="change(n)" @mouseleave="unchange" :class="{'active':activeIndex>=n}" @click="fix(n)"></span>
?? ??? ??? ??? ?</div>`,
?? ??? ?data(){
?? ??? ??? ?return {
?? ??? ??? ??? ?activeIndex:-1, ?// 用來(lái)判斷什么時(shí)候改變樣式
?? ??? ??? ??? ?flag:false ? ? ? // 用來(lái)驗(yàn)證用戶是否點(diǎn)擊過(guò)
?? ??? ??? ?}
?? ??? ?},
?? ??? ?methods:{
?? ??? ??? ?// 鼠標(biāo)進(jìn)入觸發(fā),接收參數(shù)
?? ??? ??? ?change(n){
?? ??? ??? ??? ?// 判斷用戶是否點(diǎn)擊過(guò)
?? ??? ??? ??? ?if(!this.flag){
?? ??? ??? ??? ??? ?// 沒(méi)有點(diǎn)擊過(guò),改變樣式
?? ??? ??? ??? ??? ?this.activeIndex = n;
?? ??? ??? ??? ?}
?? ??? ??? ?},
?? ??? ??? ?// 鼠標(biāo)離開(kāi)時(shí)觸發(fā)
?? ??? ??? ?unchange(){
?? ??? ??? ??? ?// 判斷用戶是否點(diǎn)擊過(guò)
?? ??? ??? ??? ?if(!this.flag){
?? ??? ??? ??? ??? ?// 沒(méi)點(diǎn)擊過(guò),鼠標(biāo)離開(kāi)后樣式消失
?? ??? ??? ??? ??? ?this.activeIndex = -1;
?? ??? ??? ??? ?}
?? ??? ??? ?},
?? ??? ??? ?// 點(diǎn)擊時(shí)觸發(fā),接收參數(shù)
?? ??? ??? ?fix(n){
?? ??? ??? ??? ?// 賦值
?? ??? ??? ??? ?this.activeIndex = n;
?? ??? ??? ??? ?// 改變狀態(tài)
?? ??? ??? ??? ?this.flag = true;
?? ??? ??? ?}
?? ??? ?}
?? ?}
?? ?new Vue({
?? ??? ?// 掛載元素
?? ??? ?el:".box",
?? ??? ?// 注冊(cè)組件
?? ??? ?components:{
?? ??? ??? ?star:star
?? ??? ?}
?? ?})?? ?
</script>
</html>以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue+elementui實(shí)現(xiàn)表格多級(jí)表頭效果
這篇文章主要為大家詳細(xì)介紹了vue?+?elementui實(shí)現(xiàn)表格多級(jí)表頭,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
使用Vant如何實(shí)現(xiàn)數(shù)據(jù)分頁(yè),下拉加載
這篇文章主要介紹了使用Vant實(shí)現(xiàn)數(shù)據(jù)分頁(yè)及下拉加載方式。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
Vue + better-scroll 實(shí)現(xiàn)移動(dòng)端字母索引導(dǎo)航功能
better-scroll 是一款重點(diǎn)解決移動(dòng)端(已支持 PC)各種滾動(dòng)場(chǎng)景需求的插件。這篇文章主要介紹了Vue + better-scroll 實(shí)現(xiàn)移動(dòng)端字母索引導(dǎo)航功能,需要的朋友可以參考下2018-05-05
vue 函數(shù)調(diào)用加括號(hào)與不加括號(hào)的區(qū)別
這篇文章主要介紹了vue 函數(shù)調(diào)用加括號(hào)與不加括號(hào)的區(qū)別,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下2020-10-10
vue3在router中使用store報(bào)錯(cuò)的完美解決方案
這篇文章主要介紹了vue3在router中使用store報(bào)錯(cuò)解決方案,就是需要在實(shí)例化一下,因?yàn)樵诰幾grouter的時(shí)候pinia還未被實(shí)例化,文中補(bǔ)充介紹了vue3中router和store詳細(xì)使用教程方法,感興趣的朋友一起看看吧2023-11-11

