gpt4 book ai didi

javascript - jQuery scrollTop 如果 URL 有散列

转载 作者:行者123 更新时间:2023-11-30 13:27:51 24 4
gpt4 key购买 nike

我编写了这个简单的插件,它可以平滑滚动浏览器窗口并将散列链接添加到 URL。

$.fn.extend({
scrollWindow: function(options) {
var defaults = { duration: "slow", easing : "swing" }
var options = $.extend(defaults, options);
return this.each(function() {
$(this).click(function(e) {
var target = $(this).attr('href');
$('html,body').animate({scrollTop: $(target).offset().top}, options.duration, options.easing, function() {
location.hash = target;
});
e.preventDefault();
});

});
}
});

如果 DOM 中存在 URL 中的散列,我如何扩展此插件以便它自动向下滚动到页面部分?

通过使用 window.location.hash,我大致了解它是如何工作的,尽管我不清楚将它添加到插件中的最佳位置。

最佳答案

将函数存储在一个单独的变量中,如果散列存在则调用该函数。我已经实现了您的请求,以便每次调用 $().scrollWindow 时都使用当前的 location.hash。其他实现遵循相同的原则。

$.fn.extend({
scrollWindow: function(options) {
var defaults = { duration: "slow", easing : "swing" }
var options = $.extend(defaults, options);
var goToHash = function(target){
$('html,body').animate({scrollTop: $(target).offset().top}, options.duration, options.easing, function() {
location.hash = target;
});
};
if(location.hash.length > 1) goToHash(location.hash);
return this.each(function() {
$(this).click(function(e) {
//Remove junk before the hash if the hash exists:
var target = $(this).attr('href').replace('^([^#]+)#','#');
goToHash(target);
e.preventDefault();
});

});
}
});

关于javascript - jQuery scrollTop 如果 URL 有散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7866629/

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