基于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 相关文章推荐
在javascript中关于节点内容加强
Apr 11 Javascript
获取内联和链接中的样式(js代码)
Apr 11 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
May 03 Javascript
Json序列化和反序列化方法解析
Dec 19 Javascript
javascript 动态创建表格
Jan 08 Javascript
禁止按回车键提交表单的方法
Jun 11 Javascript
JS实现的颜色实时渐变效果完整实例
Mar 25 Javascript
Node.js中防止错误导致的进程阻塞的方法
Aug 11 Javascript
javascript正则表达式模糊匹配IP地址功能示例
Jan 06 Javascript
vue轻量级框架无法获取到vue对象解决方法
May 12 Javascript
刷新页面后让控制台的js代码继续执行
Sep 20 Javascript
javascript的setTimeout()使用方法总结
Nov 20 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中http_build_query 的一个问题
2012/03/25 PHP
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
php基于环形链表解决约瑟夫环问题示例
2017/11/07 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
Javascript基础教程之switch语句
2015/01/18 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
2015/07/27 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
security.js实现的RSA加密功能示例
2018/06/06 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题
2020/08/14 Javascript
Python写的服务监控程序实例
2015/01/31 Python
简单学习Python多进程Multiprocessing
2017/08/29 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
2020/01/06 Python
tensorflow pb to tflite 精度下降详解
2020/05/25 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
详解css position 5种不同的值的用法
2019/07/30 HTML / CSS
html5 div布局与table布局详解
2016/11/16 HTML / CSS
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
巴西最大的巴士票务门户:Quero Passagem
2020/11/21 全球购物
JAVA程序员面试题
2012/10/03 面试题
药店采购员岗位职责
2014/09/30 职场文书
出差报告怎么写
2014/11/06 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
教师求职简历自我评价
2015/03/10 职场文书
党小组推荐意见
2015/06/02 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB