2011-01-18 21 views
29

Estoy creando un sitio web usando jQuery Mobile.cómo mantener fijo el encabezado y el pie de página de jquery mobile?

¿Cómo mantener el encabezado y pie de página móvil jquery fijo? Solo quiero que el contenido se desplace (al igual que sucede en las aplicaciones de iPhone) y mantenga los encabezados y pies de página fijos en la parte superior e inferior.

¿Alguna sugerencia?

Respuesta

28

Añadir este atributo a su div encabezado/pie de página:

 <div data-role="header" data-position="fixed"> 
      <h1>Header Page 1</h1> 
     </div> 

Además, es posible echar un vistazo a esto: http://jquerymobile.com/test/docs/toolbars/footer-persist-a.html

+2

esto no funcionará en iPhone y iPad, pero funcionará en Android. –

+1

amigo, esta es una publicación de principios de 2010 (y mucho antes de la versión final 1.0) .. en iOS 5 en iDevices surgió la posibilidad de una posición css fija (antes iOS 5 la posición se calculaba mediante jqmobile, se desvanecía y volvía a entrar al desplazarse) –

+1

Tengo que decir que mis resultados con 'data-position =" fixed "' en el BB10 han sido ... mezclados. Fue mejor después de usar la etiqueta de ventana gráfica encontrada [aquí] (http://supportforums.blackberry.com/t5/Web-and-WebWorks-Development/How-to-set-up-the-viewport-for-a-BlackBerry -WebWorks-application/ta-p/1943807) - ¡No es el sofisticado JS basado en la mente !, pero todavía no es 100%. Y esto es en 2013. – demaniak

4

El El problema que tuve con jquery mobile fixed es que el encabezado y el pie de página se desvanecen. Me imagino que esto es algo que corregirán en el futuro, pero además de iscroll sugerido por Dan, también hay jquery mobile scrollview y guiño de herramientas. Tenía buenos resultados con ScrollView móvil jQuery, pero no hubo suerte con iscroll o guiño

1) jQuery Mobile ScrollView

2) Guiño Toolkit

+0

¿Alguien ha probado esto en un dispositivo con iOS? porque para mí la pantalla simplemente está atascada y cuando sigo deslizando, eventualmente las barras de herramientas se desvanecen entrando/saliendo ... Estoy hablando específicamente de Jquery mobile. – CharlesS

+0

Utilicé jquery mobile scrollview en iOS. Funcionó bien Dicho esto, finalmente cambié a Sencha Touch. El rendimiento del móvil de Jquery era demasiado pobre (demora con cada clic del botón) y carecía de controles esenciales. Tal vez ha mejorado ahora. Definitivamente es más divertido programarlo. – i8abug

+2

Si se vincula a los eventos "toque" y "toque inicial" en lugar de "hacer clic", la demora desaparece. – Crashalot

0

Uso iScroll V4. Mantenga el encabezado y el pie de página fijos y recorra solo el contenido. iScroll necesita un contenedor DIV y elemento hijo. En el ejemplo siguiente, content_items es la div secundaria con los elementos para desplazarse. Noté que no se puede combinar data-role = "content" y el contendor DIV para iScroll en un elemento HTML !.

<script type="text/javascript"> 
var myScroll; 

$(document).ready(function() { 

    myScroll = new iScroll('wrapper'); 

}); 

</script> 
<div data-role="page"> 
    <div id="header" data-role="header" data-position="fixed"></div> 
    <div id="content" data-role="content" class="contentcontainer contentsearched"> 
     <div id="wrapper"> 
      <div id="content_items" class="content_items"></div> 
     </div> 
    </div> 
    <div id="footer" data-role="footer" data-position="fixed"> 
     <div data-role="navbar"></div> 
    </div> 
</div> 
0

le recomiendo que pruebe la última versión de jquery-mobile (1.1.0-rc). arregló este error.

echar un vistazo here

0

Para iOS 6, 7 y 8, este truco parece resolver el problema y provocar un redibujado para reemplazar correctamente la cabecera fija (con o sin panel) en el iPod, iPhone y iPad. Nota: Evaluamos el dispositivo iOS y solo agregamos este evento en ese caso *.

if (iOS()) { 
    $(document).on('blur', 'input:not(:submit), select, textarea', function() { 
     var paddingBottom = parseFloat($(".ui-mobile-viewport, .ui-page-active").css("padding-bottom")); 
     $(".ui-mobile-viewport, .ui-page-active").css("padding-bottom", (paddingBottom + 1) + "px"); 
     window.setTimeout(function() { 
      $(".ui-mobile-viewport, .ui-page-active").css("padding-bottom", paddingBottom + "px"); 
     }, 0); 
    }); 
} 

* Prueba para iOS:

var iOS() = function() { 
    var userAgent = window.navigator.userAgent.toLowerCase(); 
    return (/iphone|ipad|ipod/).test(userAgent); 
} 
1

Para habilitar este tipo de característica barra de herramientas, se aplica el = atributo de datos en pantalla completa "verdadero" y la posición de los datos = atributo "fija" tanto a la elementos Div de encabezado y pie de página. El marco también desarmará el relleno para el contenedor de contenido (ui-content)

<div data-role="header" data-position="fixed" data-fullscreen="true"> 
     <h1>Header Page 1</h1> 
    </div> 
Cuestiones relacionadas