基于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获取单选按钮的数据
Nov 27 Javascript
jQuery 使用手册(四)
Sep 23 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
Mar 25 Javascript
jquery查找父元素、子元素(个人经验总结)
Apr 09 Javascript
JS实现生成会变大变小的圆环实例
Aug 05 Javascript
JS简单实现多级Select联动菜单效果代码
Sep 06 Javascript
深入理解JavaScript中的浮点数
May 18 Javascript
js实现获取两个日期之间所有日期的方法
Jun 17 Javascript
vue input输入框模糊查询的示例代码
May 22 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
Jun 25 Javascript
小程序绑定用户方案优化小结
May 15 Javascript
微信小程序表单验证WxValidate的使用
Nov 27 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中apc缓存使用示例
2013/12/25 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
2014/05/04 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
Javascript 定时器调用传递参数的方法
2009/11/12 Javascript
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
2010/07/13 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
jQuery学习之prop和attr的区别示例介绍
2013/11/15 Javascript
javascript通过className来获取元素的简单示例代码
2014/01/10 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
JavaScript的变量声明与声明提前用法实例分析
2019/11/26 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
JavaScript实现轮播图特效
2020/04/10 Javascript
解决vue scoped html样式无效的问题
2020/10/24 Javascript
在Python下尝试多线程编程
2015/04/28 Python
Python函数中的函数(闭包)用法实例
2016/03/15 Python
python访问抓取网页常用命令总结
2017/04/11 Python
对numpy中的where方法嵌套使用详解
2018/10/31 Python
在python下读取并展示raw格式的图片实例
2019/01/24 Python
详解Django 时间与时区设置问题
2019/07/23 Python
耐克美国官网:Nike.com
2016/08/01 全球购物
网上蛋糕店创业计划书
2014/01/24 职场文书
应届生自荐信
2014/06/30 职场文书
数学兴趣小组活动总结
2014/07/08 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
归途列车观后感
2015/06/17 职场文书
浅谈MySQL函数
2021/10/05 MySQL
vue3.0 数字翻牌组件的使用方法详解
2022/04/20 Vue.js
python双向链表实例详解
2022/05/25 Python