这是我的代码:
$(".trigger").click(function () {
$('.toggleContainer').slideToggle();
$('.trigger').text($(this).text() == 'Show more' ? 'Hide' : 'Show more');
$('.trigger').toggleClass('trigger_alt')
$('html, body').animate({
scrollTop: $(".trigger").offset().top
}, 800);
});
如何滚动回页面或我的情况下的另一个标签 另一个在.trigger类之上的类...让我们说 我的.header,例如slideToggle回调 (当您单击以关闭切换toggleContainer时)。 我知道第二个滚动应该在回调中,但如果我这样做:
$('html, body').animate({
scrollTop: $(".trigger").offset().top
}, 800, function () {
$('html, body').animate({
scrollTop: $(".header").offset().top
}, 800);
});
它动画为.trigger并且不会停止动画到.header
答案 0 :(得分:0)
第二个动画不应该在回调中。如果您使用click事件来打开和关闭函数,则必须使用某种方法来检查切换的状态,然后执行一个动画或另一个动画,而不是两个动画。另一个选项是将整个函数拆分为两个单独的函数,并使用toggle事件而不是.trigger元素上的click事件。
答案 1 :(得分:0)
var trigger = $('.trigger');
var container = $('.container');
trigger.toggle(
function () {
container.slideDown();
trigger.text($(this).text() == 'Learn more' ? 'Hide' : 'Learn more');
$('html, body').animate({
scrollTop: $(".trigger").offset().top
}, 800);
}, function () {
container.slideUp();
trigger.text($(this).text() == 'Learn more' ? 'Hide' : 'Learn more');
$('html, body').animate({
scrollTop: $(".header").offset().top - 20
}, 800);
});
好的我回答了我的问题。如果有人有更好的解决方案,请在此处发布。