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两 ...
随机推荐
- 使用 Google 高级搜索的一些技巧
一,GOOGLE简介 Google(www.google.com)是一个搜索引擎,由两个斯坦福大学博士生Larry Page与Sergey Brin于1998年9月发明,Google Inc. 于 ...
- Cookie的增删改查
增加: 第一种方法:Response.Cookies[“UserName”].Value=”张三” Response.Cookies[“UserName”].Expires=DateTime.Now. ...
- 【转载】HTTP和SOAP完全就是两个不同的协议
http:是一个客户端和服务器端请求和应答的标准(TCP). http协议其目的是为了提供一种发布和接收htttp页面的方法 http协议的客户端与服务器的交互:由HTTP客户端发起一个请求,建立一个 ...
- RabbitMQ快速入门python教程
摘要:HelloWorld 简介 RabbitMQ:接受消息再传递消息,可以视为一个“邮局”.发送者和接受者通过队列来进行交互,队列的大小可以视为无限的,多个发送者可以发生给一个队列,多个接收者也可以 ...
- cygwin开发环境搭建与apt-cyg的应用
1.Cygwin安装 http://www.cygwin.com/下载安装工具 详细安装过程參照http://jingyan.baidu.com/article/6b97984d83dfe51ca2b ...
- POJ-3134-Power Calculus(迭代加深DFS)
Description Starting with x and repeatedly multiplying by x, we can compute x31 with thirty multipli ...
- MapReduce-MulitipleOutputs实现自己定义输出到多个文件夹
输入源数据例子: Source1-0001 Source2-0002 Source1-0003 Source2-0004 Source1-0005 Source2-0006 Source3-0007 ...
- 创建Mat
#include<opencv2/opencv.hpp> #include<iostream> #include<cassert> #include<vect ...
- 在CTreeCtrl控件点击事件中获取点击的项
网上搜了一下,有两种方法: 1.使用GetSelectedItem() HTREEITEM hItem = m_treeCtrl.GetSelectedItem(); CString strText ...
- centos httpd服务做yum本地源,以及安装Mysql
step0 首先centos的iso文件是有两张的,dvd1和dvd2,dvd2是额外的软件,常有的一些软件都在dvd1里面,而且repodata配置文件也在dvd1里面,如果直接把dvd2当做镜像文 ...