Lors de la création de pages Web de type article, vous rencontrez souvent le besoin d'ouvrir les points clés pour avoir une vue d'ensemble. LightBox2 est un excellent plug-in Jquery parmi de nombreux produits. Je n'entrerai pas dans les détails de la configuration. Ce que je souhaite principalement partager aujourd'hui, c'est : comment zoomer et dézoomer sur l'image grâce à la molette de la souris après avoir cliqué sur la grande image,
1. Modifiez le code source de Lightbox pour prendre en charge le zoom sur la roue
Le principal moyen de prendre en charge la molette de la souris est de lier l'intégralité de la boîte contextuelle à l'événement mousewheel. Ouvrez lightbox.js et recherchez la section Lightbox.prototype.build = function() {...}, qui peut. être trouvé ici (temps d'initialisation de la lightbox) Liez l'événement de molette de défilement souhaité, par exemple, ajoutez le code suivant à la fin de la fonction :
Le code est plus facile à comprendre. Il consiste à ajouter une surveillance de la molette de la souris à la fois à l'arrière-plan et à l'image de devant, puis à redimensionner la hauteur et la largeur proportionnellement (faites défiler vers le haut pour zoomer, faites défiler vers le bas pour effectuer un zoom arrière). chaque hauteur passe à 20 pixels, puis la largeur change proportionnellement. Ce qui nécessite une attention particulière, c'est la taille minimale réduite de l'image, et l'agrandissement de l'image ne peut pas dépasser la limite de la plage de l'écran. Dans le même temps, pour une meilleure expérience, assurez-vous d'ajouter e.stopPropagation() et de renvoyer false pour empêcher le navigateur de défiler.
2. Modifiez le code source de Lightbox pour prendre en charge les images Base64
Il peut être difficile d'en parler ici. Jetons d'abord un coup d'œil aux exigences en matière de format de code HTML lors de l'utilisation de Lightbox native :
Il s'agit de l'image pop-up la plus simple. Lorsque vous cliquez sur l'image n°1, une lightbox apparaîtra pour afficher le contenu de img/image.jpg (un élément Considérons maintenant cette situation. Si l'image est encodée en Base64 sur le serveur, est-elle stockée dans la base de données ? Ça devrait être ça :
Voici le problème, la longueur du href est limitée sous IE Il est impossible de mettre une grande image dans le champ href, et l'image sera castré (seule la partie supérieure sera affichée).
Il existe une autre situation courante. Si j'affiche d'abord la petite image et que je clique sur la petite image pour voir la grande image, cela devrait ressembler à ceci :
D'accord, il y a deux données base64 en double, et elles sont toutes deux transmises depuis le serveur, ce qui prend du temps et de la bande passante.
Je l'ai donc modifié selon mes besoins. Le code est très simple Modifier la sous-fonction addToAlbum:
La partie commentée est l'originale, $link est la balise a dans le code HTML précédent, la fonction de la fonction addToAlbum après le changement est : lors de la définition du src de l'image pop-up, les caractères ne sont plus pris à partir du href d'origine en tant que src contextuel de la balise img, mais recherchez directement l'attribut src à partir du sous-élément de la balise a. Étant donné que la longueur de l'attribut src est illimitée, cela ne posera pas de problème de troncature d'image. .
3. Appliquer Lightbox aux articles existants
La section 2 a déjà mentionné que le HTML a un certain format lors de l'utilisation de Lightbox. Si les images dans les articles existants ressemblent à , elles doivent être modifiées.
Parmi eux, "lightbox-container" est la classe du conteneur où se trouve l'article. La fonction initLightbox doit être placée lorsque la page est prête à être chargée. Elle encapsulera toutes les balises img de l'article au format lightbox.
C'est tout pour cet article. Pour les points 2 et 3, vous pouvez les utiliser selon vos propres scénarios d'utilisation. L'objectif des modifications de la lightbox est de prendre en charge le zoom avec la molette de défilement.
Ci-joint la lightbox modifiée http://xiazai.jb51.net/201412/yuanma/lightbox(jb51.net).rar