2013-04-01 4 views
3

Je développe une application Android à l'aide de GUI webview. J'ai un élément qui contient la page. Il a un en-tête et un pied de page.android view + jquery

<div data-role="page"> 
    <div data-role="header"> 
    ... 
    </div> 
    <div data-role="content" id="bg_im"> 
    ... 
    </div> 
    <div data-role="footer"> 
    ... 
    </div> 
</div> 

je voudrais insérer une image en arrière-plan de div de contenu de telle sorte que tout le contenu ne prend pas plus d'espace que la taille de l'écran disponible.

i ont un javascript qui fait que:

document.getElementById("bg_im").style.height=Math.floor($(window).height() - $('#home_header').height() - $('#home_footer').height() +"px"; 

la fonction est exécutée lorsque la page est chargée.

tout fonctionne bien dans le navigateur de bureau (chrome, mozilla), mais échoue lorsqu'il est chargé dans WebView dans android. J'ai découvert que la raison est que la fonction .height() pour l'en-tête et le pied de page renvoie une valeur de 0.

aucune idée pourquoi? j'ai essayé this solution mais ça ne marche pas non plus. il renvoie toujours la taille d'en-tête/pied de page 0.

Répondre

0

Votre problème principal vient probablement de votre méthode Math.floor(). Vous mélangez des opérations de concaténation de chaînes et d'opérations arithmétiques. Vous devriez séparer ces déclarations.

var newHeight = Math.floor($(window).height() - $('#home_header').height() - $('#home_footer').height()); 
$('#bg_img').prop('height', newHeight); 
+0

Je ne pense pas que ce soit le problème. il renvoie un nombre, qui dans ce cas est égal à $ (window) .height(). aussi, si j'imprime $ ('# home_header'). height(), il imprime un 0. même pour footer.so le problème est qu'il ne soustrait pas la taille d'en-tête et de pied de page parce que les deux nombres sont 0 et je peux t comprendre pourquoi. – Jaka

+0

Appelez-vous ces méthodes dans le $ (document) .ready ({}); function (http://api.jquery.com/ready/)? Si le document n'est pas prêt, les hauteurs div peuvent être nulles. Vous pouvez également vérifier cette question http://stackoverflow.com/questions/9095967/jquery-height-behaves-differently-in-webkit-and-firefox-when-using-box-sizing – Kyle

+0

oui, la fonction est appelée dans le de la manière suivante: $ (document) .ready (function() { resizeContent(); $ (window) .resize (function() { resizeContent(); }); }); – Jaka