javascript - 如何在单击按钮时转换 div
问题描述
如何转换/动画我的 div?我只是想做一个简单的动画,比如下拉菜单,但不知道怎么做:(谢谢你的帮助!
这是我正在使用的代码:
function test1(button) {
var x = $('#showhide');
$(button).find('i').remove();
if ($(button).text().trim() == 'Test') {
$(button).html($('<i/>',{class:'fas fa-angle-down'})).append(' Test (Hide)');
x.fadeIn();
}
else {
$(button).html($('<i/>',{class:'fas fa-angle-right'})).append(' Test');
x.fadeOut();
}
}
.button {
background-color: #b5b5b5;
margin-bottom: 10px;
cursor:pointer;
border: none;
color: #242424;
padding: 0px;
width: 160px;
height: 50px;
line-height: 50px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
transition-duration: 0.4s;
}
.button1 {
background-color: #b5b5b5;
color: #242424;
}
.button1:hover {
background-color: #9c9c9c;
color: #242424;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://kit.fontawesome.com/0254f919d5.js" crossorigin="anonymous"></script>
<button id="btntest1" onclick="test1(this); if(document.getElementById('test1') .style.display=='none') {document.getElementById('test1') .style.display=''}else{document.getElementById('test1') .style.display='none'}" title="Clique pour en voir +" class="button button1">
<i class="fas fa-angle-right"></i> Test
</button><br>
<div id="test1" style="display:none; background-color: #b5b5b5; padding: 15px; color: #242424">
<h3>Lorem :</h3>
<ul><li>Ipsum</li><li>dolor</li><li>sit<br></li></ul>
<h3>Nulla :</h3>
<ul><li>id</li><li>mi</li><li>sagittis<br></li></ul>
</div>
我知道这有点乱,但我刚刚开始学习 HTML、CSS 和 Javascript,所以请不要无礼 :( (另外我英语说得不太好,抱歉)
解决方案
由于您已经在使用 jQuery,您可以使用slideToggle函数。
function test1(button) {
$("#test1").slideToggle("slow");
var x = $("#showhide");
$(button).find("i").remove();
if ($(button).text().trim() == "Test") {
$(button)
.html($("<i/>", {
class: "fas fa-angle-down"
}))
.append(" Test (Hide)");
x.fadeIn();
} else {
$(button)
.html($("<i/>", {
class: "fas fa-angle-right"
}))
.append(" Test");
x.fadeOut();
}
}
.button {
background-color: #b5b5b5;
margin-bottom: 10px;
cursor: pointer;
border: none;
color: #242424;
padding: 0px;
width: 160px;
height: 50px;
line-height: 50px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
transition-duration: 0.4s;
}
.button1 {
background-color: #b5b5b5;
color: #242424;
}
.button1:hover {
background-color: #9c9c9c;
color: #242424;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://kit.fontawesome.com/0254f919d5.js" crossorigin="anonymous"></script>
<button id="btntest1" onclick="test1(this);" title="Clique pour en voir +" class="button button1">
<i class="fas fa-angle-right"></i> Test</button
><br />
<div
id="test1"
style="
display: none;
background-color: #b5b5b5;
padding: 15px;
color: #242424;
"
>
<h3>Lorem :</h3>
<ul>
<li>Ipsum</li>
<li>dolor</li>
<li>sit<br /></li>
</ul>
<h3>Nulla :</h3>
<ul>
<li>id</li>
<li>mi</li>
<li>sagittis<br /></li>
</ul>
</div>
推荐阅读
- sql - 如何使用 Pgadmin 或 Postgresql 查询查找数据上传日期
- maven - 神器部署问题
- google-apps-script - 谷歌脚本中 array.indexOf() 的正则表达式匹配问题
- reactjs - 如何在反应js功能组件中停止多个API请求
- tensorflow - 相同代码中 TensorFlow 2.3.0 和 1.15.0 中的进度输出之间的差异不明确
- typescript - 如何在现有堆栈 AWS Cloudformation 中创建新实例
- python - 我想打印硬拷贝表格和工作人员,例如
- python - python logger在钩子中两次写入字符串
- http - 如何在 Go 中使用 httptrace 跟踪 http.Client
- python - 带有条件的列的 Python Pandas 计算