本文實例為大家分享了js實現瀑布流效果的具體代碼,供大家參考,具體內容如下
前端內容:
使用JavaScript和四個div,將照片放入四個div中
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> .container { width: 1000px; margin: 0 auto; background-color: lightgray; } .item { width: 24%; margin-right: 10px; float: left; } .item img{ width: 100%; } </style></head><body>{#將內容放在container中#}<div class="container">{# 將圖片內容放入四個item中,形成四個item#} <div class="item"></div> <div class="item"></div> <div class="item"></div> <div class="item"></div> </div><script src="/static/js/jquery-2.1.4.min.js"></script><script> $(function () {{# 網頁加載時自動執行#} var obj = new ScrollImg(); obj.fetchImg(); obj.scrollEvent(); }) {# 定義對象#} function ScrollImg() { this.nid = 0;{# 取照片方法#} this.fetchImg = function () { var that = this $.ajax({ url: '/get_imgs.html', type: 'GET',{# 傳輸數據,已經取了多少照片,后臺可以依據,繼續取照片#} data: {'nid': that.nid}, dataType: 'JSON', success: function (args) { if (args.status) { var img_list = args.data; $.each(img_list, function (index, obj) { var eqv = that.nid % 4; var tag = document.createElement('img') tag.src = '/' + obj.img_dir; console.log(eqv) $('.container').children().eq(eqv).append(tag) that.nid += 1; }) } } }) }{# 監聽滾動條,當滾到底部時,自動加載數據#} this.scrollEvent = function () { var that = this; $(window).scroll(function () { var srollTop = $(window).scrollTop(); var winHeight = $(window).height(); var docHeight = $(document).height(); if (srollTop + winHeight >= docHeight - 2) { that.fetchImg(); } }) } }</script></body></html>后臺內容:
基于Django的FBV,函數視圖,進行數據的讀取和處理ajax請求
def get_imgs(request): # 獲取已經取得的照片數目 index = request.GET.get('nid') #獲取QuerySet集合對象,取從index后的10調數據 imgs_list = models.Student.objects.values('id','img_dir','name')[index:index+10] imgs_list = list(imgs_list) # 傳送狀態和數據內容 ret = { 'status':True, 'data':imgs_list } return JsonResponse(ret)以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。
新聞熱點
疑難解答
圖片精選