我有一个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;
});
}
});
});