2010-08-20 3 views
3

avoir un peu d'un problème s'il vous plaît voir le code suivant:Assurez-vous la hauteur est divisible par 4 sinon faire si

window.onload = function() { 

    var imgHeight = $("#profile_img").height(); 

    var infoPanels = imgHeight - 6; 
    //include borders and margin etc.. 
    var infoPanelsHeight = infoPanels/4; 
    $('.resize').css("height",infoPanelsHeight + "px"); 
    $('.resize2').css("height",infoPanelsHeight + "px"); 
} 

Ce que je suis en train de faire est de trouver la hauteur d'une image (flottaient : à gauche), puis divisez-le par 4 et utilisez le résultat pour définir la hauteur de 4 divs (float: right), de sorte qu'ils égalent la hauteur de l'image au total. J'utilise ceci sur un projet de redimensionnement mais comme la hauteur de l'image dépend de la fenêtre de visualisation (dans ce cas un écran mobile), le nombre est très rarement arrondi correctement donc les divs sont toujours à 1 -4 px. Donc, pour un travail autour, je veux trouver la hauteur de l'image, puis si la hauteur n'est pas divisible par 4 ajuster, il est ... redimensionner l'image puis redimensionner les divs en utilisant la nouvelle hauteur de l'image.

Donc, ma question est comment puis-je vérifier la hauteur de l'image, si elle n'est pas divisible par 4, alors le faire est-il? J'utilise généralement jquery et javascript.

Merci pour votre aide à l'avance.

Sam Tassell.

Répondre

10

Je voudrais essayer:

if (imgHeight % 4 != 0) { // checks if the imgHeight is not dividable by 4 
    $("#profile_img").attr("height") = Math.floor(imgHeight/4) * 4; // set lowest height that is dividable by 4 
} 

Note:

  • L'image peut devenir un peu floue car le résultat dépend des capacités de votre navigateur.
  • % est appelé modulus operator
+0

Opps mes mauvais travaux un régal merci !! –

2

Vous devez le mod operator%:

imgHeight % 4

si le résultat est '0', vous savez alors imgHeight n'est pas divisible par 4.

+0

Merci pour la réponse. Hmmm ok, mais comment puis-je changer la taille de l'image pour être divisible par 4, comme le nombre le plus proche auquel je pourrais être divisible par 4. –

+0

si le résultat n'est pas '0', soustraire le résultat de la hauteur de l'image. Si imageHeight est 103, imageHeight% 4 donnera 3, donc (étant donné qu'il sera plus sûr de réduire plutôt que d'agrandir) vous avez juste besoin de: newHeight - = imageHeight% 4; qui vous donnera 100. –

Questions connexes