JavaScript Comment obtenir l'effet d'agrandissement des images au survol de la souris ?
De nos jours, la conception Web accorde de plus en plus d'attention à l'expérience utilisateur, et de nombreuses pages Web ajoutent des effets spéciaux aux images. Parmi eux, l'effet d'agrandissement de l'image au survol de la souris est un effet spécial courant, qui peut agrandir automatiquement l'image lorsque l'utilisateur passe la souris, augmentant ainsi l'interaction entre l'utilisateur et l'image. Cet article expliquera comment utiliser JavaScript pour obtenir cet effet et donnera des exemples de code spécifiques.
Analyse des idées :
Pour obtenir l'effet de grossissement de l'image au survol de la souris, nous pouvons utiliser JavaScript pour surveiller les événements de mouvement de la souris et ajouter des styles dynamiques à l'image pour obtenir l'effet de grossissement. Les étapes spécifiques de mise en œuvre sont les suivantes :
L'implémentation spécifique du code est la suivante :
<!DOCTYPE html> <html> <head> <style> .zoom-img { transition: transform 0.2s; } </style> </head> <body> <img src="image.jpg" class="zoom-img" id="zoomImg" alt="放大图片"> <script> var img = document.getElementById("zoomImg"); img.addEventListener("mousemove", handleMouseMove); function handleMouseMove(event) { var x = event.clientX; var y = event.clientY; var width = img.offsetWidth; var height = img.offsetHeight; var dx = x - (width / 2 + img.offsetLeft); var dy = y - (height / 2 + img.offsetTop); var scaleX = 1.1; var scaleY = 1.1; img.style.transform = "scale(" + scaleX + ", " + scaleY + ")"; img.style.transformOrigin = (dx / width) * 100 + "% " + (dy / height) * 100 + "%"; } img.addEventListener("mouseout", handleMouseOut); function handleMouseOut(event) { img.style.transform = ""; img.style.transformOrigin = ""; } </script> </body> </html>
Dans le code ci-dessus, nous avons ajouté une classe zoom-img
à l'élément image et passé getElementById
dans le Méthode de code JavaScript pour obtenir l'élément. Ensuite, nous utilisons la méthode addEventListener
pour ajouter deux écouteurs d'événements, l'un est l'événement mousemove
pour gérer le mouvement de la souris sur l'image, et l'autre est mouseout est utilisé pour gérer la restauration de l'effet lorsque la souris quitte l'image. <code>zoom-img
的类,并在JavaScript代码中通过getElementById
方法获取到了该元素。然后我们使用addEventListener
方法来添加了两个事件监听器,一个是mousemove
事件用于处理鼠标在图片上的移动,另一个是mouseout
事件用于处理鼠标离开图片时的效果复原。
在handleMouseMove
函数中,我们获取了鼠标在窗口中的坐标,并计算出相对于图片中心点的坐标。然后根据这个坐标值来计算放大的比例和缩放中心点,在修改样式时使用了transform
属性来实现图片的缩放效果。
在handleMouseOut
函数中,我们将图片的transform
和transformOrigin
handleMouseMove
, on obtient les coordonnées de la souris dans la fenêtre et on calcule les coordonnées par rapport au point central de l'image. Ensuite, le taux de grossissement et le point central du zoom sont calculés en fonction de cette valeur de coordonnées. Lors de la modification du style, l'attribut transform
est utilisé pour obtenir l'effet de zoom de l'image. Dans la fonction handleMouseOut
, nous réinitialisons les propriétés transform
et transformOrigin
de l'image en chaînes vides pour restaurer l'image à son état d'origine.
De cette façon, lorsque la souris se déplace sur l'image, l'image sera agrandie en fonction de la position de la souris, augmentant ainsi l'interaction entre l'utilisateur et l'image.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!