Redimensionner et repositon div à l'aide de javascript

Je suis en train de faire un simple redimensionner et repositionner un élément div qui affiche un ajax chargement de l'image. Le contenu du chargement peuvent changer de taille, donc je veux l'élément div pour redimensionner à la taille de la mère, qui dans ce cas est un tableau de dimension avec l'id "thEngineCategories".

function resize_divProgress() {
    var control = document.getElementById('thEngineCategories');
    var div = document.getElementById('divProgress');

    div.style.left = control.offsetLeft + 'px';
    div.style.top = control.offsetTop + 'px';
    div.style.width = control.offsetWidth + 'px';
    div.style.height = control.offsetHeight + 'px';
}

Voici le code javascript que j'ai et il erreurs sur

div.style.left = control.offsetLeft + 'px';

en disant: "div.le style n'est pas défini". Quoi de mal ici?

La div en html est comme suit:

<div class="overlay" id="divProgress">

La js fonction est appelée comme suit:

<th id="thEngineCategories" onmouseover="resize_divProgress()" >

Le CSS est:

.overlay
{
    border: black 1px solid;
    padding: 5px;
    z-index: 100;
    width: 300px;
    position: absolute;
    background-color: #fff;
    -moz-opacity: 0.75;
    opacity: 0.75;
    filter: alpha(opacity=75);
    font-family: Tahoma;
    font-size: 11px;
    font-weight: bold;
    text-align: center;
}

Est-il une meilleure façon de gérer ce que je suis en train de faire?

  • Ce qui, le cas échéant, de la bibliothèque javascript utilisez-vous?
  • Je connais un autre développeur de chargement de jQuery dans l'un des maître de pages, mais je ne sais pas si c'est ici pour rester, donc je veux garder cela simple et bibliothèque indépendante.
  • votre code est ok - êtes-vous sûr que 'div' n'est pas défini?
  • Dans firebug, il semble être définis amende. Si je planer au dessus de la div variable, il montre div#divProgress.de superposition. J'ai oublié c'est dans une configuration maître/contenu de la page, donc je vais le changer à l'aide de ClientID
  • Nvm, ce ne sont pas des runat="server" contrôles. Pas de ClientID nécessaire.
  • essayez de la console.journal avec des div et div.style avant de vos missions.
  • Console.log(div) résultats: <div id="divProgress" class="overlay">, puis indéfini de la Console.log(div.le style) des résultats de l': objet CSSStyleDeclaration longueur=0, alors pas défini
  • Ces sons comme des valeurs raisonnables. Voulez-vous dire qu'elle s'imprime "undefined", ou qu'elle est l'erreur? Si c'est l'ancien, il semble que la fonction est appelée deux fois, la seconde fois, le div ne peut pas être trouvé.
  • Il affiche le <div id="divProgress" class="overlay"> sur la première ligne. Sur la ligne suivante, il dit undefined.
  • Une chose à retenir lors du positionnement des éléments dans ce sens: les éléments de la Table comme th et td peut être extrêmement fiable, dans les rapports, leur emplacement et leurs dimensions, en particulier dans IE, et surtout si vous les avez mis à centrer horizontalement à l'intérieur d'un conteneur. Si possible, ne pas utiliser des tableaux pour la disposition.

InformationsquelleAutor achinda99 | 2009-03-16