如何滚动到某个div onclick?

时间:2013-10-13 05:58:49

标签: javascript html asp.net vb.net

我有这个功能

    function first_scroll() {
        document.getElementById('insert').scrollIntoView();
    }

和此按钮

Button ID="finish" runat="server" Text="Finalize" OnClientClick="first_scroll()"

此按钮运行一些代码,我希望在运行此代码后滚动页面。现在,它向下滚动到特定div不到一秒钟,然后在回发后,它再次从顶部开始。

要解决此问题,我尝试使用

<% Page MaintainScrollPositionOnPostback="true" %>

然而,这没有效果。 那么,如何在运行一些代码后滚动页面呢?

提前致谢!

1 个答案:

答案 0 :(得分:0)

首先,您要将函数绑定为图像的单击处理程序:

$('#someImage').click(function () {
    // Code to do scrolling happens here
});

这会将点击处理程序应用于id="someImage"的图像。如果您要对所有图片执行此操作,请将'#someImage'替换为'img'

现在为实际的滚动代码:

  1. 获取图像偏移量(相对于文档):

    var offset = $(this).offset(); // Contains .top and .left
    
  2. topleft减去20:

    offset.left -= 20;
    offset.top -= 20;
    
  3. 现在为<body><html>的滚动顶部和滚动左侧CSS属性设置动画:

    $('html, body').animate({
        scrollTop: offset.top,
        scrollLeft: offset.left
    });
    
  4. 另外,请查看jQuery.scrollTo插件。

    这是demo

    这是一个重复的问题from this page