J'ai une grande table avec des nombres seulement et une petite taille de police, ce qui le rend difficile à voir. Augmenter la taille des polices n'est pas une option, mais je veux fournir un effet de zoom (sans avoir à utiliser le zoom du navigateur) en utilisant une superposition div simple sur la cellule td planétaire si elle a du contenu.
La div devrait être centrée sur la cellule td et le contenu de la div devrait être remplacé par le contenu textuel de la cellule td planifiée.Superposer div sur la cellule td en utilisant jquery.position lors de l'événement mouseover
Où est mon erreur?
Remarque: J'utilise .delegate() au lieu de .hover() car je fais déjà d'autres tâches nécessitant un délégué.
HTML
<div id="mine"><table border="1" cellspacing="2" cellpadding="2">
<tr><td></td><td></td><td>1</td><td>2</td></tr>
<tr><td>3</td><td></td><td></td><td>5</td></tr>
</table></div>
<div id="your">vale</div>
CSS
#your {
position: absolute;
width: 40px;
height: 30px;
z-index: 100;
border: 1px solid green;
text-align: center;
vertical-align: middle;
}
JS
$(document).ready(function() {
$('#mine').delegate('td', 'mouseover mouseleave', function(e) {
if ($(this).text().length > 0) {
if (e.type == 'mouseover') {
$('#your').position({
my: "center bottom",
at: "center top",
of: this,
offset: "0 -20", // Place it above td cell
collision: "none"
});
$('#your').clearQueue();
$('#your').text($(this).text()).fadeIn(200);
} else {
$('#your').delay(300).fadeOut(200);
}
}
});
});
Modifier Je vois #your
voler partout dans la première manche, puis la suivante plane, mais il commence à apparaître tous les endroits étranges - y compris à l'extérieur #mine
.
Quel est votre problème avec elle exactement? Je l'ai essayé et cela fonctionne, à l'exception qu'il se fane rapidement lorsque vous survolez un objet, mais le positionnement fonctionne bien. Est-ce le problème que vous rencontrez? – DaiYoukai
J'utilisais http://jsfiddle.net/ pour tester le code, mais cela ne fonctionnait pas. Fonctionne sur mon site .. un peu. Voir le code édité. – Kim
J'ai eu le même problème au début, assurez-vous que vous utilisez les versions les plus récentes de JQuery et de l'interface utilisateur. – DaiYoukai