J'écris du code qui fait glisser une div à gauche ou à droite de la page en fonction d'une pression sur une touche (flèches gauche ou droite). Voici mon script.Jquery Sliding Div ne fonctionne qu'une fois
$(document).keydown(function(e){
var $inner = $('.inner-cover');
if (e.keyCode == 39) {
$inner.css({
position: 'fixed',
top: $inner.offset().top,
left: $inner.offset().left
}).animate({left:'100%'}, 1000);
}
if (e.keyCode == 37){
$inner.css({
position: 'fixed',
top: $inner.offset().top,
right: $inner.offset().right
}).animate({right:'100%'}, 1000);
}
});
et voici un lien dans jsfiddle. http://jsfiddle.net/e32A3/
J'ai quelques questions à ce sujet que j'aimerais vraiment répondre parce que je ne semble pas comprendre cela correctement.
Pourquoi la fonction de glissière ne fonctionne-t-elle qu'une ou deux fois?
Pourquoi dois-je mettre
$inner.css({}).animate({left:'100%'},1000);
J'ai essayé
$inner.animate({left:100%},1000);
et il ne fonctionne pas
Aussi comment pourrais-je l'arrêter dans le centre? Je comprendre que je dois faire quelque chose le long des lignes de
animate({left:($(window).width()-$inner.width())/2)},1000);
mais encore une fois que je l'ai essayé et ça n'a pas fonctionné.
pour le 2ème, car 'position' devrait être réglé sur' fixed' ou 'absolute' ou' relative' pour que 'left' prenne effet. –
notez également que 'offset()' renvoie un objet qui n'a pas la propriété 'right' ou' bottom', il a simplement 'left' et' top'. –