基于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 相关文章推荐
js获取变量
Aug 24 Javascript
js动态为代码着色显示行号
May 29 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
Jun 06 Javascript
jquery表单对象属性过滤选择器实例分析
May 18 Javascript
IE浏览器下PNG相关功能
Jul 05 Javascript
javascript事件绑定学习要点
Mar 09 Javascript
Javascript实现图片不间断滚动的代码
Jun 22 Javascript
浅谈Angular的$q, defer, promise
Dec 20 Javascript
webpack4.x下babel的安装、配置及使用详解
Mar 07 Javascript
Koa从零搭建到Api实现项目的搭建方法
Jul 30 Javascript
JS实现移动端双指缩放和旋转方法
Dec 13 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
Oct 02 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
实用函数4
2007/11/08 PHP
PHP伪静态写法附代码
2008/06/20 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
PHP模版引擎原理、定义与用法实例
2019/03/29 PHP
Jquery 表单取值赋值的一些基本操作
2009/10/11 Javascript
jquery+json 通用三级联动下拉列表
2010/04/19 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
基于socket.io和node.js搭建即时通信系统
2014/07/30 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
2016/05/26 Javascript
RGB和YUV 多媒体编程基础详细介绍
2016/11/04 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
JavaScript 中的 this 工作原理
2018/06/20 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
JavaScript中callee和caller的区别与用法实例分析
2019/06/28 Javascript
Vue组件通信入门之Provide和Inject机制
2019/12/29 Javascript
Python切片索引用法示例
2018/05/15 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
Django中的用户身份验证示例详解
2019/08/07 Python
python使用if语句实现一个猜拳游戏详解
2019/08/27 Python
python输出数组中指定元素的所有索引示例
2019/12/06 Python
Pycharm如何导入python文件及解决报错问题
2020/05/10 Python
Django使用django-simple-captcha做验证码的实现示例
2021/01/07 Python
让IE9以下版本的浏览器兼容HTML5的方法
2014/03/12 HTML / CSS
Silk’n激光脱毛器官网:silkn.com
2016/10/06 全球购物
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
客户代表自我评价范例
2013/09/24 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
优秀学生评语大全
2014/04/25 职场文书
2014年标准化工作总结
2014/12/17 职场文书
培训班开班主持词
2015/07/02 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
三星 3nm 芯片将于第二季度开始量产
2022/04/29 数码科技