vue實(shí)現(xiàn)帶小數(shù)點(diǎn)的星星評(píng)分
本文實(shí)例為大家分享了vue實(shí)現(xiàn)帶小數(shù)點(diǎn)的星星評(píng)分的具體代碼,供大家參考,具體內(nèi)容如下
首先我們要先引入vue.js文件
css部分
<style>
main{
position:relative;
}
.star_line{
/* 設(shè)置強(qiáng)制不換行 */
width-space: nowrap;
overflow: hidden;
position: absolute;
}
.star{
display: inline-block;
/* 設(shè)置當(dāng)鼠標(biāo)放到星星上是變成小手樣式 */
cursor: pointer
}
</style>
body部分
<div id="app"> <input type="text" v-model.number="score"> <- 任何一個(gè)組件在進(jìn)行雙向綁定接收綁定的值的時(shí)候,必須使用value來(lái)接收,原理參考input -> <v-star v-model="score"></v-star> </div>
js部分我們用到組件,input在根組件內(nèi),而我們創(chuàng)建的星星放在一個(gè)組件內(nèi),主要通過(guò)雙向綁定,父組件和子組件相互傳值,來(lái)實(shí)現(xiàn)星星評(píng)分
組件模板部分
<script id="v-star" type="text/html">
<main :style="mainStyle">
<!-- 白星星 -->
<div class="star_line">
<span @click="changeValue(star)" class="star" :style="starStyle" v-for="star in total">☆</span>
</div>
<!-- 黑星星 -->
<div class="star_line" :style="blackStyle">
<span @click="changeValue(star-1)" class="star" :style="starStyle" v-for="star in total">★</span>
</div>
</main>
</script>
js部分
<script>
Vue.component("v-star",{
template:"#v-star",
props:{
total:{
default:10,
},
size:{
default:30
},
// 接收從父組件傳過(guò)來(lái)的score
value:{}
},
// 計(jì)算屬性
computed:{
mainStyle(){
return{
width:this.size * this.total + "px",
}
},
starStyle(){
return{
width:this.size + "px",
height:this.size + "px",
fontSize: this.size + 6 + "px"
}
},
blackStyle(){
return{
width:this.value / this.total * 100 + "%"
}
}
},
methods:{
changeValue(value){
// 將最新的結(jié)果傳給input
// input標(biāo)簽有有個(gè)默認(rèn)的input事件
this.$emit("input",value)
}
}
})
new Vue({
el:"#app",
data:{
score:1
}
})
</script>
效果圖


以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue路由守衛(wèi),限制前端頁(yè)面訪問(wèn)權(quán)限的例子
今天小編就為大家分享一篇vue路由守衛(wèi),限制前端頁(yè)面訪問(wèn)權(quán)限的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
vue實(shí)現(xiàn)按鈕的長(zhǎng)按功能
這篇文章主要介紹了vue實(shí)現(xiàn)按鈕的長(zhǎng)按功能,點(diǎn)擊按鈕實(shí)現(xiàn)長(zhǎng)按,用戶需要按下按鈕幾秒鐘,然后觸發(fā)相應(yīng)的事件,本文通過(guò)實(shí)例代碼給大家分享實(shí)現(xiàn)思路,感興趣的朋友一起看看吧2022-01-01
Vue項(xiàng)目分環(huán)境打包的實(shí)現(xiàn)步驟
這篇文章主要介紹了Vue項(xiàng)目如何分環(huán)境打包,實(shí)現(xiàn)方法大概分為六步驟,需要的朋友可以參考下2018-04-04
elementUI如何動(dòng)態(tài)給el-tree添加子節(jié)點(diǎn)數(shù)據(jù)children詳解
element-ui 目前基本成為前端pc網(wǎng)頁(yè)端標(biāo)準(zhǔn)ui框架,下面這篇文章主要給大家介紹了關(guān)于elementUI如何動(dòng)態(tài)給el-tree添加子節(jié)點(diǎn)數(shù)據(jù)children的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
Vue數(shù)據(jù)驅(qū)動(dòng)試圖的實(shí)現(xiàn)方法及原理
當(dāng)Vue實(shí)例中的數(shù)據(jù)(data)發(fā)生變化時(shí),與之相關(guān)聯(lián)的視圖(template)會(huì)自動(dòng)更新,反映出最新的數(shù)據(jù)狀態(tài), Vue的數(shù)據(jù)驅(qū)動(dòng)視圖是通過(guò)其響應(yīng)式系統(tǒng)實(shí)現(xiàn)的,以下是Vue數(shù)據(jù)驅(qū)動(dòng)視圖實(shí)現(xiàn)的核心原理,需要的朋友可以參考下2024-10-10
如何實(shí)現(xiàn)一個(gè)簡(jiǎn)易版的vuex持久化工具
這篇文章主要介紹了實(shí)現(xiàn)一個(gè)簡(jiǎn)易版的vuex持久化工具,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
一文學(xué)會(huì)什么是vue.nextTick()
這篇文章主要介紹了一文學(xué)會(huì)什么是vue.nextTick(),下面文章圍繞主題的相關(guān)資料展開(kāi)詳細(xì)內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-04-04

