Javascript 从锚链到达后切换div
我的目标是创建锚定链接,平滑地滚动到它的目的地,在到达它之后,切换类以打开accordion 我很难取得工作成果。滚动代码如下:Javascript 从锚链到达后切换div,javascript,jquery,toggle,anchor-scroll,Javascript,Jquery,Toggle,Anchor Scroll,我的目标是创建锚定链接,平滑地滚动到它的目的地,在到达它之后,切换类以打开accordion 我很难取得工作成果。滚动代码如下: var $root = $('html, body'); $('.calendar a').click(function() { $root.animate({ scrollTop: $( $.attr(this, 'href') ).offset().top }, 500); return false; }); 我的url中没有哈希 如何在此滚动代码中包含
var $root = $('html, body');
$('.calendar a').click(function() {
$root.animate({
scrollTop: $( $.attr(this, 'href') ).offset().top
}, 500);
return false;
});
我的url中没有哈希
如何在此滚动代码中包含切换
谢谢 您可以使用jQuery承诺并始终等待动画完成。这比动画回调效果更好,如果您已经处于最终位置,动画回调不会触发 JSFIDLE e、 g 对于comment中提供的特定网站,您希望使用目标元素下的toggle content切换元素: e、 g
您只需使用jQuery承诺并始终等待动画完成即可。这比动画回调效果更好,如果您已经处于最终位置,动画回调不会触发 JSFIDLE e、 g 对于comment中提供的特定网站,您希望使用目标元素下的toggle content切换元素: e、 g
在动画的末尾有一个完整的函数回调,如下所示:
var $root = $('html, body');
$('.calendar a').click(function() {
$root.animate({
scrollTop: $( $.attr(this, 'href') ).offset().top
}, 500, function() {
//DO YOUR TOGGLE HERE
$('#target').toggleClass('myClass')
});
return false;
});
在动画的末尾有一个完整的函数回调,如下所示:
var $root = $('html, body');
$('.calendar a').click(function() {
$root.animate({
scrollTop: $( $.attr(this, 'href') ).offset().top
}, 500, function() {
//DO YOUR TOGGLE HERE
$('#target').toggleClass('myClass')
});
return false;
});
我的url中没有哈希???请提供一个HTML示例,以获取有关以下问题的帮助:对不起,此代码实际上会生成url哈希。但无论如何这都是无关紧要的。如果没有一个关于元素和类被切换的例子,任何例子都会包含猜测。请提供示例HTML。这有助于。。。哪个手风琴应该切换?添加了更新以符合显示的要求。我的url中没有哈希???请提供一个HTML示例,以获取有关以下问题的帮助:对不起,此代码实际上会生成url哈希。但无论如何这都是无关紧要的。如果没有一个关于元素和类被切换的例子,任何例子都会包含猜测。请提供示例HTML。这有助于。。。哪个手风琴应该切换?添加了更新以匹配所示的要求。在我的浏览器中是这样的,但您的代码与fiddle中的CSS类错误。它总是发射,但发射两次。因此,海报可能应该使用.removeclass。为什么您的示例会触发两次?我知道它是my JS,但在您的代码设置中,事件没有任何视觉效果。这件事对我来说总是有两次。FF 39.0.3也采用镀铬。我的只有一次,因为它应该,但试图看看为什么你得到两个事件。你能做你自己的JSFIDLE吗?大家,不要反对我的答案,@TrueBlueAussie有一个更好的答案:它只在我的浏览器中触发一次,但你的代码与小提琴中的CSS类错误。它总是发射,但发射两次。因此,海报可能应该使用.removeclass。为什么您的示例会触发两次?我知道它是my JS,但在您的代码设置中,事件没有任何视觉效果。这件事对我来说总是有两次。FF 39.0.3也采用镀铬。我的只有一次,因为它应该,但试图看看为什么你得到两个事件。你能做你自己的JSFIDLE吗?人们,不要反对我的答案,@TrueBlueAustie有一个更好的答案:只开火一次
var $root = $('html, body');
$('.calendar a').click(function() {
$root.animate({
scrollTop: $( $.attr(this, 'href') ).offset().top
}, 500, function() {
//DO YOUR TOGGLE HERE
$('#target').toggleClass('myClass')
});
return false;
});