此版本,是方式二的升级版,一,将全局变量封装到函数内,二,添加滚轮,可以持续取数据

url文件

from django.contrib import admin
from django.urls import path
from app01 import viewsurlpatterns = [path('admin/', admin.site.urls),path('img.html/', views.img),path('get_img.html/', views.get_img),
]

views文件

from django.shortcuts import render,HttpResponse
from django.http import JsonResponse
from app01 import models
def img(request):return render(request,'img.html')def get_img(request):import jsonnid = request.GET.get('nid')img_list = models.Img.objects.filter(id__gt=nid).values('id','src','title')  #获取数据库的中数据img_list = list(img_list)ret = {'status':True,'data':img_list}# return HttpResponse(json.dumps(ret))return JsonResponse(ret)

html文件

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.w{width: 1000px;margin: 0 auto;}.item{width: 25%;float: left;}.item img{width: 100%;}</style>
</head>
<body><div>风景图片</div>
<div class="w"><div class="item"></div><div class="item"></div><div class="item"></div><div class="item"></div></div><script src="/static/jquery-3.3.1.js"></script><script>$(function () {var obj = new ScrollImg()obj.initImg()obj.scrollEvent()})function ScrollImg() {this.nid=0;this.lastPostion=3;var that = thisthis.initImg = function () {$.ajax({url:'/get_img.html',type:'GET',data:{'nid':that.nid},dataType:'JSON',success:function (arg) {var img_list = arg.data$.each(img_list,function (index,v) {var eqv = (index+that.lastPostion +1) % 4;console.log(eqv){#eqv就是图片的索引位置,加that.lastpostion+1 是为了第二次取到数据后,紧接继续拜访#}{# index是循环的索引,v是去到的值(字典形式的)#}var tag = document.createElement('img');{#创建一个img标签,标签的地址是'/'+v.src,然后将标签添加到对应的子标签#}tag.src='/'+v.src$('.w').children().eq(eqv).append(tag);{#  当循环到最后一个的时候,将图片ID复制给 NID  #}if(index+1 == img_list.length){{#that.nid = v.id#}{#  that.nid是向后台发送的nid,因为图片少,所以需要注掉先 #}that.lastPostion = eqv}})}})};this.scrollEvent = function () {$(window).scroll(function () {{#  什么时候滚轮到达最底部  #}{#  文档高度:可以理解为body高度#}var docHeight = $(document).height(){#  窗口高度:屏幕窗口#}var winHeight = $(window).height(){#  滚动条滑动的高度#}var scrollTop = $(window).scrollTop()if(winHeight+scrollTop == docHeight){that.initImg();}})}}{# 设置NID为全局变量,第一次ajax发送时是0.这时ajax只会从数据库取一部分数据,等滚轮划到底部,再出发ajax,再继续取值#}{#   下面可以监听鼠标滚轮动作,当滚轮到最底部时,继续执行initImg函数,然后到数据库中再取一次 #}</script></body>
</html>

转载于:https://www.cnblogs.com/lhqlhq/p/9210543.html

瀑布流方式三(方式二的升级版)相关推荐

  1. html布局结构瀑布流,三种方式实现瀑布流布局

    分别使用javascript,jquery,css实现瀑布流布局: 第一种方式:使用JavaScript: 瀑布流布局 *{padding:0;margin:0;} .clearfix:after, ...

  2. 2021年大数据Spark(三十二):SparkSQL的External DataSource

      目录 External DataSource 数据源与格式 text 数据 json 数据 csv 数据 parquet 数据 jdbc 数据 ​​​​​​​加载/保存数据-API ​​​​​​​ ...

  3. axi dma 寄存器配置_FPGA Xilinx Zynq 系列(三十二)AXI 接口

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...

  4. ASP 三十二条精华代码

    整理收藏: ASP 三十二条精华代码 1. οncοntextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键 <table b ...

  5. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  6. Android:页面跳转传参方式一,页面跳转传参方式二

     一.页面跳转传参方式一 跳转的过程如何传参:也就是页面之间如何传递参数,有点像函数调用如何传参,页面跳转也要传参. 复制一个工程 你要跳转,(现在的代码如下),intent 既然能设置跳转到哪个页面 ...

  7. 分布式理论:CAP是三选二吗?

    分布式系统的 CAP 理论:首先把分布式系统中的三个特性进行了如下归纳: ● 一致性(C): 在分布式系统中的所有数据备份,在同一时刻是否同样的值.(等同于所有节点访问同一份最新的数据副本) ● 可用 ...

  8. python建站部署_SpringBoot入门建站全系列(三十二)接入xxl-job分布式任务调度平台...

    SpringBoot入门建站全系列(三十二)接入xxl-job分布式任务调度平台 一.概述 XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源 ...

  9. 微信小程序把玩(三十二)Image API

    原文:微信小程序把玩(三十二)Image API 选择图片时可设置图片是否是原图,图片来源.这用的也挺常见的,比如个人中心中设置头像,可以与wx.upLoadFile()API使用 主要方法: wx. ...

最新文章

  1. 常用的遍历文件夹批处理命令
  2. 【CSDN】设置图片大小
  3. Mysql 多实例multi_mysqld_multi多实例运行
  4. vb6 判断打印机是否有效_吊打面试官 | 算法之如何判断括号是否有效?
  5. 用VC写Assembly代码(5) --循环的使用(一)
  6. js实现ajax的post请求步骤
  7. PMC联手云合作伙伴Canonical加入其Ubuntu OpenStack互通性实验室
  8. Linux文件编辑常用命令
  9. ftp上传工具如何下载和使用像详细教程
  10. Linux命令大全(一)(详解)系统管理、系统设置及文档编辑
  11. 淘宝客防止偷单淘宝联盟检测偷单验证PID是否为自己推广位
  12. 用js实现一个自动阅读的代码
  13. 问题 D: 寻找丢失的LZY
  14. 古希腊的对外战争,兼谈希腊罗马的军制和战斗力
  15. Introducing Android Instant Apps - Google I-O 2016 翻译字幕
  16. 学前儿童社会教育 渝粤题库整理
  17. 十大常见web漏洞及防范
  18. Hive基础学习文档和入门教程
  19. fail2ban原理与安装(centos6)
  20. 基于ZFAKA二次开发,添加PayJS支付渠道

热门文章

  1. python 当前文件路径获取方式_python中获取文件路径的几种方式
  2. wordpress主题-一款功能强大的综合类型wordpress模板
  3. Oreo授权系统V1.0.6公益开源版本
  4. Jshop小程序商城,小程序端。后台采用Thinkphp5.1框架开发
  5. 七彩影视双端新版本源码
  6. 与gps优缺点_浅谈用于洒水车上的液位传感器和GPS模块
  7. css3 position: fixed 居中问题,移动端,旁边留白的情况fixed不能居中的问题;
  8. 全网最新Spring Boot2.5.1整合Activiti5.22.0企业实战教程<流程挂起与激活篇>
  9. 面试:一文搞懂Java集合
  10. 使用NUnit做单元测试(总结版)