gpt4 book ai didi

javascript - 添加和删​​除用于切换选项卡的类

转载 作者:行者123 更新时间:2023-11-28 02:19:30 24 4
gpt4 key购买 nike

我正在使用 jQuery 设计一个选项卡,通过幻灯片动画在每个选项卡之间切换。我将是第一个承认我仍在学习 jQuery 的人,但我遇到了跳跃而不是流畅的动画然后隐藏两个选项卡的问题。延迟的原因是添加过渡,因此当它向上滑动和第二层下降时它是一个平滑的运动。按钮事件类模仿漂亮外观的时间。

我在这里...

jQuery(document).ready(function(){
jQuery('.schedule-tab-links a[href*="#day2"]').click(function(){
jQuery('.schedule-tab-active').slideToggle('450');
jQuery('#day2').delay('450').slideToggle('450');
jQuery('.button-active').delay('450').removeClass('button-active');
jQuery('.schedule-tab-links a[href*="#day2"]').delay('450').addClass('button-active');
jQuery('.schedule-tab-active').delay('450').removeClass('schedule-tab-active');
jQuery('#day2').delay('450').addClass('schedule-tab-active');
});
});

完整代码可以看here

最佳答案

.delay(450).addClass()/.removeClass() 没有影响。

它仅用于动画。所以你必须为这些使用 .setTimeout()

然后,您希望只有在该选项卡尚未激活时才会出现这种效果,对吧?否则,它会毫无意义地上下滑动。

这里更新了:

jQuery(document).ready(function(){
jQuery('.schedule-tab-links a[href*="#day2"]').click(function(){
if(!$(this).hasClass("button-active")){
jQuery('.schedule-tab-active').slideToggle('450');
jQuery('#day2').delay('450').slideToggle('450');
setTimeout(function(){
jQuery('.button-active').removeClass('button-active');
jQuery('.schedule-tab-links a[href*="#day2"]').addClass('button-active');
jQuery('.schedule-tab-active').removeClass('schedule-tab-active');
jQuery('#day2').addClass('schedule-tab-active');
},450);
}
});
});
.schedule-tab-links {
margin: 0;
padding: 0;
list-style-type: none;
margin-top: 1em;
}
.schedule-tab-links li {
display: inline-block;
}
.schedule-tab-links li a {
padding: .5em;
background: #e8e8e8;
}
.schedule-tab-links li .button-active {
background-color: #999;
}
.schedule-tabs {
padding: 2em;
margin-top: 1em;
display: none;
}
.schedule-tabs.schedule-tab-active {
display: block;
}
#day1 { background-color: green; }
#day2 { background-color: grey; }
#day3 { background-color: purple; }
#day4 { background-color: orange; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<ul class="schedule-tab-links">
<li><a href="#day1" class="button-active">Day 1</a></li>
<li><a href="#day2">Day 2</a></li>
<li><a href="#day3">Day 3</a></li>
<li><a href="#day4">Day 4</a></li>
</ul>
<div id="day1" class="schedule-tabs schedule-tab-active">Day 1 content goes here</div>
<div id="day2" class="schedule-tabs">Day 2 content goes here</div>
<div id="day3" class="schedule-tabs">Day 3 content goes here</div>
<div id="day4" class="schedule-tabs">Day 4 content goes here</div>
</body>
</html>

然后,我建议您也为这些选项卡使用一个类...以便稍微更改该点击处理程序...而不是将其复制 4 次或更多次。

$(this) 的用法是一个提示...
;)

关于javascript - 添加和删​​除用于切换选项卡的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48291886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com