IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Fonctions équivalentes Photos de Windows en javascript


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 739
    Par défaut Fonctions équivalentes Photos de Windows en javascript
    Bonjour,

    L'application Phptps de Windows offre deux fonctionnalités très intéressantes.

    Taille de l'image modifiable avec la molette.

    Déplacement de l'image au clic droit enfoncé dès que l'image dépasse de son cadre.

    J'aimerais les mêmes fonctions dans un Carroussel HTML / CSS.

    Ce codepen montre le code HTML et CSS que j'aimerais ne pas changer.

    Premier problème, si je veux que toutes les images soient zoomable, je suppose qu'il faut remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const tutti = document.querySelector ('figure > img')
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const tutti = document.querySelectorAll ('figure > img')
    Puis faire une boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (let i = 0; i < tutti.length; i++)
    De façon très bizarre je n'arrive pas à faire fonctionner cette boucle.

    Avez-vous idée d'une solution ?

    Merci d'avance.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 272
    Par défaut
    Bonjour,
    utilise une boucle forEach par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    const tutti = document.querySelectorAll ('figure > img');
    tutti.forEach((img) => {
      console.log(img.getAttribute("src"))
    });
    Pourquoi vouloir appliquer sur chaque image les événements ?

    Ressource :

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 739
    Par défaut
    Bonjour NoSmoking,

    MERCI pour le suivi.

    Je fais ta boucle foreach et cela fonctionne.

    Voir le codepen.

    Citation Envoyé par NoSmoking
    Pourquoi vouloir appliquer sur chaque image les événements ?
    Toutes les images du carrousel doivent être zoomables.
    Cela répond à ta question ?

    Deuxième étape le style du cursor.

    Grab à l'apparition de l'image.
    Grabbing si clic gauche
    Revient à grab si la clic est arrêté.


    Si clic sur image 2 ou 3 elle apparaît, est zoomable, mais le clic provoque l'apparition de l'image 1, comme sir le focus était perdu.

    J'ai ajouté ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    const imgs = document.querySelectorAll("figure > button");
    const imgFocused = [];
    for (but of imgs) {
    but.addEventListener("blur", function () {
    document.querySelector('figure > button:has(> img[src="' + imgFocused[0] + '"])').focus();
    });
    but.addEventListener("mousedown", function () {
    imgFocused[0] = this.querySelector('img').getAttribute('src');
    document.querySelector('figure > button:has(> img[src="' + imgFocused[0] + '"])').focus();
    });
    }
    Je reviens plus tard pour la partie la plus difficile qui est le déplacement de l'image agrandie avec mousedown et mousemove.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 272
    Par défaut
    Toutes les images du carrousel doivent être zoomables.
    Cela répond à ta question ?
    cela n'empêche qu'un seul événement sur le conteneur suffirait à gérer les différentes fonctionnalité. Cependant la structure que tu utilises ne te le permet pas sans certains contorsionnent !

    Un exemple de structure simple pourrait-être comme sur cet exemple fourni jadis pour une autre raison :

    Je reviens plus tard pour la partie la plus difficile qui est le déplacement de l'image agrandie avec mousedown et mousemove.
    Je te conseille d'utiliser tout de suite les « Pointer events »

    Ressource :

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/08/2009, 02h26
  2. fonction pour redémarrage de windows
    Par youp_db dans le forum Windows XP
    Réponses: 2
    Dernier message: 28/08/2006, 13h50
  3. configurer la fonction mail sur apache (windows)
    Par sensoo dans le forum Apache
    Réponses: 4
    Dernier message: 12/04/2006, 14h26
  4. Où trouver l'aide sur les fonctions de l'API Windows ?
    Par psidonio dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 08/11/2005, 14h28
  5. fonction de l'API windows
    Par T-B dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 09/03/2005, 22h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo