如何延迟合并两个代码?
How to integreate two codes with delay?
我有这段代码可以用锚点动画我的页面
$('a[href*=#]').click(function(){
$('html, body').animate({
scrollTop: $( $.attr(this, 'href') ).offset().top
}, 500);
return false;
});
而这个其他代码在 link 被预置时进行延迟
function delay (URL) {
setTimeout( function() { window.location = URL }, 500 );
}
所以当我有一个 link 和 <a href="#demo">demo</a>
时,第一个代码运行完美但是当我像这样添加延迟时 <a onclick="delay ('#contentexpand-1')">demo</a>
第一个代码不起作用只是跳转到主播.
请帮帮我!提前致谢:)
问题是您的动画附加到 <a>
标签。当您简单地设置 window 位置时,不会触发它。解决方案是通过两种方式触发动画:
// Smoothly scroll to a tag defined by <a name="anchorName">
function scrollTo (anchorName) {
$('html, body').animate( {
scrollTop: $( "a[name=" + anchorName + "]" ).offset().top
}, 500);
}
// Make all # anchors scroll smoothly to their targets
$(document).ready(function(){
$('a[href*=#]').click(function() {
var anchorName = $(this).attr('href').substr(1); // strip off #
scrollTo(anchorName);
return false;
});
});
// Scroll to an anchor after half a second
function delay (anchorName) {
setTimeout( function() { scrollTo(anchorName); }, 500 );
}
我不相信你找到偏移量的代码是正确的,所以我稍微调整了一下,让它更清楚。
您要滚动到的标签定义如下:
<a name="demo">demo</a>
那么您可以选择以下任一行为:
<a href="#demo">scroll smoothly to demo immediately</a>
<a onclick="delay ('demo')">scroll smoothly to demo after half second delay</a>
我有这段代码可以用锚点动画我的页面
$('a[href*=#]').click(function(){
$('html, body').animate({
scrollTop: $( $.attr(this, 'href') ).offset().top
}, 500);
return false;
});
而这个其他代码在 link 被预置时进行延迟
function delay (URL) {
setTimeout( function() { window.location = URL }, 500 );
}
所以当我有一个 link 和 <a href="#demo">demo</a>
时,第一个代码运行完美但是当我像这样添加延迟时 <a onclick="delay ('#contentexpand-1')">demo</a>
第一个代码不起作用只是跳转到主播.
请帮帮我!提前致谢:)
问题是您的动画附加到 <a>
标签。当您简单地设置 window 位置时,不会触发它。解决方案是通过两种方式触发动画:
// Smoothly scroll to a tag defined by <a name="anchorName">
function scrollTo (anchorName) {
$('html, body').animate( {
scrollTop: $( "a[name=" + anchorName + "]" ).offset().top
}, 500);
}
// Make all # anchors scroll smoothly to their targets
$(document).ready(function(){
$('a[href*=#]').click(function() {
var anchorName = $(this).attr('href').substr(1); // strip off #
scrollTo(anchorName);
return false;
});
});
// Scroll to an anchor after half a second
function delay (anchorName) {
setTimeout( function() { scrollTo(anchorName); }, 500 );
}
我不相信你找到偏移量的代码是正确的,所以我稍微调整了一下,让它更清楚。
您要滚动到的标签定义如下:
<a name="demo">demo</a>
那么您可以选择以下任一行为:
<a href="#demo">scroll smoothly to demo immediately</a>
<a onclick="delay ('demo')">scroll smoothly to demo after half second delay</a>