ThinkPHP官网瀑布流实现分享
很多人都想做瀑布流的效果,这里告诉大家官网使用的方法。
首先要下载瀑布流的插件jquery.masonry.min.js 地址:http://masonry.desandro.com/index.html里面包含的很多示例,但是都是英文的。。。我给大家写个小例子吧
流程:
1,页面初始化时,调用插件进行一次排版;
2,当用户将滚动条拖到底部时,用ajax加载一次数据,并排版显示
3,重复2,直到无数据
html代码
- <!DOCTYPE HTML>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- <!--样式-->
- <style type="text/css">
- body {margin:40px auto; width:800px; font-size:12px; color:#666;}
- .item{
- border: 1px solid #D4D4D4;
- color: red;
- margin: 0 10px 10px 0;
- padding: 10px;
- position: relative;
- width: 200px;
- }
- .loading-wrap{
- bottom: 50px;
- width: 100%;
- height: 52px;
- text-align: center;
- display: none;
- }
- .loading {
- padding: 10px 10px 10px 52px;
- height: 32px;
- line-height: 28px;
- color: #FFF;
- font-size: 20px;
- border-radius: 5px;
- background: 10px center rgba(0,0,0,.7);
- }
- .footer{
- border: 2px solid #D4D4D4;
- }
- </style>
- <!--样式-->
- </head>
- <body>
- <!--引入所需要的jquery和插件-->
- <script type="text/javascript" src="/test/public/Js/jquery-1.7.2.min.js"></script>
- <script type="text/javascript" src="/test/public/Js/jquery.masonry.min.js"></script>
- <!--引入所需要的jquery和插件-->
- <!--瀑布流-->
- <div id="container" class=" container">
- <!--这里通过设置每个div不同的高度,来凸显布局的效果-->
- <volist name="height" id="vo">
- <div class="item" style="height:{$vo}px;">瀑布流下来了</div>
- </volist>
- </div>
- <!--瀑布流-->
- <!--加载中-->
- <div id="loading" class="loading-wrap">
- <span class="loading">加载中,请稍后...</span>
- </div>
- <!--加载中-->
- <!--尾部-->
- <div class="footer"><center>我是页脚</center></div>
- <!--尾部-->
- <script type="text/javascript">
- $(function(){
- //页面初始化时执行瀑布流
- var $container = $('#container');
- $container.masonry({
- itemSelector : '.item',
- isAnimated: true
- });
- //用户拖动滚动条,达到底部时ajax加载一次数据
- var loading = $("#loading").data("on", false);//通过给loading这个div增加属性on,来判断执行一次ajax请求
- $(window).scroll(function(){
- if(loading.data("on")) return;
- if($(document).scrollTop() > $(document).height()-$(window).height()-$('.footer').height()){//页面拖到底部了
- //加载更多数据
- loading.data("on", true).fadeIn(); //在这里将on设为true来阻止继续的ajax请求
- $.get(
- "{:U('Index/getMore')}",
- function(data){
- //获取到了数据data,后面用JS将数据新增到页面上
- var html = "";
- if($.isArray(data)){
- for(i in data){
- html += "<div class=\"item\" style=\"height:"+data[i]+"px;\">瀑布又流下来了</div>";
- }
- var $newElems = $(html).css({ opacity: 0 }).appendTo($container);
- $newElems.imagesLoaded(function(){
- $newElems.animate({ opacity: 1 });
- $container.masonry( 'appended', $newElems, true );
- });
- //一次请求完成,将on设为false,可以进行下一次的请求
- loading.data("on", false);
- }
- loading.fadeOut();
- },
- "json"
- );
- }
- });
- });
- </script>
- </body>
- </html>
Action代码
- class UserAction extends Action{
- //初始化的数据
- public function index(){
- for ($i=0;$i<10;$i++){
- $res[$i] = rand(100, 400);
- }
- $this->assign('height', $res);
- $this->display();
- }
- //获取一次请求的数据
- public function getMore(){
- for ($i=0;$i<6;$i++){
- $res[$i] = rand(100, 400);
- }
- $this->ajaxReturn($res);
- }
- }
ThinkPHP官网瀑布流实现分享的更多相关文章
- 官网类原型模板分享——Apple
苹果公司是美国一家高科技公司,引领全球数码产品设计潮流,是世界最具价值的品牌. 此原型正是取自苹果公司官网,网站主要以展示产品为主,排版方式采用大图配简练的文字,清爽简洁的同时突出产品优势,增大产品的 ...
- nginx官网下载&百度云分享
官网下载的链接: nginx官网下载地址:http://nginx.org/download/ 百度云分享 链接:https://pan.baidu.com/s/16m6zrFSkYCJtX0rD2Y ...
- SoapUI Pro官网原包百度云盘分享
SoapUI Pro下载是件很痛苦的事,经常断网,或者是下载时间过长,这里分享的是截止2019.01.01 最新的安装原包. 百度云盘资源:https://pan.baidu.com/s/1SXTFs ...
- 轮播组件/瀑布流/组合搜索/KindEditor插件
一.企业官网 ### 瀑布流 Models.Student.objects.all() #获取所有学员信息 通过div进行循环图片和字幕 1.以template模板方法实现瀑布流以列为单位 ...
- thinkPHP实现瀑布流的方法
thinkPHP实现瀑布流的方法 文章TAG:thinkphp 瀑布流 时间:2014-11-29来源:www.aspku.com 作者:源码库 文章热度: 131 ℃ 过期已备案域名,注册就能用!终 ...
- 详细分享UICollectionView的自定义布局(瀑布流, 线性, 圆形…)
前言: 本篇文章不是分享collectionView的详细使用教程, 而是属于比较’高级’的collectionView使用技巧, 阅读之前, 我想你已经很熟悉collectionView的基本使用, ...
- 网友微笑分享原创Jquery实现瀑布流特效
首先非常感谢网友微笑的无私分享,此Jquery特效是一款非常流行和实用的瀑布流布局,核心代码只有几十行,是我见过代码量最少的瀑布流布局,非常适合网友们学习哦,希望大家好好看一下这个Jquery特效的原 ...
- 企业官网Web原型制作分享-Tesla
Tesla是汽车行业知名的奢华品牌,产品为纯电动汽车,知名度极高.此模板正是取自Tesla的官网,高端大图配上文字排版,彰显了汽车的奢华感觉. 本原型由国产Mockplus(原型工具)和iDoc(智能 ...
- 分享一个Vue实现图片水平瀑布流的插件
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.需求来源 今天碰到了一个需求,需要在页面里,用水平瀑布流的方式,将一些图片进行加载,这让我突然想起我很久以前写的一篇文章<JS两 ...
随机推荐
- iOS开发-XCode常用快捷键整理
前言:如果我们能够掌握并巧妙地使用快捷键,可以大大加快我们的工作效率,这个对经常使用快捷键的人们来说,应该很容易理解.因此我们需要做的是,针对于自己经常使用的快捷键去进行记忆.我不会推荐你们去把所有的 ...
- Spring Cloud简单入门教程
原文地址:http://www.cnblogs.com/skyblog/p/5127690.html 按照官方的话说:Spring Cloud 为开发者提供了在分布式系统(如配置管理.服务发现.断路器 ...
- 控制应用程序重启,外部程序C# 实例
第一步:新建一个控制台项目,作为关闭当前应用程序的调用程序. using System; using System.Configuration; using System.Diagnostics; n ...
- cordova开发自己定义插件
以下是自己定义cordova插件的基本入门.做插件的小白可以參考一下哈,兴许会更新插件的进阶博客,希望大家可以共同学习共同进步 1.环境搭建 cordova插件开发前须要安装一些软件和配置环境 1.1 ...
- apktool、dex2jar、jd-gui的区别及详解
https://blog.csdn.net/themelove/article/details/53126360 反编译相关: apktool 作用:资源文件的获取,可以提取出图片文件和布局文件 ...
- 几个div并列显示效果消除之间的间隔
今天在做一个静态页面时,头部的广告条是很大一张图片,考虑到网页访问时的加载速度,因此需要把一幅图拆成几个尺寸较小的图片来作为背景图,但是采用div来布局时,出现了div不能显示在一行的情况,所以开始想 ...
- nginx日志配置指令详解
这篇文章主要介绍了nginx日志配置指令详解,nginx有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志,需要的朋友可以参考下日志对于统计排错来说非常有利的.本文总结了nginx日 ...
- jquery的text()
jQuery 文档操作 - text() 方法 jQuery 文档操作参考手册 实例 设置所有 <p> 元素的内容: $(".btn1").click(function ...
- Dig HOWTO 中文手册--dig命令使用大全
Dig HOWTO 中文手册--dig命令使用大全 DNS -- 本人翻译的dig howto手册. 译者序: 可以这样说,翻译本篇文档的过程就是我重新学习DNS的过程,dig命令可以帮助我们学习DN ...
- flex与bison
flex与bison 中文版 目录: 第一章:flex和bison简介 第二章:使用flex 第三章:使用bison 第四章:分析sql 第五章:flex规范参考 第六章:bison规范参考 第七章: ...