【发布时间】:2021-04-29 01:13:32
【问题描述】:
我想通过 onClick 事件平滑地调整 DIV 的大小。但是过渡不起作用。 onClick 只是改变样式,没有动画。
App.js
import React, { useState } from 'react'
import './App.scss';
function App() {
const [clicked, setClicked] = useState(-1)
return (
<div
className={clicked === -1 ? "app" : "app__clicked"}
onClick={() => setClicked(0)}>
div clicked {clicked}
</div>
);
}
export default App;
App.scss
.app {
background-color: red;
transition: width 3s;
&__clicked {
background-color: blue;
width: 100px;
}
}
我认为我在使用 SCSS 时做错了什么。
【问题讨论】:
-
我在你的 scss 中的任何地方都看不到过渡或动画
-
过渡:宽度3s;
-
它不在你的 scss 中,所以不算数。
-
你没有在 App.scss 中看到它吗? .app { 背景颜色:红色;过渡:宽度 3s; &__clicked { 背景颜色:蓝色;宽度:100px; } }
-
您需要在 .app 上设置一个宽度,例如 100% 或自动以外的其他值。见这里:codesandbox.io/s/xenodochial-water-lyogy
标签: javascript css reactjs sass