我如何修改我的javascript以减少滚动60px



我有一个iFrame,它使用一些js来启用在Advanced iFrame中滚动,该iFrame可以自动调整帧的大小。

我的问题是,虽然下面的代码运行良好,但它滚动得太远了。它没有考虑到我的菜单栏是60像素高。

问题可以在这里看到https://www.rosentreter.website/family-tree/选择一个字母后。

如何修改代码top.offset以将其减少60px?我什么都试过了。。。

使用库jquery-1.7.2.min,我的代码如下:

$(function() {var iframeOffset = $("#gramps", window.parent.document).offset();
$("a").each(function () {
var link = $(this);
var href = link.attr("href");
if (href && href[0] == "#") {
var name = href.substring(1)
$(this).click(function () {
var nameElement = $("[name='" + name + "']");
var idElement = $("#" + name);
var element = null;
if (nameElement.length > 0) {
element = nameElement;
} else if (idElement.length > 0) {
element = idElement;
}
if (element) {
var offset = element.offset();
window.parent.scrollTo(offset.left, offset.top + iframeOffset.top);
}
return false;
});
}
});
});

如果我更改了这部分代码,你的速度会很好地运行

window.parent.scrollTo(offset.left, offset.top + iframeOffset.top-60);


全码

$(function() {var iframeOffset = $("#gramps", window.parent.document).offset();
$("a").each(function () {
var link = $(this);
var href = link.attr("href");
if (href && href[0] == "#") {
var name = href.substring(1);
$(this).click(function () {
var nameElement = $("[name='" + name + "']");
var idElement = $("#" + name);
var element = null;
if (nameElement.length > 0) {
element = nameElement;
} else if (idElement.length > 0) {
element = idElement;
}
if (element) {
var offset = element.offset();
window.parent.scrollTo(offset.left, offset.top + iframeOffset.top-60);//Changed!!
}
return false;
});
}
});
});

最新更新