基于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 相关文章推荐
动态加载iframe
Jun 16 Javascript
javascript Math.random()随机数函数
Nov 04 Javascript
javascript获取所有同类checkbox选项(实例代码)
Nov 07 Javascript
js判断元素是否隐藏的方法
Jun 09 Javascript
JavaScript中用toString()方法返回时间为字符串
Jun 12 Javascript
js中跨域方法原理详解
Jul 19 Javascript
js去字符串前后空格的实现方法
Feb 26 Javascript
jQuery基于Ajax方式提交表单功能示例
Feb 10 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
Nov 17 Javascript
easyui下拉框动态级联加载的示例代码
Nov 29 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
Mar 17 Javascript
JavaScript原型链与继承操作实例总结
Aug 24 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&amp;java(二)
2006/10/09 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
php计算函数执行时间的方法
2015/03/20 PHP
PHP ajax 异步执行不等待执行结果的处理方法
2015/05/27 PHP
php自定义类fsocket模拟post或get请求的方法
2015/07/31 PHP
PHP读取文件内容的五种方式
2015/12/28 PHP
JavaScript 拾碎[三] 使用className属性
2010/10/16 Javascript
javascript 隔行换色函数代码
2010/10/24 Javascript
JqGrid web打印实现代码
2011/05/31 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
浅谈javascript中自定义模版
2015/01/29 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
使用canvas进行图像编辑的实例
2017/08/29 Javascript
vue微信分享到朋友圈 vue微信发送给好友
2018/11/28 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
原生JS实现音乐播放器的示例代码
2021/02/25 Javascript
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
Python socket服务常用操作代码实例
2020/06/22 Python
Python 捕获代码中所有异常的方法
2020/08/03 Python
python -v 报错问题的解决方法
2020/09/15 Python
巴西宠物商店:Cobasi
2019/04/19 全球购物
澳大利亚设计的优质鞋类和适合澳大利亚生活方式的服装:Rivers
2019/04/23 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
什么是makefile? 如何编写makefile?
2012/08/08 面试题
大四学生毕业自荐信
2013/11/07 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
2015年公民道德宣传日活动总结
2015/03/23 职场文书
大学班干部竞选稿
2015/11/20 职场文书
导游词之神仙居景区
2019/11/15 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python