J'essaie donc de permettre à l'utilisateur de déplacer un div vers la gauche ou la droite dans angularjs. En ce moment j'ai la fonction ci-dessous. Cela fonctionne au premier clic, mais tout ce qu'il fait est de basculer à chaque clic et de dire que left est NaN. Qu'est-ce que je fais de mal ici ? Aussi, si quelqu'un a une meilleure solution pour cela, merci de me le faire savoir.

vm.scrollSelector = function(e, direction) {
    var target = document.getElementById('item-selector');
    var left = target.style.left;

    if(direction === 'left') {
      left += 600;
      target.setAttribute('style', 'left: ' + left + 'px');
    } else {
      left -= 600;
      target.setAttribute('style', 'left: ' + left + 'px');
    }
}
-1
Zach Starnes 18 mars 2019 à 16:01

2 réponses

Meilleure réponse

J'ai donc rapidement trouvé la réponse juste en regardant la doc. Left est renvoyé sous forme de chaîne, donc tout ce que j'avais à faire était de faire parseInt(left) + 600 et cela a fonctionné.

0
Zach Starnes 18 mars 2019 à 13:05

vm.scrollSelector = function(e, direction) { var target = document.getElementById('item-selector'); var left = target.style.left.match(/\d+/); left = parseInt(left[0], 10) if(direction === 'left') { left += 600; target.setAttribute('style', 'left: ' + left + 'px'); } else { left -= 600; target.setAttribute('style', 'left: ' + left + 'px'); } }

Essayez d'abord de voir quelle valeur target.style.left renvoie. Il peut renvoyer une valeur telle que « 10px ». Vous devez d'abord convertir cela en nombre, puis effectuer l'addition ou la soustraction.

0
mulla.azzi 18 mars 2019 à 13:24