Jquery实现瀑布流布局(备有详细注释)_jquery
本文实例讲述了Jquery实现瀑布流布局的方法。分享给大家供大家参考。具体如下:
瀑布流布局最近真的很流行,很多人都跟我一样想知道是怎么做出来的吧,经过网上搜索大量的参考结合N边的实验今天终于被我写出来了,为了便于大家理解我使用了jQuery(当然用源生js代码执行的效率会高一些,但是很多人多源生js不是很熟练)。
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Jquery瀑布流布局(每行代码都有详细注释)-作者:刘晓帆</title> <style type="text/css"> body, ul, li, h3 { margin: 0; padding: 0; list-style: none; font: bold 12px "微软雅黑"; } /*瀑布流布局样式*/ #lxf-box { position: relative; } #lxf-box li { position: absolute; background: #fff; border: solid 1px #ccc; text-align: center; padding: 10px; left: 0px; top: 0; } h3 { padding-top: 8px; } img { width: 200px; height: auto; display: block; border: 0 } /*css3动画*/ li { -webkit-transition: all .7s ease-out .1s; -moz-transition: all .7s ease-out; -o-transition: all .7s ease-out .1s; transition: all .7s ease-out .1s } </style> <script src="/js/jquery-1.6.4.min.js" type="text/javascript"></script> </head> <body> <ul id="lxf-box"> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/OLqypfV.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/msbvKWyQQzZuZy.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/WbWXwqpcxqcued.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/rabGVkIGq.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/rSmEiZGlAvvuZ.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/YewRtz.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/STVDndiZsIduZyLv.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/mWFuVrzCzpPdzdje.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/MsZvAyOFukxdzdjefXwi.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/OEycuedk.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/YwabRquVKrxd.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/+nwbuJpc.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/qymffF.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/DvKZdxCjtfqMv.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/SOmyOQZtlUfdzdjefXwi.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/REsUNXUvAkrdzdj.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/DQJwrFnDpgtdz.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/eJupzWlGPxz.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/IWpjipjp.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/OXsDgKacJeTdzdjefXwi.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/QPIzxiMkmlHdzdjefX.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/mrTNaJTaQyluZyLvvnWS.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/mqXLNuWiPrbdz.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/MiEJRJdimxPdzdjefXw.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/CczowVxqM.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/rabGVkIGq.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> <li><a href="/"><img src="/static/imghw/default1.png" data-src="/demo/waterfall/zwPqjasxHYvdz.jpg" class="lazy" alt="Jquery实现瀑布流布局(备有详细注释)_jquery" ></a> <h3 id="图片标题">图片标题</h3> </li> </ul> <script> /* 原理: 1.把所有的li的高度值放到数组里面 2.第一行的top都为0 3.计算高度值最小的值是哪个li 4.把接下来的li放到那个li的下面 */ var margin = 10;//这里设置间距 var li=$("li");//这里是区块名称 var li_W = li[0].offsetWidth+margin; //取区块的实际宽度(包含间距,这里使用源生的offsetWidth函数,不适用jQuery的width()函数是因为它不能取得实际宽度,例如元素内有pandding就不行了) function liuxiaofan(){//定义成函数便于调用 var h=[];//记录区块高度的数组 var n = document.documentElement.offsetWidth/li_W|0; //窗口的宽度除以区块宽度就是一行能放几个区块 for(var i = 0;i < li.length;i++) {//有多少个li就循环多少次 li_H = li[i].offsetHeight;//获取每个li的高度 if(i < n) {//n是一行最多的li,所以小于n就是第一行了 h[i]=li_H;//把每个li放到数组里面 li.eq(i).css("top",0);//第一行的Li的top值为0 li.eq(i).css("left",i * li_W); //第i个li的左坐标就是i*li的宽度 } else{ min_H =Math.min.apply(null,h) ;//取得数组中的最小值,区块中高度值最小的那个 minKey = getarraykey(h, min_H);//最小的值对应的指针 h[minKey] += li_H+margin ;//加上新高度后更新高度值 li.eq(i).css("top",min_H+margin);//先得到高度最小的Li,然后把接下来的li放到它的下面 li.eq(i).css("left",minKey * li_W); //第i个li的左坐标就是i*li的宽度 } $("h3").eq(i).text("编号:"+i+",高度:"+li_H);//把区块的序号和它的高度值写入对应的区块H3标题里面 } } /* 使用for in运算返回数组中某一值的对应项数(比如算出最小的高度值是数组里面的第几个) */ function getarraykey(s, v) {for(k in s) {if(s[k] == v) {return k;}}} /*这里一定要用onload,因为图片不加载完就不知道高度值*/ window.onload = function() {liuxiaofan();}; /*浏览器窗口改变时也运行函数*/ window.onresize = function() {liuxiaofan();}; </script> </body> </html>
希望本文所述对大家的jquery程序设计有所帮助。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Penjelasan terperinci kaedah rujukan jQuery: Panduan Mula Pantas jQuery ialah perpustakaan JavaScript yang popular yang digunakan secara meluas dalam pembangunan tapak web Ia memudahkan pengaturcaraan JavaScript dan menyediakan pemaju dengan fungsi dan ciri yang kaya. Artikel ini akan memperkenalkan kaedah rujukan jQuery secara terperinci dan menyediakan contoh kod khusus untuk membantu pembaca bermula dengan cepat. Memperkenalkan jQuery Pertama, kita perlu memperkenalkan perpustakaan jQuery ke dalam fail HTML. Ia boleh diperkenalkan melalui pautan CDN atau dimuat turun

Bagaimana untuk menggunakan kaedah permintaan PUT dalam jQuery? Dalam jQuery, kaedah menghantar permintaan PUT adalah serupa dengan menghantar jenis permintaan lain, tetapi anda perlu memberi perhatian kepada beberapa butiran dan tetapan parameter. Permintaan PUT biasanya digunakan untuk mengemas kini sumber, seperti mengemas kini data dalam pangkalan data atau mengemas kini fail pada pelayan. Berikut ialah contoh kod khusus menggunakan kaedah permintaan PUT dalam jQuery. Mula-mula, pastikan anda memasukkan fail perpustakaan jQuery, kemudian anda boleh menghantar permintaan PUT melalui: $.ajax({u

jQuery ialah perpustakaan JavaScript yang pantas, kecil dan kaya dengan ciri yang digunakan secara meluas dalam pembangunan bahagian hadapan. Sejak dikeluarkan pada tahun 2006, jQuery telah menjadi salah satu alat pilihan untuk banyak pembangun, tetapi dalam aplikasi praktikal, ia juga mempunyai beberapa kelebihan dan kekurangan. Artikel ini akan menyediakan analisis mendalam tentang kelebihan dan kekurangan jQuery dan menggambarkannya dengan contoh kod khusus. Kelebihan: 1. Sintaks ringkas Reka bentuk sintaks jQuery adalah ringkas dan jelas, yang boleh meningkatkan kebolehbacaan dan kecekapan menulis kod. sebagai contoh,

Bagaimana untuk mengalih keluar atribut ketinggian elemen dengan jQuery? Dalam pembangunan bahagian hadapan, kita sering menghadapi keperluan untuk memanipulasi atribut ketinggian elemen. Kadangkala, kita mungkin perlu menukar ketinggian unsur secara dinamik, dan kadangkala kita perlu mengalih keluar atribut ketinggian unsur. Artikel ini akan memperkenalkan cara menggunakan jQuery untuk mengalih keluar atribut ketinggian elemen dan memberikan contoh kod khusus. Sebelum menggunakan jQuery untuk mengendalikan atribut ketinggian, kita perlu terlebih dahulu memahami atribut ketinggian dalam CSS. Atribut ketinggian digunakan untuk menetapkan ketinggian elemen

Tajuk: Petua jQuery: Cepat ubah suai teks semua teg pada halaman Dalam pembangunan web, kita selalunya perlu mengubah suai dan mengendalikan elemen pada halaman. Apabila menggunakan jQuery, kadangkala anda perlu mengubah suai kandungan teks semua teg dalam halaman sekaligus, yang boleh menjimatkan masa dan tenaga. Berikut akan memperkenalkan cara menggunakan jQuery untuk mengubah suai teks semua teg pada halaman dengan cepat, dan memberikan contoh kod khusus. Pertama, kita perlu memperkenalkan fail perpustakaan jQuery dan memastikan bahawa kod berikut dimasukkan ke dalam halaman: <

Tajuk: Gunakan jQuery untuk mengubah suai kandungan teks semua teg jQuery ialah perpustakaan JavaScript yang popular yang digunakan secara meluas untuk mengendalikan operasi DOM. Dalam pembangunan web, kita sering menghadapi keperluan untuk mengubah suai kandungan teks tag pautan (tag) pada halaman. Artikel ini akan menerangkan cara menggunakan jQuery untuk mencapai matlamat ini dan memberikan contoh kod khusus. Pertama, kita perlu memperkenalkan perpustakaan jQuery ke dalam halaman. Tambahkan kod berikut dalam fail HTML:

jQuery ialah perpustakaan JavaScript popular yang digunakan secara meluas untuk mengendalikan manipulasi DOM dan pengendalian acara dalam halaman web. Dalam jQuery, kaedah eq() digunakan untuk memilih elemen pada kedudukan indeks tertentu Senario penggunaan dan aplikasi khusus adalah seperti berikut. Dalam jQuery, kaedah eq() memilih elemen pada kedudukan indeks yang ditentukan. Kedudukan indeks mula dikira dari 0, iaitu indeks elemen pertama ialah 0, indeks elemen kedua ialah 1, dan seterusnya. Sintaks kaedah eq() adalah seperti berikut: $("s

Bagaimana untuk mengetahui sama ada elemen jQuery mempunyai atribut tertentu? Apabila menggunakan jQuery untuk mengendalikan elemen DOM, anda sering menghadapi situasi di mana anda perlu menentukan sama ada sesuatu elemen mempunyai atribut tertentu. Dalam kes ini, kita boleh melaksanakan fungsi ini dengan mudah dengan bantuan kaedah yang disediakan oleh jQuery. Berikut akan memperkenalkan dua kaedah yang biasa digunakan untuk menentukan sama ada elemen jQuery mempunyai atribut khusus, dan melampirkan contoh kod tertentu. Kaedah 1: Gunakan kaedah attr() dan operator jenis // untuk menentukan sama ada elemen mempunyai atribut tertentu
