javascript - 用未知高度之间的 css 转换替换容器内容
问题描述
我想动态替换模态弹出窗口的内容,并在旧尺寸和新尺寸之间进行平滑过渡。
我以为我可以使用 CSS 过渡来做到这一点,但是到目前为止我还没有成功。
我的设置类似于这里的 JS fiddle,我有一个容器,我用不同的宽度和高度换出内部内容。
http://jsfiddle.net/Lsf76eby/24/
html
<input type="button" value="press me" onclick="changeDiv()" />
<div id="container">
<div id="a">
</div>
</div>
js
function changeDiv(){
var b = $('<div id="b">');
$('#container').empty().append(b);
}
css
#container{
transition: 2s;
height: auto;
}
#a {
height: 200px;
width: 200px;
background:blue;
}
#b {
height: 400px;
width: 300px;
background:red;
}
解决方案
我在这里做了一些改动。您可以从https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions了解更多相关信息
我添加了一个新的 javascript 函数,添加了一个 css 属性,并稍微重新组织了 css
- 您必须使用
transition-property
- 一个重大变化是我的 javascript 函数(改编自 MDN)在单个 div 上切换类,而不是切换 div 本身。
希望这可以帮助!
html
<div id="container">
<div id="target" class="a">
</div>
</div>
javascript
//pretty much straight from the MDN doc...
function updateTransition() {
var el = document.querySelector("div.a");
if (el) {
el.className = "b";
} else {
el = document.querySelector("div.b");
el.className = "a";
}
return el;
}
css
#container{
height: auto;
}
#target{
transition: 2s;
transition-property: width height background-color;
}
.a {
height: 200px;
width: 200px;
background-color:blue;
}
.b {
height: 400px;
width: 300px;
background-color:red;
}
推荐阅读
- java - Android中的“smoothScrollToPosition”速度可以减慢吗?
- gradle - 密钥库自定义路径的 Gradlew 问题
- php - 循环在 laravel $request 中收到的所有值
- ruby - 根据生成的随机数在 Rspec 中测试随机天气方法功能
- javascript - 如何使 javascript 一次加载并在所有网页上运行
- javascript - 如何限制 .exe.png 或将 .exe 文件重命名为 png 文件以在角度 8 中上传
- android - 在android中超时后如何关闭BiometricPromptDialog?
- android-studio - android studio 创建一个应用程序并生成错误
- jenkins - “结帐到匹配的本地分支机构”在“Github 组织”詹金斯工作中不起作用
- c# - 在 ASP.NET Core 3 中使用 System.Text.JSON:决定端点上漂亮的 JSON 输出?