11550 sujets

JavaScript, DOM et API Web HTML5

J'ai un script js qui gère le drag and drop mais je rencontre un probleme lorsque je déplace le div .. :

Si du texte est présent à l'intérieur celui-ci va être sélectionné .. et donc forcément ça ne rend pas bien du tout !

Si vous pouvez m'aider..merci d'avance
Re salut, essaye si tu veux celui-ci, c'est à améliorier mais il est interessant, il a l'avantage de sauvegarder sa position d'une page a l'autre dans des coockies. regarde la source je pense que tu devrais comprendre comment ça marche.

ps : Les fonctions getCursor(e), getScrollCursor(e), peuvent être mise dans un fichier bibliothéque avec celle du post précedent Smiley cligne , pour d'autre utilisation (infobulle, slidevertical...)
Modifié par matmat (16 Apr 2007 - 22:32)
Re salut effectivement tu m'aides beaucoup déjà le 2ème post Smiley smile !

Ce que je cherche est que la sélection de texte ne puisse pas se faire lorsqu'on a décidé de déplacer le cadre et là apparement ca ne le fait pas ..
Le script que j'ai permet aussi d'avoir des zones prédéfinies pour les cadres et de ce fait ils y sont "attirés" lorsqu'on les relache ..
Limiter la zone d'accroche sur le div pour le déplacement à l'air d'etre une solution pour éviter la désagréable sélection de texte..
Merci Smiley cligne
rafale29 a écrit :

Ce que je cherche est que la sélection de texte ne puisse pas se faire lorsqu'on a décidé de déplacer le cadre et là apparement ca ne le fait pas ..
Le script que j'ai permet aussi d'avoir des zones prédéfinies pour les cadres et de ce fait ils y sont "attirés" lorsqu'on les relache ..
Limiter la zone d'accroche sur le div pour le déplacement à l'air d'etre une solution pour éviter la désagréable sélection de texte..
Merci Smiley cligne

Bonjour,
Il faut stopper la pousuite de l'évènement avec la méthode w3c : e.preventDefault() et e.returnValue = false pour ie

C'est encore brouillon, mais tu peux le tester ici :
J'avais pas tout a fait compris ton probléme, la solution est de rajouter au moment du .onmousedown:

document.onselectstart = new Function ("return false");

et le reactiver au moment du .onmouseup:

document.onselectstart = new Function ("return true");

je l'avais pas actualisé sur la page de test mais je l'ai essayé ailleur et ça marche, c'est logique ça desactive la selection de texte (onselectstart) sur tout le document au moment du déplacement.
Salut,
matmat a écrit :

document.onselectstart = new Function ("return false");
Il est préférable d'écrire
document.onselectstart = function() { return false; };
Le parseur JavaScript n'est pas appelé à chaque fois, on détecte dès le début les erreurs de syntaxe, c'est plus lisible, ...
Modifié par Julien Royer (17 Apr 2007 - 09:13)
Merci pour vos réponses et votre réactivité!

le onselecstart j'avais voulu l'utiliser mais je n'étais arrivé à rien de concluant je l'avais mal placé, il était en attribut de chaque div
Et c'est vrai que c'est plutôt logique cette façon de faire !
Merci
Très bonne source Matmat, simple et efficace, impeccable Smiley smile
Modifié par Liko (26 Apr 2007 - 00:06)
Merci Smiley smile
C'est vrai que ça marche bien, même sur ie5.0 Smiley langue , par contre pour intégrer un tel outil de maniére accessible il faut s'assurer que dans sa position initiale il ne géne pas le reste du contenu.

Autre chose, en cas d'utilisation il faut également penser a rajouter ce que l'on vient de comenter sur ce post ainsi qu'une limite en haut et à gauche pour éviter de perdre la boite dans la barre d'adresse Smiley lol