我使用以下代码专注于点击时的锚点
$('#mydiv').click(function() {
location.href="#blah";
});
它确实专注于那个锚点,但问题是锚点的一部分朝向屏幕顶部。有没有办法让我把它放在中间? 感谢
答案 0 :(得分:2)
我认为你只需得到锚定位置,窗口大小。然后您可以滚动到所需的位置。
$('#mydiv').click(function (e) {
e.preventDefault(); // to prevent default anchor behaviour
var target_offset_top = $("#blah").offset().top;
var window_height = document.body.clientHeight;
$('html,body').animate({scrollTop: target_offset_top - window_height/2});
});
答案 1 :(得分:2)
以下是我过去所做的事情:
基本上,您可以测量窗口的高度和div的位置,并滚动到将div放在屏幕中心的点。
$('#mydiv').click(function(e) { e.preventDefault(); location.href="#blah"; var windowHeight = $(window).height(); var elementHeight = $("#blah").height(); var elementPosition = $("#blah").position(); var elementTop = elementPosition.top; var toScroll = (windowHeight / 2) - (elementHeight / 2); window.scroll(0,(elementTop - toScroll)); });