【问题标题】:Move the scroll at middle of page at control position在控制位置移动页面中间的滚动
【发布时间】:2012-08-21 06:43:16
【问题描述】:

在我的 aspx 页面中,我在页面中间的 seomwhere 有一个控件。页面中有很多垂直滚动条,我目前位于页面顶部。有没有办法在javascript中单击按钮时在页面中间的控件上移动垂直滚动位置?

【问题讨论】:

    标签: javascript jquery asp.net


    【解决方案1】:

    从您的标签看来,您使用的是 jQuery 库。您可以使用 jQuery 的 scrollTop

    来完成此操作

    工作示例:http://jsfiddle.net/k4LCZ/

    或者如果你想滚动窗口本身,使用window.scrollTo

    window.scrollTo(0, 0);
    

    【讨论】:

      【解决方案2】:

      这样做:

      var myControl = document.getElementById("controlName"); 
      myControl.focus();
      

      编辑:添加了对实际控件的引用

      【讨论】:

        【解决方案3】:

        如果要添加的内容在一个分区(div)中,最好的方法是使用 CSS 溢出选项。

        overflow: scroll;
        

        查看此链接了解更多详细信息:CSS Tricks

        【讨论】:

          【解决方案4】:

          嘿,您可以使用该控件的 ID 向下滚动到该特定部分。

          像这样的

           window.onload=(function(){ document.location="#controlID";});
          

          【讨论】:

            【解决方案5】:

            使用漂亮的页面动画滚动到您的位置。因此,当您单击按钮时,请使用以下代码调用函数:

            var WhereToMove = jQuery("#ControlIdToMoveOn");
            // using the 'html,body' will move the full page, to move a div use his id
            jQuery('html,body').animate({scrollTop: WhereToMove.position().top - 10}, 1000);
            

            还有一个滚动 div 而不是整页的示例:http://jsfiddle.net/k4LCZ/3/

            【讨论】:

              【解决方案6】:

              您也可以将其与偏移量一起使用。

              jQuery('html,body').animate({scrollTop: jQuery("ID_OF_THE_DIV").offset().top},'slow');
              

              例如;对于这种情况:

              <a href="#ControlID" id="atagid"> <img height="39" border="0" width="37" src="/close.png"/> </a> 
              jQuery('html,body').animate({scrollTop:jQuery("#atagid").offset().top},'slow'); 
              

               var id = jQuery('a[href$="#ControlID"]');       
               jQuery('html,body').animate({scrollTop:jQuery(id).offset().top},'slow');
              

              希望这对其他用户有所帮助....

              【讨论】:

              • 嗨,SMC,您能否将 id 添加到标签,而不是通过这种方式执行此操作 jQuery('html,body').animate({scrollTop:jQuery("#atagid").offset().top },'慢');
              • 也可以通过这种方式添加 var id = jQuery('a[href$="#ControlID"]'); jQuery('html,body').animate({scrollTop:jQuery(id).offset().top},'slow');如果您仍然有问题,请随时询问
              • 对不起 SMC,我没听懂你……你的意思是说我必须在上面添加 cmets 作为我的答案?
              • @SMC 为什么这个答案?这个答案与您的解决方案有什么关系?如果您找到了解决方案,您可以将其发布为您自己的答案。
              猜你喜欢
              • 2012-10-19
              • 2019-09-08
              • 1970-01-01
              • 2015-02-08
              • 2013-10-02
              • 1970-01-01
              • 2015-10-11
              • 2017-08-02
              • 2015-06-11
              相关资源
              最近更新 更多