Comment obtenir un effet de flux en cascade dans JS
Je vais prendre le temps d'écrire un autre article aujourd'hui, sur l'effet du débit d'eau en cascade. Quiconque a travaillé sur iOS sait que le flux en cascade est également une méthode de mise en page très populaire dans iOS, je ne la présenterai donc pas ici. Voyons comment utiliser JS pour obtenir l'effet de flux en cascade.
Je viens de saisir le code directement, et les commentaires à l'intérieur sont très clairs. Si vous ne comprenez pas, vous pouvez me demander.
html :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>瀑布流效果</title> <link href="css/index.css" rel="stylesheet"> </head> <body> <!--父标签--> <p id="main"> <p class="box"> <p class="pit"> <img src="images/0.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/1.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/2.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/3.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/4.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/5.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/6.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/7.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/8.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/9.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/10.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/11.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/12.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/13.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/14.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/15.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/16.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/17.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/18.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/19.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/20.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/21.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/22.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/23.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/24.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/25.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/26.jpg"> </p> </p> <p class="box"> <p class="pit"> <img src="images/27.jpg"> </p> </p> </p> <script src="js/index.js" type="text/javascript"></script> </body> </html>
CSS :
a, address, b, big, blockquote, body, center, cite, code, dd, del, p, dl, dt, em, fieldset, font, form, h1, h2, h3, h4, h5, h6, html, i, iframe, img, ins, label, legend, li, ol, p, pre, small, span, strong, u, ul, var{ padding: 0; margin: 0; } #main { position: relative; } #main .box { padding: 15px 0 0 15px; float: left; } #main .box .pit { padding: 5px; border: 1px solid #ddd; border-radius: 5px; box-shadow: 0 0 2px gray; width: 165px; } #main .box .pit img { width: 165px; }
JS :
/** * Created by huminghao on 2017/7/5. */ function $(id) { return typeof id === 'string' ? document.getElementById(id) : id; } // 当页面加载完毕 window.onload = function () { // 实现瀑布流 waterFlow('main', 'box'); // 监听页面的滚动 window.onscroll = function () { // 判断是否具备加载图片的条件 if (checkWillLoadImg()) { // 造数据 var dataImg = {'data' : [{'src' : '0.jpg'}, {'src' : '1.jpg'},{'src' : '2.jpg'},{'src' : '3.jpg'},{'src' : '4.jpg'},{'src' : '5.jpg'},{'src' : '6.jpg'},{'src' : '7.jpg'},{'src' : '0.jpg'},{'src' : '0.jpg'},{'src' : '0.jpg'},{'src' : '0.jpg'},{'src' : '0.jpg'},{'src' : '0.jpg'},{'src' : '0.jpg'},{'src' : '0.jpg'},{'src' : '0.jpg'},{'src' : '0.jpg'},{'src' : '0.jpg'},{'src' : '0.jpg'}]} for (var i = 0; i < dataImg.data; i ++) { // 创建最外层的盒子 var newBox = document.createElement('p'); newBox.className = 'box'; $('main').appendChild(newBox); // 创建里面的盒子 var newPic = document.createElement('p'); newPic.className = 'pic'; newBox.appendChild(newPic); // 创建图片 var newImg = document.createElement('img'); newImg.src = 'images/' + dataImg.data[i].src; newPic.appendChild(newImg); } } } } // 实现瀑布流 function waterFlow(parent, box) { // 让所有盒子的父标签居中 // 1.拿到所有的盒子 var allBoxs = $(parent).getElementsByClassName(box); // 2.拿到其中一个盒子的宽度 var boxWidth = allBoxs[0].offsetWidth; // 3.求出页面的宽度 var screenWidth = document.body.clientWidth; // 4.求出列数 var clos = Math.floor(screenWidth / boxWidth); // 5.让父标签居中 $(parent).style.cssText = 'width: ' + clos * boxWidth + 'px; margin: 0 auto'; // 定位 // 定义一个高度数组 var heightArray = []; // 遍历 for (var i = 0; i < allBoxs.length; i ++) { // 求出所有盒子的高度 var boxHeight = allBoxs[i].offsetHeight; if (i<clos) { // 第一行 heightArray.push(boxHeight); console.log(heightArray); }else { // 剩余行 // 取出最矮盒子 var minBoxHeight = Math.min.apply(null, heightArray); // 取出最矮盒子对应的索引 var minBoxIndex = getMinIndex(minBoxHeight, heightArray); // 对剩余的盒子进行定位 allBoxs[i].style.position = 'absolute'; allBoxs[i].style.top = minBoxHeight + 'px'; allBoxs[i].style.left = minBoxIndex * boxWidth + 'px'; // 替换高度 heightArray[minBoxIndex] = minBoxHeight + boxHeight; } } } // 求出最矮盒子在数组中的索引 function getMinIndex(value, array) { for (var i = 0; i < array.length; i ++) { if (value == array[i]) { return i; } } } // 判断是否具备加载图片的条件 function checkWillLoadImg() { // 拿到所有的盒子 var allBoxs = $('main').getElementsByClassName('box'); // 取出最后一个盒子 var lastBox = allBoxs[allBoxs.length - 1]; // 求出最后一个盒子高度的一半 + 头部偏移的位置 var lastBoxHeightDis = lastBox.offsetHeight * 0.5 + lastBox.offsetTop; // 求出屏幕的高度 var screenHeight = document.body.clientHeight || document.documentElement.clientHeight; // 求出页面偏离浏览器的高度 var offSetTop = document.body.offsetTop || document.documentElement.offsetTop; console.log(lastBoxHeightDis, screenHeight, offSetTop); return lastBoxHeightDis < (offSetTop + screenHeight) ? true : false; }
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Vous avez peut-être rencontré le problème des lignes vertes apparaissant sur l'écran de votre smartphone. Même si vous ne l'avez jamais vu, vous avez sûrement vu des images associées sur Internet. Alors, avez-vous déjà rencontré une situation où l’écran de la montre intelligente devient blanc ? Le 2 avril, CNMO a appris par des médias étrangers qu'un utilisateur de Reddit avait partagé une photo sur la plateforme sociale, montrant l'écran des montres intelligentes de la série Samsung Watch devenant blanc. L'utilisateur a écrit : « J'étais en train de charger quand je suis parti, et quand je suis revenu, c'était comme ça. J'ai essayé de redémarrer, mais l'écran était toujours comme ça pendant le processus de redémarrage. L'écran de la montre intelligente Samsung Watch est devenu blanc. L'utilisateur de Reddit n'a pas précisé le modèle spécifique de la montre intelligente. Cependant, à en juger par l’image, il devrait s’agir de la Samsung Watch5. Auparavant, un autre utilisateur de Reddit avait également signalé

En parlant d'ASSASSIN, je pense que les joueurs penseront certainement aux maîtres assassins d'"Assassin's Creed". Ils sont non seulement talentueux, mais ont aussi le credo de "se consacrer aux ténèbres et au service de la lumière". châssis/alimentation/refroidissement domestiques bien connus La série ASSASSIN de radiateurs refroidis par air phares de la marque d'appareils DeepCool coïncide les uns avec les autres. Récemment, le dernier produit de cette série, ASSASSIN4S, a été lancé "Assassin in Suit, Advanced" et apporte une nouvelle expérience de refroidissement par air aux joueurs avancés. L'apparence est pleine de détails. Le radiateur Assassin 4S adopte une structure à double tour + un seul ventilateur intégré. L'extérieur est recouvert d'un carénage en forme de cube, qui a un fort sens général. Couleurs pour répondre à différentes couleurs.

Avec l’arrivée du printemps, tout renaît et tout est plein de vitalité et de vitalité. En cette belle saison, comment ajouter une touche de couleur à votre intérieur ? Le projecteur Haqu H2, avec son design exquis et son excellent rapport coût-efficacité, est devenu une beauté indispensable ce printemps. Ce projecteur H2 est compact mais élégant. Qu'il soit placé sur le meuble TV du salon ou à côté de la table de chevet dans la chambre, il peut devenir un magnifique paysage. Son corps est fait d'une texture mate blanc laiteux. Cette conception donne non seulement au projecteur un aspect plus avancé, mais augmente également le confort du toucher. Le matériau texturé en cuir beige ajoute une touche de chaleur et d'élégance à l'apparence générale. Cette combinaison de couleurs et de matériaux est non seulement conforme à la tendance esthétique des maisons modernes, mais peut également être intégrée dans

Grâce à sa taille compacte, la plate-forme ITX a attiré de nombreux acteurs à la recherche d'une beauté ultime et unique. Grâce à l'amélioration des processus de fabrication et aux progrès technologiques, les cartes graphiques Intel Core de 14e génération et les séries RTX40 peuvent exercer leur force sur la plate-forme ITX. les joueurs ont également des exigences plus élevées en matière d'alimentation SFX. Huntkey, passionné de jeux, a lancé une nouvelle alimentation de la série MX dans la plate-forme ITX qui répond aux exigences de haute performance, l'alimentation à module complet MX750P a une puissance nominale allant jusqu'à 750 W et a passé la certification de niveau platine 80PLUS. Ci-dessous, nous apportons l’évaluation de cette alimentation. L'alimentation à module complet Huntkey MX750P adopte un concept de design simple et à la mode. Il existe deux modèles en noir et blanc parmi lesquels les joueurs peuvent choisir. Les deux utilisent un traitement de surface mat et ont une bonne texture avec des polices gris argenté et rouge.

Un modèle volumineux capable d'analyser automatiquement le contenu des PDF, des pages Web, des affiches et des graphiques Excel n'est pas très pratique pour les travailleurs. Le modèle InternLM-XComposer2-4KHD (en abrégé IXC2-4KHD) proposé par Shanghai AILab, l'Université chinoise de Hong Kong et d'autres instituts de recherche en fait une réalité. Par rapport à d'autres grands modèles multimodaux qui ont une limite de résolution ne dépassant pas 1 500 x 1 500, ce travail augmente l'image d'entrée maximale des grands modèles multimodaux à une résolution supérieure à 4K (3 840 x 1 600) et prend en charge n'importe quel rapport d'aspect et 336 pixels en 4K. Changements de résolution dynamiques. Trois jours après sa sortie, le modèle était en tête de la liste de popularité des modèles de réponses visuelles aux questions HuggingFace. Facile à manier

Dans l’ère actuelle de développement technologique rapide, les ordinateurs portables sont devenus un outil indispensable et important dans la vie quotidienne et au travail des gens. Pour les joueurs qui ont des exigences de performances élevées, un ordinateur portable doté d’une configuration puissante et d’excellentes performances peut répondre à leurs besoins les plus exigeants. Avec ses excellentes performances et son design époustouflant, l'ordinateur portable Colorful Hidden Star P15 est devenu le leader du futur et peut être qualifié de modèle d'ordinateurs portables durs. Colorful Hidden Star P1524 est équipé d'un processeur Intel Core i7 de 13e génération et d'un GPU RTX4060Laptop. Il adopte un style de conception de vaisseau spatial plus à la mode et offre d'excellentes performances dans les détails. Jetons d'abord un coup d'œil aux fonctionnalités de ce portable. Supreme équipé du processeur Intel Core i7-13620H

Sur le marché actuel des smartphones, la qualité de l'écran est devenue l'un des indicateurs clés pour mesurer les performances globales d'un téléphone mobile. La série Neo d'iQOO s'est toujours engagée à offrir aux utilisateurs une excellente expérience de jeu et un plaisir visuel. Le dernier produit iQOO Neo9SPro+ utilise un « écran de jeu à trois bonnes protections oculaires ». Ensuite, jetons un coup d'œil à la qualité de cet écran. iQOO Neo9S Pro+ est équipé d'un écran direct e-sports 1,5 KOLED, qui prend en charge le taux de rafraîchissement adaptatif phare LTPO de 1 Hz à 144 Hz, ce qui signifie qu'il peut atteindre un état de veille à très faible consommation lors de l'affichage de contenu statique, et il peut également être intelligent pendant le jeu. Passez à la dynamique élevée de 90 Hz à 144 Hz.

De nombreux passionnés de photographie aiment utiliser des objectifs. Leurs besoins en matière de prise de vue sont très variables, c'est pourquoi lorsqu'il s'agit de sélectionner un objectif, ils préfèrent un produit plus polyvalent, ce que nous appelons communément l'objectif « un objectif pour conquérir le monde ». Il se trouve que Nikon a lancé un nouveau produit, l'objectif NIKKOR Z28-400mmf/4-8VR, un véritable objectif « unique qui peut conquérir le monde ». L'objectif s'étend de l'extrémité grand angle de 28 mm à l'extrémité du téléobjectif de 400 mm. Équipé de son appareil photo à monture Z, il peut facilement photographier une gamme très riche de thèmes photographiques et apporter un riche changement de perspective. Aujourd'hui, nous allons vous parler de cet objectif NIKKOR Z28-400mmf/4-8VR à travers notre récente expérience d'utilisation. NIKKOR Z28-400mmf/4-8VR est
