Vue如何動(dòng)態(tài)給id設(shè)置style樣式
vue動(dòng)態(tài)給id設(shè)置style樣式
背景
有個(gè)需求需要?jiǎng)討B(tài)控制數(shù)字的顏色,監(jiān)聽之,然后設(shè)置對(duì)應(yīng)顏色
代碼
1、監(jiān)聽字段
watch:{
? ? taskNum(to,do){
? ? ? ? if(to!=do)
? ? ? ? ? ? this.check();
? ? ? ? }
? ? },
methods:{
? ? check(){
? ? },
}2、動(dòng)態(tài)計(jì)算,達(dá)到條件后改變字體顏色
var d = document.getElementById("taskNum");
d.style.color="#808080";
d.style.width="20%";
d.style.left= "35%";vue中動(dòng)態(tài)改變樣式
以往寫html代碼的時(shí)候是將組件綁定點(diǎn)擊函數(shù)然后通過(guò)ducument拿到css改變樣式,也可以在js代碼中用document拿別的class或id的樣式。
我們以用document實(shí)現(xiàn)彈窗效果為例
<!-- 彈窗 -->
<div class="popbar" id="popbar">
<h3 class="notice">來(lái)啦</h3>
</div>.popbar{
position: absolute;
width: 340px;
height: 60px;
box-shadow: 0 0 5px 1px #464647;
border-radius: 15px;
border: none;
margin-right: 10px;
//改變margin-top的值以實(shí)現(xiàn)彈窗效果
margin-top: -80px;//end 10px
margin-left: 10px;
background-color: rgba(100, 235, 102, 0.6);
transition: all 0.5s;
.notice{
margin-top: 11.5px;
text-align: center;
font-size: 25px;
color: aliceblue;
}
}這里我們通過(guò)改變margin-top的值來(lái)實(shí)現(xiàn)彈窗效果,js代碼如下
function lock(){
document.getElementById("barlock").style.transform = "scale(1)"
document.getElementById("popbar").style.marginTop= "10px"
setTimeout(() => {
document.getElementById("popbar").style.marginTop= "-80px"
},2000)
}此處實(shí)現(xiàn)了一秒的動(dòng)畫效果(從-80到10),在兩秒后回到-80的位置


彈窗效果展示
右下角的鎖同樣可以如此實(shí)現(xiàn),除了改變還可以inner html來(lái)實(shí)現(xiàn)新加樣式
但在vue中使用document似乎有點(diǎn)行不通
那在vue中應(yīng)該如何實(shí)現(xiàn)呢?
- 是可以通過(guò)綁定class樣式(或者style)在method中寫函數(shù)
- 或者同樣使用document來(lái)實(shí)現(xiàn)(這里涉及到全局的函數(shù),windows操作等,等弄明白了再更新)
- 還有就是同樣在method中寫的 類似document 的方法:就是用 this.$refs函數(shù),將組件綁定上ref值后拿style樣式
等我后邊更新吧~
ok,這邊更新一下
vue中改變樣式可以使用ref邦定標(biāo)簽,然后通過(guò)this.refs.(ref值).style.(元素屬性,同document語(yǔ)法)
<div ref="test" style="background=red"> </div>
在函數(shù)中
method{
this.refs.test.style.background="blue";
}總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue3修改link標(biāo)簽?zāi)J(rèn)icon無(wú)效問(wèn)題詳解
這篇文章主要介紹了vue3修改link標(biāo)簽?zāi)J(rèn)icon無(wú)效問(wèn)題詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Vite中使用Ant?Design?Vue3.x框架教程示例
這篇文章主要為大家介紹了Vite中使用Ant?Design?Vue3.x框架教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Vue3快速實(shí)現(xiàn)文件上傳OSS的方法詳解
這篇文章給大家介紹了Vue3快速實(shí)現(xiàn)文件上傳OSS的方法,上傳文件可以說(shuō)是經(jīng)典的需求了,在后臺(tái)管理項(xiàng)目中隨處可見,一般是由前端進(jìn)行文件上傳,然后再由后端去處理,本文旨在實(shí)現(xiàn)上傳功能,不考慮額外的功能(如文件尺寸限制),感興趣的朋友可以參考下2024-01-01
基于Vue實(shí)現(xiàn)自定義組件的方式引入圖標(biāo)
在vue項(xiàng)目中我們經(jīng)常遇到圖標(biāo),下面這篇文章主要給大家介紹了關(guān)于如何基于Vue實(shí)現(xiàn)自定義組件的方式引入圖標(biāo)的相關(guān)資料,文章通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-07-07
vue中el-tree?橫向滾動(dòng)條的實(shí)現(xiàn)
本文詳細(xì)介紹了在Vue框架中使用el-tree組件創(chuàng)建橫向滾動(dòng)條的方法,通過(guò)代碼示例和步驟說(shuō)明,幫助開發(fā)者理解和實(shí)現(xiàn)橫向滾動(dòng)功能,感興趣的可以了解一下2024-09-09

