Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从锚链到达后切换div_Javascript_Jquery_Toggle_Anchor Scroll - Fatal编程技术网

Javascript 从锚链到达后切换div

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中没有哈希 如何在此滚动代码中包含

我的目标是创建锚定链接,平滑地滚动到它的目的地,在到达它之后,切换类以打开accordion

我很难取得工作成果。滚动代码如下:

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;
});