getElementByTagName(a) 用于自动滚动
getElementByTagName(a) for autoscroll
我现在拥有的是:
var a = document.getElementsByTagName('a');
我用它来获取所有带有 'a' 的元素,当我滚动它时它会自动滚动到下一个 'a' 元素。
问题是我也使用 links(使用 a href=""
)所以有时它会滚动到 link 而不是 <a name="name"></a>
。他们无论如何要解决这个问题吗?喜欢:
var a = document.getElementsByTagName('a name=""');
(这个不行)
如果需要完整代码,我会在下面添加,但可能不需要。
(function () {
var delay = false;
$(document).on('mousewheel DOMMouseScroll', function (event) {
event.preventDefault();
if (delay) return;
delay = true;
setTimeout(function () {
delay = false
}, 800);
var wd = event.originalEvent.wheelDelta || -event.originalEvent.detail;
var a = document.getElementsByTagName('a');
if (wd < 0) {
for (var i = 0; i < a.length; i++) {
var t = a[i].getClientRects()[0].top;
if (t >= window.innerHeight * 0.95) break;
}
}
else {
for (var i = a.length - 1; i >= 0; i--) {
var t = a[i].getClientRects()[0].top;
if (t < -window.innerHeight * 0.5) break;
}
}
$('html,body').animate({
scrollTop: a[i].offsetTop
}, 800);
});
})();
document.querySelectorAll("a[name='examplename']");
找个空的
document.querySelectorAll("a[name='']");
您可以为 HTML 5 种支持的浏览器使用 QuerySelector。您可以从 http://caniuse.com/#feat=queryselector
查看其支持情况
document.querySelectorAll("a[name='<setname>']");
旧版浏览器使用 Jquery
$("a[name='<setname>']")
如果您不想设置特定名称,请将其留空。 JQuery 和 HTML 的选择器相同 5 querySelector
document.querySelectorAll("a[name]");
或
$("a[name]")
我现在拥有的是:
var a = document.getElementsByTagName('a');
我用它来获取所有带有 'a' 的元素,当我滚动它时它会自动滚动到下一个 'a' 元素。
问题是我也使用 links(使用 a href=""
)所以有时它会滚动到 link 而不是 <a name="name"></a>
。他们无论如何要解决这个问题吗?喜欢:
var a = document.getElementsByTagName('a name=""');
(这个不行)
如果需要完整代码,我会在下面添加,但可能不需要。
(function () {
var delay = false;
$(document).on('mousewheel DOMMouseScroll', function (event) {
event.preventDefault();
if (delay) return;
delay = true;
setTimeout(function () {
delay = false
}, 800);
var wd = event.originalEvent.wheelDelta || -event.originalEvent.detail;
var a = document.getElementsByTagName('a');
if (wd < 0) {
for (var i = 0; i < a.length; i++) {
var t = a[i].getClientRects()[0].top;
if (t >= window.innerHeight * 0.95) break;
}
}
else {
for (var i = a.length - 1; i >= 0; i--) {
var t = a[i].getClientRects()[0].top;
if (t < -window.innerHeight * 0.5) break;
}
}
$('html,body').animate({
scrollTop: a[i].offsetTop
}, 800);
});
})();
document.querySelectorAll("a[name='examplename']");
找个空的
document.querySelectorAll("a[name='']");
您可以为 HTML 5 种支持的浏览器使用 QuerySelector。您可以从 http://caniuse.com/#feat=queryselector
查看其支持情况document.querySelectorAll("a[name='<setname>']");
旧版浏览器使用 Jquery
$("a[name='<setname>']")
如果您不想设置特定名称,请将其留空。 JQuery 和 HTML 的选择器相同 5 querySelector
document.querySelectorAll("a[name]");
或
$("a[name]")