0

0

jquery实现瀑布流并与php实现数据交互

php中文网

php中文网

发布时间:2016-06-23 13:37:23

|

1474人浏览过

|

来源于php中文网

原创

以前js 实现过一个瀑布流,jquery 也来实现一个

主要思路:

1  先显示出来大概20张图片,使界面出现滚动条 

2 设置显示出来图片父id 设置为relative 定位,图片定位方式为float 定位

3 使刚显示出来的图片作为折叠出现,呈现为瀑布流

立即学习PHP免费学习笔记(深入)”;

4 当滚动 滚动条时,判断是否进行加载图片

5 使新加载的图片重新进行瀑布流排序

重点:

1 判断什么时间进行加载新图片

2 实现瀑布流式排序

怎样确定加载哪部分图片那,在后台limit 一下位置就ok啦

好,上代码:

1 先显示出来部分图片

                //实现瀑布流显示图片                public function photo(){                    $id = M("Cate")->field("id")->where("name = '相册展示'")->select();                    $this->image_list = M("Blog")->field("content ,summary")->limit(10)->order("time desc")->where("cid = {$id[0]['id']}")->select();                    $this->length=10;//刚开始显示10张图片                    $this->cur_position = '相册展示';                    $this->id           = $id[0]['id'];                    $this->display();                }

2 前台代码:

<ul class="tips" id="wf-main">                    <volist name="image_list" id='v'>                        <li class="wf-cld"><img src="{$v.content|ltrim = ###,'.'}"     style="max-width:90%" height="auto" alt="{$v.title}" /></li>                                 <li class="wf-cld"><img src="{$v.summary|ltrim = ###,'.'}"    style="max-width:90%" height ="auto" alt="{$v.title}" /></li>                    </volist>                    </ul>

3 前台样式:

家政网在线管理系统
家政网在线管理系统

经过多家家政公司实际运作,并参照目前市面上流行的家政管理软件精心打造的一套管理平台,专业化的后台管理能让您处理繁琐的小事更加轻松,前台和后台的无缝链接处处体现网络的巨大威力,全国首创的多人在线预订系统,系统首次提供候选名额,让您一次预订,多人受约,成交概率大幅提高,首次使用网络蜘蛛技术,定时搜集全国各地及时发布的家政信息,智能化处理后即时加入系统数据库

下载

    <!--content end-->    <style type='text/css'>        #wf-main{position: relative;}        #wf-main li{padding: 15px 0 0 15px; float:left;}    </style>


4 重点 js 代码:

$(function(){    waterfall();    //进行加载图片    $(window).scroll(function(){         if(checkscrollside()){             var offset = $("input[name=offset]").val();             var length = $("input[name=length]").val();             var justice = $("input[name=justic]").val();             if(justice === offset){                 return false;             }else{                 $("input[name=justic]").val(offset);             }             $.post( //每次添加新元素进行瀑布流排序                     "/Index/Show/more_photo",                    {                        offset :offset,                        length:length                    },function(data){                        if(data){                            $(data).each(function(index,value){                            $li =  $("<li>").addClass("wf-cld").appendTo("#wf-main");                            $("<img  alt="jquery实现瀑布流并与php实现数据交互" >").attr({"src":value.summary,"title":value.title}).css({"width":"200px","height":"auto"}).appendTo($li);                            });                            $("input[name=offset]").val(parseInt(offset) + 10);                            console.log($("#wf-main>li").length);                            //确保滚动条高度保持不变                            var scroll_top  = $(window).scrollTop();                            waterfall();                             $(window).scrollTop(scroll_top);                        }                                           },"json");                     }    });    });//让图片折叠排列function waterfall(){   var $par_main = $("#wf-main"); //父元素   var $child_main = $("#wf-main>li"); //子元素   var par_width = $par_main.width(); //获得父元素的宽度   var child_width = $child_main.eq(0).width(); //获得子元素宽度   var num_col     = Math.floor(par_width / child_width); //一行显示多少列   var col_arr = []; //一列中所有元素相加后的高度 做多有num_col 个值   col_arr.length=0;   $child_main.each(function(index,value){      if(index < num_col){          col_arr[index] = $(value).height();       }else{          var minH = Math.min.apply( null, col_arr );//数组pinHArr中的最小值minH          var min_index =  $.inArray(minH,col_arr); //获得最小索引值          //数组中最小元素的高 +  新块的高 + 15 空格距离          col_arr[min_index] += $child_main.eq(index).height() + 15;                    $(value).css({  //设置元素显示位置              position:"absolute",              top:minH + 15 ,              left : $child_main.eq(min_index).position().left          });          var maxH = Math.max.apply(null,col_arr);          $par_main.height(maxH); // 更改父元素高度      }    });}//是否进行夹杂滚动条 当最后一张图片顶部 到 最后一张图片自身高度的一半作为分界线function checkscrollside(){    var  $child_main =  $("#wf-main>li");    var trigger_heigth = $child_main.last().get(0).offsetTop + $child_main.height() / 2;    //滚动条高度    var scroll_top = $(window).scrollTop();    //获取页面宽度    var docu_width = $(document).width();    return (trigger_heigth <scroll_top + docu_width)?true:false;}

5 每次都重新加载新图片的后台代码:

    //根据ajax 每次显示出来部分图片                public function more_photo(){                    $offset = $_POST['offset'];                    $length = $_POST['length'];                    $id = M("Cate")->field("id")->where("name = '相册展示'")->select();                    $image_list = M("Blog")->field("content ,summary,title")->limit($offset,$length)->order("time desc")->where("cid = {$id[0]['id']}")->select();                    exit(json_encode($image_list));                }


好啦,到此结束:

顺便秀秀战果了: 

实际地址就是在个人博客上面啦:

http://buyingfeiblog.sinaapp.com/

代码进行时,敬请期待!

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

797

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

272

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

144

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

25

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

92

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

53

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

717

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

64

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
微信小程序开发--云开发篇
微信小程序开发--云开发篇

共15课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号