10
votes

En-tête persistant dans JQuery Mobile

ne pouvait pas comprendre un moyen de mettre une prime sur ma vieille question, alors je le répète parce que c'était peut-être un bug.

Version courte: je veux une en-tête persistante dans une application Persistant + JQM qui reste en place (ne bouge jamais) entre les transitions de page comme le pied de page peut être conçu pour le faire. P>

Version longue: Tout d'abord, je suis totalement nouveau à JQuery et JQm, alors veuillez souligner les erreurs de nouveaub J'ai fait. P>

J'essaie d'obtenir un en-tête qui persiste entre différentes pages de l'application. Il faudrait être comme le pied de page persistant qui reste en place chaque fois que l'utilisateur passe entre les pages. Le pied de page persistant a été atteint à l'aide du rôle de données = "pied de page" id-id = "(un identifiant cohérent)" position de données = "fixe". Cela a fonctionné assez bien (des problèmes aléatoires avec celui-ci deviennent égarés, puis se fixant automatiquement après quelques secondes). Pour plus d'informations sur ce que je cherche, voir "pied de page persistant" ici: http://jquerymobile.com/test/docs/# /test/docs/toolbars/docs-footers.html p>

et voir l'exemple du pied de page persistant sur le lien ci-dessous. Voyez comment choisir un élément dans le pied de page Transitions sur une page complètement nouvelle, mais le pied de page ne bouge pas: http://jquerymobile.com/test/docs /#/test/docs/toolbars/footer-persist-a.html P>

J'essaie maintenant de faire la même chose, mais je veux que ce soit en haut de la demande au lieu du fond. J'ai essayé les choses suivantes: p>

  • déplacer le pied de page vers le haut de la page (je ne sais pas quelle étiquette à attraper à JQuery. Essayé Div. (classe JQuery) utilisant plusieurs classes de jQuery, mais aucune ne fonctionne. J'ai utilisé Firebug pour déterminer que c'est le "Haut "Attribut CSS qui doit être changé. LI> ul>

    Le code HTML sur chaque page: p> xxx pré>

    le JavaScript: p> xxx pré>

    • à l'aide du rôle de données = "en-tête" (ne persiste pas comme le pied de page). Cette méthode créera l'en-tête que je veux (parce que j'ai envahi certaines des CSS), mais lorsque je transigeai entre les pages, il ne maintiendra pas l'en-tête en haut. La documentation JQM n'affirme pas non plus qu'elles soutiennent les en-têtes persistants alors qu'il affirme qu'il soutient les pieds de pied persistants: Li> ul>

      Le HTML sur chaque page: P>

      <div data-role="header" data-position="fixed" data-id="header" id="header" data-backbtn="false">
      <img src="images/bgheader.png" />
      </div>
      


0 commentaires

10 Réponses :


-1
votes

vérifier Cet exemple exemple, Sous Faire des pieds de page et des en-têtes persistants.


1 commentaires

Malheureusement, cela ne fonctionne pas car l'en-tête n'atteint pas cette fonctionnalité si je fais que cet exemple indique: reste en place (ne bouge jamais) entre les transitions de page comme le pied de page peut être conçu pour faire



1
votes

Ajoutez les CSS suivants à votre page ou au bas du fichier CSS

Veuillez noter que je n'ai pas testé ce code sur les appareils mobiles. P>

 <style type="text/css">
    .ui-header {
        position: fixed !important;
        top: 0 !important;
        z-index: 99;
    }
    .ui-content {
        margin-top: 35px;
    }
</style>


1 commentaires

Cela ne semble pas fonctionner non plus. Je pense que le problème de l'OP est que l'en-tête ne reste pas corrigé lors de la transition de la page. J'ai le même problème que ... postera si je trouve une solution de contournement.



2
votes

Un peu de jQuery fera le tour xxx


1 commentaires

Mais je suis toujours déterminant comment produire les animations dans ce type de transistion



1
votes

1) Outre les fichiers jQuery.js, jquerymobile.js et .css dossiers télécharger et incluent: jquery.ase.1.3.js, jquery.mobile.scrollview.js et scollview.js. (Google)

2) En-tête standard, ListView et Footer avec attribue de style ci-dessous: xxx

comme décrit en détail ici .


0 commentaires

2
votes

J'ai frappé ma tête contre ce problème pendant plusieurs jours et une fois que Google n'était pas d'aide. J'ai finalement proposé la solution suivante. Il copie l'en-tête HTML sur une nouvelle page avant le début de la transition, puis supprime le code de la page précédente une fois la transition terminée. L'en-tête et le pied de page se déplaceront toujours avec la transition de la page, mais ils persisteront même tout en naviguant des listes imbriquées.

// dynamically move the header and footer between pages on load events
$('div.ui-page').live('pagebeforeshow', function(event, ui) {
    // avoid duplicating the header on the first page load
    if (ui.prevPage.length == 0) return;

    // remove the jQuery Mobile-generated header
    $('.ui-header').addClass('to-remove-now');
    $('#header').removeClass('to-remove-now');
    $('.to-remove-now').remove();

    // grab the code from the current header and footer
    header = $('#header')[0].outerHTML;
    footer = $('#footer')[0].outerHTML;

    // mark the existing header and footer for deletion
    $('#header').addClass('to-remove');
    $('#footer').addClass('to-remove');

    // prepend the header and append the footer to the generated HTML
    event.currentTarget.innerHTML = header + event.currentTarget.innerHTML + footer;
});

// remove header from previous page 
$('div.ui-page').live('pagehide', function(event, ui) {
    $('.to-remove').remove();
});


0 commentaires

1
votes

Il y a un exemple de faire avec un pied de page ici: http : //jquerymobile.com/demos/1.0/docs/toolbars/footer-persist-a.html

Je n'ai pas eu la chance de l'essayer, mais cela devrait fonctionner de la même manière avec un en-tête.


0 commentaires

0
votes

J'essaie de regarder dans JQuery Mobile Source, la magie du pied de page persistant se produit ici, je pense. XXX PRE>

Je pense à ajouter P>

setTop( page.find( ":jqmData(role='header')").removeClass( "fade in out" ).appendTo( $.mobile.pageContainer ) );


0 commentaires

1
votes

Salut, il pourrait être en retard mais cela a fonctionné pour moi. XXX PRE>

Votre HTML P>

<div data-role="page">
    ....Your content....
    <div class="footerPlaceHolder"></div>
    <div data-role="footer"> 
        <a href="#" data-icon="arrow-l" class="ui-btn-left">Back</a>
        <a href="#" onclick="settingsClicked(this);" data-icon="gear" class="ui-btn-right">Settings</a> 
    </div>
</div>


0 commentaires

0
votes

Si vous pouvez obtenir avec une seule en-tête partagée unique, vous pouvez fournir l'en-tête dans votre page principale: (Remarque: Non JQuery impliqué, désolé "il suffit d'utiliser jQuery" gars :-p) xxx pré>

Utilisez ensuite CSS pour appuyer sur le haut de chaque page vers le bas: P>

.ui-page{
    top:64px !important;
}


0 commentaires

0
votes

Je pense que cela est ajouté à JQM récemment. http: //view.jquérymobile .COM / 1.3.2 / DIST / DEMOS / WIDGETS / Barres à outils fixes / Footer-Persist-A.HTML

Ce lien dit clairement que vous pouvez ajouter l'attribut Data-ID aux deux. En-tête et pied de page. Mais cela ne fonctionne pas pour moi.

EDIT: J'ai remarqué que vous devez activer la transition de la page pour l'en-tête persistant. Mais les transitions ralentissent trop l'application ...


0 commentaires