您好,登錄后才能下訂單哦!
今天小編給大家分享一下react如何實現點擊時改變樣式的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
react實現點擊時改變樣式的方法:1、通過setState中的回調函數實現點擊切換狀態時所執行的功能;2、通過“<Button className={["right-btn", this.state.selected ? "active":null].join(' ')} onClick={this.handleClick.bind(this)}”動態添加className。
React點擊/hover修改CSS樣式
(1)點擊修改樣式
方法一:(typescript寫法)
type state = {
selected: boolean;
};
class Measurement extends Component<{}, state> {
constructor(props:any) {
super(props);
this.state = { selected: false };
}
handleClick = (e:any) => {
this.setState({ selected: !this.state.selected }, () => {
if(!this.state.selected){
this.clearAll();
}
});
}
private rightBtnStyle: CSSProperties = {
background:"url(/assets/images/3.png) no-repeat center",
border: "none",
color: "white"
};
private rightBtnStyle2: CSSProperties = {
background:"url(/assets/images/1.png) no-repeat center",
border: "none",
color: "white"
};
//省略具體功能
render() {
var currentstyle;
if(this.state.selected){
currentstyle=this.rightBtnStyle2;
}
else{
currentstyle=this.rightBtnStyle;
}
return(
<div className="tool-widget">
<Popover placement="left" content={this.content} trigger="click">
<Button className="right-btn" style={currentstyle} onClick={this.handleClick.bind(this)}></Button>
</Popover>
</div>
);
}
};
PS: 此處點擊切換狀態時所執行的功能可以通過setState中的回調函數實現。
方法二:(動態添加className)
上述render換成如下
render() {
return (
<div className="tool-widget" id="Measurement">
<Popover placement="left" content={this.content} trigger="click">
<Button className={["right-btn", this.state.selected ? "active":null].join(' ')} onClick={this.handleClick.bind(this)}></Button>
</Popover>
</div>
);
}
對應的css文件添加:
#Measurement {
.right-btn{
background:url(./images/3.png) no-repeat center;
border:none;
color: white;
width:100%;
height: 100%
}
.right-btn.active{
background:url(./images/1.png) no-repeat center;
}
}
以上就是“react如何實現點擊時改變樣式”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。