基于JavaScript实现瀑布流效果


Posted in Javascript onMarch 29, 2017

本文实例为大家分享了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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一个对于Array的简单扩展
Oct 03 Javascript
javascript 清空form表单中某种元素的值
Dec 26 Javascript
Javascript事件热键兼容ie|firefox
Dec 30 Javascript
Jquery之Bind方法参数传递与接收的三种方法
Jun 24 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
Feb 13 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
Dec 15 Javascript
将鼠标焦点定位到文本框最后(代码分享)
Jan 11 Javascript
详解使用JS如何制作简单的ASCII图与单极图
Mar 31 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
Aug 30 Javascript
安装vue-cli报错 -4058 的解决方法
Oct 19 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
Oct 26 Javascript
基于JavaScript实现单例模式
Oct 30 Javascript
Angular动态添加、删除输入框并计算值实例代码
Mar 29 #Javascript
JS变量及其作用域
Mar 29 #Javascript
如何使用Bootstrap 按钮实例详解
Mar 29 #Javascript
Vue 2.0 服务端渲染入门介绍
Mar 29 #Javascript
vue2组件实现懒加载浅析
Mar 29 #Javascript
整理关于Bootstrap排版的慕课笔记
Mar 29 #Javascript
如何使用Bootstrap创建表单
Mar 29 #Javascript
You might like
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
js cookies实现简单统计访问次数
2009/11/24 Javascript
jquery插件开发注意事项小结
2013/06/04 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
js表头排序实现方法
2015/01/16 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
js实现放大镜特效
2017/05/18 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
2019/05/17 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
正确理解python中的关键字“with”与上下文管理器
2017/04/21 Python
python中pika模块问题的深入探究
2018/10/13 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
Python实现ElGamal加密算法的示例代码
2020/06/19 Python
公认8个效率最高的爬虫框架
2020/07/28 Python
python批量修改交换机密码的示例
2020/09/22 Python
python selenium 获取接口数据的实现
2020/12/07 Python
CSS3美化表单控件全集
2016/06/29 HTML / CSS
浅谈HTML5 &amp; CSS3的新交互特性
2016/07/19 HTML / CSS
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
计算机网络毕业生自荐信
2013/10/01 职场文书
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
大课间体育活动方案
2014/03/12 职场文书
考研英语复习计划
2015/01/19 职场文书
初中语文教学研修日志
2015/11/13 职场文书
争做文明公民倡议书
2019/06/24 职场文书
三好学生竞选稿范文
2019/08/21 职场文书
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle