Vue如何動態(tài)給id設置style樣式
vue動態(tài)給id設置style樣式
背景
有個需求需要動態(tài)控制數(shù)字的顏色,監(jiān)聽之,然后設置對應顏色
代碼
1、監(jiān)聽字段
watch:{
? ? taskNum(to,do){
? ? ? ? if(to!=do)
? ? ? ? ? ? this.check();
? ? ? ? }
? ? },
methods:{
? ? check(){
? ? },
}2、動態(tài)計算,達到條件后改變字體顏色
var d = document.getElementById("taskNum");
d.style.color="#808080";
d.style.width="20%";
d.style.left= "35%";vue中動態(tài)改變樣式
以往寫html代碼的時候是將組件綁定點擊函數(shù)然后通過ducument拿到css改變樣式,也可以在js代碼中用document拿別的class或id的樣式。
我們以用document實現(xiàn)彈窗效果為例
<!-- 彈窗 -->
<div class="popbar" id="popbar">
<h3 class="notice">來啦</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的值以實現(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;
}
}這里我們通過改變margin-top的值來實現(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)
}此處實現(xiàn)了一秒的動畫效果(從-80到10),在兩秒后回到-80的位置


彈窗效果展示
右下角的鎖同樣可以如此實現(xiàn),除了改變還可以inner html來實現(xiàn)新加樣式
但在vue中使用document似乎有點行不通
那在vue中應該如何實現(xiàn)呢?
- 是可以通過綁定class樣式(或者style)在method中寫函數(shù)
- 或者同樣使用document來實現(xiàn)(這里涉及到全局的函數(shù),windows操作等,等弄明白了再更新)
- 還有就是同樣在method中寫的 類似document 的方法:就是用 this.$refs函數(shù),將組件綁定上ref值后拿style樣式
等我后邊更新吧~
ok,這邊更新一下
vue中改變樣式可以使用ref邦定標簽,然后通過this.refs.(ref值).style.(元素屬性,同document語法)
<div ref="test" style="background=red"> </div>
在函數(shù)中
method{
this.refs.test.style.background="blue";
}總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue使用mpegts.js實現(xiàn)播放flv的直播視頻流
這篇文章主要為大家詳細介紹了vue如何使用mpegts.js實現(xiàn)播放flv的直播視頻流,文中的示例代碼講解詳細,有需要的小伙伴可以參考一下2024-01-01
Vue執(zhí)行方法,方法獲取data值,設置data值,方法傳值操作
這篇文章主要介紹了Vue執(zhí)行方法,方法獲取data值,設置data值,方法傳值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Vue查詢數(shù)據(jù)并通過bootstarp?table渲染數(shù)據(jù)
這篇文章主要為大家介紹了Vue查詢數(shù)據(jù)并通過bootstarp?table渲染數(shù)據(jù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04
Vue Element前端應用開發(fā)之開發(fā)環(huán)境的準備工作
這篇文章主要介紹了Vue Element前端應用開發(fā)之開發(fā)環(huán)境的準備工作,對Vue感興趣的同學,可以來學習一下2021-05-05

