Implémentation de l'effet de flux en cascade des images basées sur JavaScript
La disposition en flux en cascade est un moyen courant d'afficher des images sur des pages Web. Elle permet d'afficher les images de manière fluide, donnant aux gens un effet visuel unique. Dans cet article, nous utiliserons JavaScript pour implémenter un simple effet de cascade d'images.
<div id="gallery"></div>
#gallery { width: 1000px; column-count: 4; column-gap: 20px; } #gallery img { width: 100%; position: absolute; }
var container = document.getElementById('gallery'); var images = [ 'path_to_image1', 'path_to_image2', 'path_to_image3', // ... ];
Ensuite, nous devons créer un tableau pour contenir la hauteur de chaque colonne.
var columnHeights = [];
Ensuite, nous pouvons parcourir toutes les ressources d'image, créer un élément img pour chaque image et l'ajouter à l'élément conteneur. Dans le même temps, nous devons calculer où chaque image doit être placée.
images.forEach(function(image) { // 创建 img 元素 var img = new Image(); img.src = image; // 计算图片应放置的位置 var columnIndex = 0; var minHeight = columnHeights[0]; for(var i = 1; i < columnHeights.length; i++) { if(columnHeights[i] < minHeight) { columnIndex = i; minHeight = columnHeights[i]; } } var left = columnIndex * (img.width + 20); var top = minHeight; // 设置图片位置 img.style.left = left + 'px'; img.style.top = top + 'px'; // 更新列高度 columnHeights[columnIndex] = top + img.height + 20; // 将图片添加到容器元素中 container.appendChild(img); });
图片瀑布流效果 <div id="gallery"></div> <script> var container = document.getElementById('gallery'); var images = [ 'path_to_image1', 'path_to_image2', 'path_to_image3', // ... ]; var columnHeights = []; images.forEach(function(image) { var img = new Image(); img.src = image; var columnIndex = 0; var minHeight = columnHeights[0]; for(var i = 1; i < columnHeights.length; i++) { if(columnHeights[i] < minHeight) { columnIndex = i; minHeight = columnHeights[i]; } } var left = columnIndex * (img.width + 20); var top = minHeight; img.style.left = left + 'px'; img.style.top = top + 'px'; columnHeights[columnIndex] = top + img.height + 20; container.appendChild(img); }); </script>
Grâce au code ci-dessus, nous avons implémenté avec succès un simple effet de flux de cascade d'images. Dans les projets réels, des modifications de style plus complexes et des fonctions interactives peuvent être ajoutées à la disposition du flux en cascade en fonction des besoins.
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!