superhosts 2019-06-21
1.test.php代码(html js)
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>瀑布流测试</title> <style type='text/css'> #wf-main{position: relative;} #wf-main li{padding: 15px 0 0 15px; float:left;} </style> <script type="text/javascript" src="js/jquery-1.11.1.js"></script> </head> <body> <ul class="tips" id="wf-main" style="list-style-type:none;"> <?php for($i=1;$i<=8;$i++) { $string = './image/test'.$i.'.jpg'; echo "<li class='wf-cld'><img src='$string' width='200' height='auto' alt='' /></li>"; } ?> </ul> </body> </html> <script> $(function(){ waterfall(); //进行加载图片 var count = getCount(); $('#wf-main').on('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); // } //ajax 提交到action.php $.ajax({ type: 'POST', url: "action.php" , data: {id:count}, success: function(dat) { // var data = eval('('+dat +')'); var data = JSON.parse(dat); console.log(data); if(data){ $(data).each(function(id,status,url){ $li = $("<li>").addClass("wf-cld").appendTo("#wf-main"); $("<img>").attr({"src":this.url}).css({"width":"200px","height":"auto"}).appendTo($li); }); //确保滚动条高度保持不变 var scroll_top = $(window).scrollTop(); waterfall(); $(window).scrollTop(scroll_top); } } }); } }); }); //让图片折叠排列 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; } function getCount(){ var length = $("#wf-main ").find('li').length; return length; } </script>
2.action.php php代码
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2017/7/11 * Time: 14:49 */ // $postId = $_POST['id']; $postId = 5; $coon = mysql_connect('172.28.32.205','root','123456'); if(!$coon) { die('connect failed'); } mysql_select_db('test',$coon); mysql_set_charset('utf-8',$coon); $query = "select * from test_image where status=1 and id > ".$postId." limit 5;"; $re = mysql_query($query); while($arr = mysql_fetch_assoc($re)) { $arry [] = $arr; } exit(json_encode($arry));//这里一定要写成exit 之前写成return 一直报错,ajax远程调程序,得到数据。要停止程序并返回到ajax
文件目录
结果