django模板中使用JQ代码实现瀑布流显示效果
settings中的配置不再详细说明
一.路由代码
from django.contrib import admin
from django.conf.urls import url
from app import views urlpatterns=[
url(r'^admin',admin.site.urls),
# 页面显示get请求
url(r'^imgs.html$',views.imgs),
# 获取图片的ajax请求
url(r'^get_imgs.html$',views.get_imgs),
]
二.视图函数
from app import models
from django.http import JsonResponse
from django.shortcuts import render def imgs(request):
return render(request, 'img.html') def get_imgs(request):
nid = request.GET.get('nid')
# id__gt=nid表示查询id大于多少的数据,nid由模板的ajax传过来
img_list = models.Img.objects.filter(id__gt=nid).values('id', 'src', 'title')
# queryset对象转列表
img_list = list(img_list)
ret = {
'status': True,
'data': img_list
}
return JsonResponse(ret)
三.models代码
from django.db import models
# Create your models here.
class Img(models.Model):
src = models.FileField(max_length=32, verbose_name='图片路径', upload_to='static/upload')
title = models.CharField(max_length=16, verbose_name='标题')
summary = models.CharField(max_length=128, verbose_name='简介') class Meta:
verbose_name_plural = '图片' def __str__(self):
return self.title
四.模板代码
<!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" id="container">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<script src="/static/JS/jquery-3.3.1.min.js"></script>
<script>
$(function () {
var obj = new ScrollImg();
obj.fetchImg();
obj.scrollEvent();
}); function ScrollImg() {
this.NID = 0;
this.LASTPOSITION = 3;
this.fetchImg = function () {
var that = this;
$.ajax({
url: '/get_imgs.html',
type: 'GET',
//前端传到后台的获取数据量
data: {nid: that.NID},
dataType: 'JSON',
success: function (arg) {
var img_list = arg.data;
//循环列表获取index:索引,v:图片信息(id,src,title)
$.each(img_list, function (index, v) {
//取4的余数,始终返回的是0,1,2,3的索引
var eqv = (index + that.LASTPOSITION + 1) % 4;
console.log(eqv);
//创建img标签
var tag = document.createElement('img');
//img标签的src地址等于图片的src地址
tag.src = '/' + v.src;
$('#container').children().eq(eqv).append(tag);
//如果index是最后一个,
if (index + 1 == img_list.length) {
//测试使用,始终只取开始那几条数据
that.LASTPOSITION = eqv;
//取完该页面显示的条数后,再去后面的条数
//that.NID = v.id;
}
})
}
})
};
this.scrollEvent = function () {
var that = this;
//绑定滚轮事件
$(window).scroll(function () {
//滚动条可滑动的高度
var scrollTop = $(window).scrollTop();
//窗口高度
var winHeight = $(window).height();
//文档高度
var docHeight = $(document).height();
//如果滑到最后,执行获取图片
if (scrollTop + winHeight == docHeight) {
that.fetchImg();
}
})
}
} </script>
</body>
</html>
django模板中使用JQ代码实现瀑布流显示效果的更多相关文章
- 在 Django 模板中遍历复杂数据结构的关键是句点字符
在 Django 模板中遍历复杂数据结构的关键是句点字符 ( . ). 实例二 mysit/templates/myhtml2.html修改如下 <!DOCTYPE html> <h ...
- django模板中的extends和include使用方法
一.extends使用方法 首先extends也就是继承,子类继承父类的一些特性.在django模板中通过继承可以减少重复代码. 首先我们建立一个app,名字叫做hello.别忘了在settings. ...
- django 模板中定义临时列表
<ul class="num_t clr"> {% for obj in ""|ljust:"10" %} <li> ...
- Django 模板中引用静态资源(js,css等)
Django 模板中免不了要用到一些js和CSS文件,查了很多网页,被弄得略晕乎,还是官网靠谱,给个链接大家可以自己看英文的. https://docs.djangoproject.com/en/1. ...
- Django 模板中使用css, javascript
Django 模板中使用css, javascript (r'^css/(?Ppath.*)$', 'django.views.static.serve', {'document_root': '/v ...
- 如何在smarty模板中执行php代码
Smarty模板主要的目的是分离逻辑层和表现层,所以在模板中不应该包含逻辑部分,逻辑层也不应该含有HTML.要在模板中插入逻辑程序的这种做法"非常"不被推荐,在你的case中. 如 ...
- django模板中变更数据库信息后,如何把变更后的信息同步更新到数据库
我们在基于django开发项目的过程中,经常会遇到数据库表字段增加,删除,或者修改的情况,以及字段属性更改的情况,因为django基于ORM模式来操作数据库的, 传统上如果django项目中的数据库m ...
- Django 模板中 include 标签使用小结
include 标签允许在模板中包含其它的模板的内容. 标签的参数是所要包含的模板名称,可以是一个变量,也可以是用单/双引号硬编码的字符串. 每当在多个模板中出现相同的代码时,就应该考虑是否要使用 { ...
- 测试开发之Django——No6.Django模板中的标签语言
模板中的标签语言 1.if/else {% if %} 标签检查(evaluate)一个变量,如果这个变量为真(即:变量存在,非空,不是布尔值假),系统会显示在{% if %} 和 {% endi ...
随机推荐
- Apache的commons工具类
package cn.zhou; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileU ...
- 使用layui 做后台管理界面,在Tab中的链接点击后添加一个新TAB的解决方法
给链接或按钮 添加 onclick="self.parent.addTab('百度','http://www.baidu.com','icon-add')" 如: <a h ...
- NPOI 上传Excel功能(二)
3.上传文件,写入log using DC.BE.Business.SYS; using DC.BE.Entity.ERP; using DC.BE.Entity.SAS; using DC.BE.E ...
- THEPYTHONCHALLENG闯关记录
由于是自己看视频学python,总觉得不写几行代码就什么都没有学到. 找了一个写代码的网站其实只是因为这个看起来好玩. 闯关地址http://www.pythonchallenge.com/index ...
- 【C/C++】动态内存分配和链表
本文对链表以及C/C++中的动态链表做详细诠释. 什么是链表? 链表是一种重要的数据结构,它最大的优点是可以进行动态的存储分配.链表有单向链表,双向链表,循环链表.对于c,这里我们只讨论单向链表. 我 ...
- 傻瓜式搭建私人网络硬盘——owncloud安装指南
百度云这个贱货天天删我资源,我已经忍无可忍了,于是想搭建一个owncloud来放我的里番.使用owncloud不仅安全,而且还可以在线播放,离线下载,功能相当强大. 然而·····网上查了一下,竟然无 ...
- OneinStack——PHP多版本共存
前言 我事先安装的是LNMP环境,PHP版本为7.2,但是现在环境需要一个PHP5.6,所以就准备安装个上版本,顺带写个安装教程,写完后我发现了原来有直接安装的命令!所以后面的内容大家可以忽略了!从配 ...
- 洛谷P1916 小书童——蚂蚁大战
题目背景 小A在你的帮助下,开始“刷题”,他在小书童里发现了一款叫“蚂蚁大战”(又称蛋糕保卫战)的游戏.(你懂得) 题目描述 游戏中会出现n只蚂蚁,分别有a1,a2……an的血量,它们要吃你的蛋糕.当 ...
- Django 下载和初识
Django Django官网下载页面 安装(安装最新LTS版): pip3 install django==1.11.9 创建一个django项目: 下面的命令创建了一个名为"mysite ...
- 【XSY2528】道路建设 LCT 可持久化线段树
题目描述 给你一个\(n\)个点\(m\)条边图,\(q\)个询问,每次问你边权在\([l,r]\)之间的边组成的最小生成树(森林)的边权和.强制在线. \(n,m,q\leq 100000\) 题解 ...