jQuery實(shí)現(xiàn)動(dòng)態(tài)加載瀑布流
jquery實(shí)現(xiàn)瀑布流,供大家參考,具體內(nèi)容如下
案例分析
- 首先,它的每個(gè)圖片是等寬的
- 其次,除第一排正常顯示其余的圖片都會(huì)顯示在上一排中高度最小的那個(gè)圖片的下面
- 最后,就是根據(jù)最矮圖片所在位置的寬高來,決定絕對(duì)定位設(shè)置圖片顯示的位置
效果圖
實(shí)現(xiàn)步驟
html結(jié)構(gòu)
<div class="container"> <div class="box"> <div class="content"><img src="./image/1.jpg" alt=""></div> </div> <div class="box"> <div class="content"><img src="./image/2.jpg" alt=""></div> </div> <div class="box"> <div class="content"><img src="./image/3.jpg" alt=""></div> </div> </div> </div>
css樣式
具體就是對(duì)每個(gè)boxdiv浮動(dòng)并設(shè)置樣式
* { padding: 0; margin: 0; } .box { position: relative; float: left; margin: 10px; } .content { padding: 15px; border: 1px solid #ccc; box-shadow: 0 0 5px #ccc; border-radius: 10px; } .content img { width: 200px; height: auto; }
js(jquery)代碼
主要是根據(jù)一排中高度最小的寬度個(gè)高度進(jìn)行絕對(duì)定位的設(shè)置
<script> $(function () { //jQuery代碼 imgLocation() function imgLocation() { var box = $('.box') var num = Math.floor($(window).width() / box.eq(0).width()) var boxHeights = [] box.each(function (index, value) { var boxHeight = box.eq(index).height() if (index < num) { boxHeights[index] = boxHeight } else { var minHeight = Math.min.apply(null, boxHeights) var minIndex = $.inArray(minHeight, boxHeights) $(value).css({ 'position': 'absolute', 'top': minHeight, 'left': box.eq(minIndex).position().left }); boxHeights[minIndex] += box.eq(index).height() } }) } }) </script>
根據(jù)鼠標(biāo)的滾動(dòng)動(dòng)態(tài)的加載圖片
案例分析
這里的動(dòng)態(tài)是主要是模仿動(dòng)態(tài)加載數(shù)據(jù)(偽動(dòng)態(tài))
- 首先,根據(jù)鼠標(biāo)滾動(dòng)的大小和界面的高度判斷是否要?jiǎng)討B(tài)加載
- 其次,就是訪問數(shù)據(jù),并動(dòng)態(tài)形成jquery數(shù)據(jù)類型
- 最后,把生成的數(shù)據(jù)追加的.container中進(jìn)行顯示
效果圖
實(shí)現(xiàn)步驟
- html和css的代碼都一樣這里就不重復(fù)寫了
- js代碼
主要是判斷什么時(shí)候新增圖片數(shù)據(jù),新增后插入到模板就行了
其中的dataImg就是模仿的假數(shù)據(jù)
var dataImg = { 'data': [{ 'src': '1.jpg' }, { 'src': '2.jpg' }, { 'src': '3.jpg' }, { 'src': '4.jpg' }] } window.onscroll = function () { if (scrollside()) { $.each(dataImg.data, function (index, value) { var html = `<div class="box"> <div class="content"><img src="./image/${value.src}" alt=""></div> </div>` $(html).appendTo($('.container')) }) imgLocation() } } function scrollside() { var box = $('.box') var lastboxHeight = box.last().get(0).offsetTop var documentHeight = document.body.scrollHeight + 130 var scrollHeight = $(document).scrollTop() console.log(lastboxHeight, scrollHeight, documentHeight) return (lastboxHeight < scrollHeight + documentHeight) ? true : false } oxHeight, scrollHeight, documentHeight) return (lastboxHeight < scrollHeight + documentHeight) ? true : false }
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Jquery瀑布流插件使用介紹
- jQuery 瀑布流 浮動(dòng)布局(一)(延遲AJAX加載圖片)
- jQuery Masonry瀑布流插件使用詳解
- jQuery瀑布流插件Wookmark使用實(shí)例
- jQuery實(shí)現(xiàn)瀑布流布局詳解(PC和移動(dòng)端)
- jQuery 瀑布流 絕對(duì)定位布局(二)(延遲AJAX加載圖片)
- jQuery實(shí)現(xiàn)瀑布流布局
- jQuery.lazyload+masonry改良圖片瀑布流代碼
- jquery簡單瀑布流實(shí)現(xiàn)原理及ie8下測試代碼
- jQuery向下滾動(dòng)即時(shí)加載內(nèi)容實(shí)現(xiàn)的瀑布流效果
相關(guān)文章
jquery+json實(shí)現(xiàn)動(dòng)態(tài)商品內(nèi)容展示的方法
這篇文章主要介紹了jquery+json實(shí)現(xiàn)動(dòng)態(tài)商品內(nèi)容展示的方法,涉及jQuery操作及解析json格式數(shù)據(jù)的相關(guān)技巧,需要的朋友可以參考下2016-01-01jQuery 入門級(jí)學(xué)習(xí)筆記及源碼
本周公司技術(shù)講座輪到我了,準(zhǔn)備說說現(xiàn)在流行的jQuery,下面是概要提綱,關(guān)鍵是看custom.js,已上傳源碼,程序中“//##”是分段用的,大家可以根據(jù)每一段取消注釋,然后找到相應(yīng)的id或class名查看效果。2010-01-01jQuery熱氣球動(dòng)畫半透明背景的后臺(tái)登錄界面代碼分享
這篇文章主要介紹了jQuery實(shí)現(xiàn)熱氣球動(dòng)畫背景登錄框,適合用于后臺(tái)登陸界面設(shè)計(jì),推薦給大家,有需要的小伙伴可以參考下。2015-08-08用jquery和json從后臺(tái)獲得數(shù)據(jù)集的代碼
最近正在用ajax無刷新做網(wǎng)站,發(fā)現(xiàn)數(shù)據(jù)很好傳輸,但是數(shù)據(jù)集不知道怎么獲得,于是,上網(wǎng)查了一些資料來傳輸數(shù)據(jù),現(xiàn)在和大家分享一下,不知道的童鞋可以和我一起學(xué)習(xí),知道的請(qǐng)指點(diǎn)一二。我選擇的方法是用json 來獲取數(shù)據(jù)集2011-11-11JQuery異步加載無限下拉框級(jí)聯(lián)功能實(shí)現(xiàn)示例
這篇文章主要介紹了JQuery異步加載無限下拉框級(jí)聯(lián)功能的實(shí)現(xiàn),需要的朋友可以參考下2014-02-02jQuery實(shí)現(xiàn)判斷控件是否顯示的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)判斷控件是否顯示的方法,涉及jQuery針對(duì)頁面元素屬性相關(guān)操作技巧,需要的朋友可以參考下2017-01-01精心挑選的12款優(yōu)秀的基于jQuery的手風(fēng)琴效果插件和教程
當(dāng)你想在有限的頁面空間內(nèi)展示多個(gè)內(nèi)容片段的時(shí)候,手風(fēng)琴(Accordion)效果就顯得非常有用,它可以幫助你以對(duì)用戶非常友好的方式實(shí)現(xiàn)多個(gè)內(nèi)容片段之間的切換。借助流行的 jQuery 框架,只需很少的代碼就可以實(shí)現(xiàn)精美的手風(fēng)琴效果,幫助你的網(wǎng)站吸引更多用戶的眼球2012-08-08淺談jQuery this和$(this)的區(qū)別及獲取$(this)子元素對(duì)象的方法
下面小編就為大家?guī)硪黄獪\談jQuery this和$(this)的區(qū)別及獲取$(this)子元素對(duì)象的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11jQuery實(shí)現(xiàn)標(biāo)簽子元素的添加和賦值方法
下面小編就為大家分享一篇jQuery實(shí)現(xiàn)標(biāo)簽子元素的添加和賦值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-02-02