none
script para mantener posición del scroll en postbacks RRS feed

Respuestas

  • A lo mejor ste script te funciona.

    <script type="text/javascript">
        var xPos, yPos;
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_beginRequest(BeginRequestHandler);
        prm.add_endRequest(EndRequestHandler);
        function BeginRequestHandler(sender, args) {
            xPos = $get('scrollDiv').scrollLeft;
            yPos = $get('scrollDiv').scrollTop;
        }
        function EndRequestHandler(sender, args) {
            $get('scrollDiv').scrollLeft = xPos;
            $get('scrollDiv').scrollTop = yPos;
        }
    </script>
    scrollDiv es un div que debe englobar a tu página


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    miércoles, 6 de mayo de 2015 14:44
    Moderador

Todas las respuestas

  • La página tiene una propiedad para hacer eso de forma automática:

    <%@ Page MaintainScrollPositionOnPostback="true" 

    Page.MaintainScrollPositionOnPostBack

    miércoles, 6 de mayo de 2015 13:46
  • Prueba esta solución. Definir la carpeta App_Browers

    http://www.codeproject.com/Tips/207917/Maintain-Scroll-Position-Problem-fix-for-Chrome


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    miércoles, 6 de mayo de 2015 13:47
    Moderador
  • Hola:

    He probado el ejemplo que me diste, Sergio. Y nada,no funciona

    Asier, esa etiqueta solamente funciona en IE

    Hace un tiempo cogí un script de la web que hacía eso, guardar la posición de la pantalla, y cargaba la página en esa posición

    Gracias

    • Editado volar.2014 miércoles, 6 de mayo de 2015 14:43
    miércoles, 6 de mayo de 2015 14:35
  • Hola:

    He probado el ejemplo que me diste, Sergio. Y nada,no funciona

    Asier, esa etiqueta solamente funciona en IE

    Hace un tiempo cogí un script de la web que hacía eso, guardar la posición de la pantalla, y cargaba la página en esa posiciónb

    Gracias de anemano


    Qué no te funciona? en el campo refID qué pusiste?  Si pones 

    <browser refID="Mozilla">

    para Firefox por ejemplo 


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    miércoles, 6 de mayo de 2015 14:44
    Moderador
  • A lo mejor ste script te funciona.

    <script type="text/javascript">
        var xPos, yPos;
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_beginRequest(BeginRequestHandler);
        prm.add_endRequest(EndRequestHandler);
        function BeginRequestHandler(sender, args) {
            xPos = $get('scrollDiv').scrollLeft;
            yPos = $get('scrollDiv').scrollTop;
        }
        function EndRequestHandler(sender, args) {
            $get('scrollDiv').scrollLeft = xPos;
            $get('scrollDiv').scrollTop = yPos;
        }
    </script>
    scrollDiv es un div que debe englobar a tu página


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    miércoles, 6 de mayo de 2015 14:44
    Moderador
  • Hola a todos:

    En markup tengo

                <input name="posicionx" type="hidden" id="posicionx" value="0" />
                <input name="posiciony" type="hidden" id="posiciony" value="0" />

    Hice un script

    function obtener_coordenadas_scroll()
    {
        var scrollX, scrollY;
          
        if (document.all)
        {
            if (!document.documentElement.scrollLeft)
                scrollX = document.body.scrollLeft;
            else
                scrollX = document.documentElement.scrollLeft;
                   
            if (!document.documentElement.scrollTop)
                scrollY = document.body.scrollTop;
            else
                scrollY = document.documentElement.scrollTop;
        }   
        else
        {
            scrollX = window.pageXOffset;
            scrollY = window.pageYOffset;
        }
        document.getElementById('posicionx').value = scrollX;
        document.getElementById('posiciony').value = scrollY;
    }

    como dice en

    http://www.4guysfromrolla.com/articles/111704-1.aspx

    pero el scrollx y scrolly no cambian, siempre vaken 0

    ¿qué me falla?

    Gracias de antemano


    • Editado volar.2014 jueves, 7 de mayo de 2015 16:43
    jueves, 7 de mayo de 2015 16:35