bonjour
Après 3 jours de recherche je n'arrive toujours pas a faire un drag an drop sur un mobile ?
Mème en utilisant un button je n'arrive pas a le sélectionner en le touchant sur un mobile ?
Des idées de recherche ?
Merci pour votre aide
Comment faire un drag and drop avec joomla sur un Mobile
Réduire
X
-
Bonjour
Merci pour votre aide
Mais Hélas cela ne change Rien
bonne journée
Laisser un commentaire:
-
Dans votre exemple, vous gérez drag&drop qui ne sont pas gérés (ou mal) par les mobiles.
J'ai trouvé un complément à ajouter pour convertir les événements "touch" en événements drag&drop. Ci-après le code à ajouter à votre code actuel.
Code PHP:/** * Lightweight script to convert touch handlers to mouse handlers
* credit: http://stackoverflow.com/a/6141093 */
(function() {
function touchHandler(e) {
var touches = e.changedTouches; var first = touches[0]; var type = "";
switch(e.type) {
case "touchstart":
type = "mousedown";
break;
case "touchmove":
type="mousemove";
break;
case "touchend":
type="mouseup";
break; default:
return;
}
var simulatedEvent = document.createEvent("MouseEvent");
simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0, null);
first.target.dispatchEvent(simulatedEvent);
e.preventDefault();
}
function init() {
document.addEventListener("touchstart", touchHandler, true);
document.addEventListener("touchmove", touchHandler, true);
document.addEventListener("touchend", touchHandler, true);
document.addEventListener("touchcancel", touchHandler, true);
}
init();
})();
PascalDernière édition par pmleconte à 09/11/2019, 14h50
Laisser un commentaire:
-
Merci pour votre réponse
Sur le PC j'ai juste codé dans un article en HTML5 et java.
Et avec la souri le rendu correspond, mais sur un mobile impossible de sélectionner les mots avec l’écran tactile pour les faire glisser !
de plus je ne vois pas comment je peux faire un plugin ?
J'utilise ceux que joomla fourni, je suis incapable d'en faire un !
Si cela peut vous aider, voila le code ecrit dans l'article joomla
<script>
var ch=5;
var i=parseInt(ch);
function dragstart_handler(ev) {
// On ajoute l'identifiant de l'élément cible à l'objet de transfert
ev.dataTransfer.setData("application/my-app", ev.target.id);
ev.dataTransfer.dropEffect = "move";
}
function dragover_handler(ev) {
ev.preventDefault();
ev.dataTransfer.dropEffect = "move"
}
function drop_handler(ev) {
ev.preventDefault();
// On obtient l'identifiant de la cible et on ajoute l'élément déplacé au DOM de la cible
//var data = ev.dataTransfer.getData("application/my-app");
//ev.target.appendChild(document.getElementById(data ));
var chaine = "<div id="targetB" ondragover="dragover_handler(event)" ondrop="drop_handler(event)"><img src="images/TEST/Buzz.png" width="250" height="350" alt="Buzz" style="float: right;" /></div>"
var element=document.getElementById("targetB");
document.getElementById("targetB").innerHTML=chain e;
var audioElement = new Audio('/j3.3.6/images/TEST/buzz.mp3');
audioElement.play();
i=i-1;
if (i < 1)
{
var cfinal="A votre avis, ça ne marche pas ou les compétences n’ont pas de sexe ?";
var element2=document.getElementById("Cpt");
document.getElementById("Cpt").innerHTML=cfinal;
ce06();
} else {
setTimeout(buzzablanc,1000);
var element1=document.getElementById("Cpt");
var chaine1 = "Il vous reste ";
var chaine2 = i.toString() ;
var chaine3 = " essais";
var chaine4 = chaine1+chaine2+chaine3;
document.getElementById("Cpt").innerHTML=chaine4;
}
}
function buzzablanc() {
var chaine2 = "<div id="targetB" ondragover="dragover_handler(event)" ondrop="drop_handler(event)"><img src="images/TEST/Buzz0.png" width="250" height="350" alt="Essaye Encore" style="float: right;" /></div>";
var element=document.getElementById("targetB");
document.getElementById("targetB").innerHTML=chain e2;
}
function ce06() {
var chaine = "<div id="targetB" ondragover="dragover_handler(event)" ondrop="drop_handler(event)"><img src="images/LogoCE06.JPG" width="250" height="350" alt="FIN" style="float: right;" /></div>";
var element=document.getElementById("targetB");
document.getElementById("targetB").innerHTML=chain e;
}
</script>
<html manifest="manifest.mf">
<html lang="fr">
<head>
<meta charset="utf-8"/>
<style>
table {
background:white;
border-collapse:collapse;
width:100%;
}
th {
color:black;
}
th, td {
text-align:center;
padding:5px;
//border-right:1px solid black;
}
th:last-child, td:last-child {
border-right:0;
}
tbody tr:nth-child(odd) {
background:white;
}
tbody tr:nth-child(even) {
background:white;
}
@media screen and (max-width:800px) {
table {
display:flex;
}
thead {
width:20%;
min-width:90px;
}
tbody {
flex:1;
}
tr {
display:flex;
flex-direction:column;
}
th, td {
text-align:left;
border-right:0;
border-bottom:1px solid black;
}
tr:last-child td:last-child {
border-bottom:0;
}
}
@media screen and (max-width:461px) {
tbody tr:not(:first-child) td::before {
margin-left:-95px;
}
}
</style>
</head>
<body>
<table summary="Tableau" cellpadding="0" cellspacing="0">
<caption style="text-align: center;">
<span style="color: #ff6600; font-size: 16pt;">Faites glisser la compétence vers l'image associée</span>
</caption>
<tr>
<th id="p1" ondragstart="dragstart_handler(event)" draggable="true">Diplomatie </th>
<th id="p1" ondragstart="dragstart_handler(event)" draggable="true">Empathie </th>
<th id="p1" ondragstart="dragstart_handler(event)" draggable="true">Charisme </th>
<th id="p1" ondragstart="dragstart_handler(event)" draggable="true">Leadership </th>
</tr>
<tr>
<th id="p1" ondragstart="dragstart_handler(event)" draggable="true">Bienveillance </th>
<th id="p1" ondragstart="dragstart_handler(event)" draggable="true">Réactivité </th>
<th id="p1" ondragstart="dragstart_handler(event)" draggable="true">Prise de décision </th>
<th id="p1" ondragstart="dragstart_handler(event)" draggable="true">Emotivité </th>
</tr>
<tr>
<th id="p1" ondragstart="dragstart_handler(event)" draggable="true">Multi-tâche </th>
<th id="p1" ondragstart="dragstart_handler(event)" draggable="true">Fiablilité </th>
<th id="p1" ondragstart="dragstart_handler(event)" draggable="true">Patience </th>
<th id="p1" ondragstart="dragstart_handler(event)" draggable="true">Adaptation </th>
</tr>
<tr>
<th id="p1" ondragstart="dragstart_handler(event)" draggable="true">Rigueur </th>
<th id="p1" ondragstart="dragstart_handler(event)" draggable="true">Curiosité </th>
<th id="p1" ondragstart="dragstart_handler(event)" draggable="true">Persévérence </th>
<th id="p1" ondragstart="dragstart_handler(event)" draggable="true">Intuition </th>
</tr>
</table>
<table>
<tr>
<th id="targetF" ondragover="dragover_handler(event)" ondrop="drop_handler(event)"><img src="images/TEST/femme.jpg" width="250" height="350" alt="femme" style="float: right;" /></th>
<th id="targetB" ><img src="images/LogoCE06.JPG" width="250" height="350" alt="" style="float: right;" /></th>
<th id="targetH" ondragover="dragover_handler(event)" ondrop="drop_handler(event)" ><img src="images/TEST/homme.jpg" width="250" height="350" alt="" style="float: right;" /></div>
</tr>
</table>
<br>
<div id="Cpt" style="text-align: center; color: #ff6600; font-size: 20pt;"> </div>
<br><br><br><br><br>
</body>
</html>
bonne journée
Laisser un commentaire:
-
Bonjour,
Quelle extension utilisez-vous pour que cela fonctionne sur PC ?
MobileKit est un plugin (date de 2014) juste pour détecter si vous êtes sur mobile ou non, il modifie pas le comportement de votre site.
J'ai trouvé plusieurs discussions sur le sujet drag&drop mobile (qui date aussi un peu) : https://stackoverflow.com/questions/...rop-for-mobile , https://stackoverflow.com/questions/...mobile-devices la réponse standard est "Most mobile devices do not listen to the drag events"..." I would recommend using the touchmove event..."
Il existe plusieurs librairies qui sont compatibles PC/Mobile : https://github.com/SortableJS/Sortable semble correspondre à votre demande. Il faut juste en faire un plugin.
Pascal
Laisser un commentaire:
-
Comment faire un drag and drop avec joomla sur un Mobile
Bonjour
J'ai réalisé une page joomla pour une expo qui aura lieu en janvier, le but est un petit jeu de glisser déposer avec un buzz pour la réponse.
Cela fonctionne très bien sur un PC Mais sur un mobile le drag et drop ne fonctionne pas ?
Je ne sais pas ou chercher ? (J'ai installé une extension MobileKIt pour joomla mais cela ne change rien)
Voila la page : http://www.yc06.fr/j3.3.6/index.php?option=com_content&view=article&id=32&It emid=204&jmk_redirect=1
La page sera accessible avec un QRCode dans l'expo donc forcement avec des Mobiles
Merci de votre aide
bonne journée
Tags: Aucun
Annonce
Réduire
Aucune annonce pour le moment.
Laisser un commentaire: