<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
body{
margin:0px;
padding:0px;
}
ul{
width:1080px;
margin: 100px auto 0;
}
li{
width:248px;
float:left;
border:1px solid pink;
list-style:none;
margin-right:10px;
}
li div {
border: 1px solid #000;
padding: 10px;
margin-bottom: 10px;
}
li div img {
width: 225px;
display: block;
}
</style>
<script>
window.onload = function ()
{
var oul = document.getElementById('ul1');
var ali = oul.getElementsByTagName('li');
var b = true;
var ipage = 1; getlist(); function getlist()
{
ajax('get','ajax pbl.php','cpage='+ipage,function (data)
{
var data = JSON.parse(data);
if(!(data.length))
{
return;
}
for(var i = 0; i < data.length; i++)
{
var _index = getshort();
var odiv = document.createElement('div');
var oimg = document.createElement('img');
oimg.src = data[i].preview;
oimg.style.width = '225px';
oimg.style.height = data[i].height*(225/data[i].width)+ 'px';
odiv.appendChild(oimg);
var op = document.createElement('p');
op.innerHTML = data[i].title;
odiv.appendChild(op); ali[_index].appendChild(odiv);
} b = true;
}); }
window.onscroll = function ()
{
var _index = getshort();
var oli = ali[_index]; var scrollTop = document.body.scrollTop || document.documentElement.scrollTop; if(gettop(oli)+oli.offsetHeight < document.documentElement.clientHeight + scrollTop)
{
if(b)
{
b = false;
ipage++;
getlist();
}
}
} function getshort()
{
var index = 0;
var ih = ali[index].offsetHeight; for(var i = 1; i < ali.length; i++)
{
if(ali[i].offsetHeight < ih )
{
index = i;
ih = ali[index].offsetHeight;
}
}
return index;
} function gettop(obj)
{
var itop = 0;
while(obj)
{
itop +=obj.offsetTop;
obj = obj.offsetParent;
}
return itop;
} function ajax(method,url,data,success)
{
var xhr = null;
try
{
xhr = new XMLHttpRequest();
}
catch(e)
{
xhr = new ActiveXObject('Microsoft.XMLHTTP');
} if(method == 'get' && data)
{
url += '?' + data;
} xhr.open(method,url,true);
if(method == 'get')
{
xhr.send();
}
else
{
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
xhr.send(data);
} xhr.onreadystatechange = function ()
{
if(xhr.readyState == 4 )
{
if(xhr.status == 200 )
{
success && success(xhr.responseText);
}
else
{
alert('出错了,Err:'+ xhr.status);
}
}
}
} }
</script>
</head> <body> <ul id="ul1">
<li></li>
<li></li>
<li></li>
<li></li> </ul>
</body>
</html>
<?php
header('Content-type:text/html; charset="utf-8"'); /*
API:
getPics.php 参数
cpage : 获取数据的页数
*/
$cpage = isset($_GET['cpage']) ? $_GET['cpage'] : 1; $url = 'http://www.wookmark.com/api/json/popular?page=' . $cpage; $content = file_get_contents($url);
$content = iconv('gbk', 'utf-8', $content); echo $content; ?>

ajax 瀑布流实现的更多相关文章

  1. 原生ajax瀑布流demo

    最近听朋友们说起瀑布流挺多的,自己就去研究下了,一个简单的原生demo,分享给大家... 简单分为三个文档,有详细的注释:img:ajax.php:demo.php 其中img文件夹中放入图片 1.j ...

  2. Ajax——瀑布流

    基本概念 1.宽度是一致的,高度上参差不齐 2.新增内容优先放置在最矮的地方 核心难点 1.用一个数组存储每列的高度值 2.新值添加到值最小索引上,每次替换更新数组 插件使用 1.$.fn.exten ...

  3. Hawk 3.1 动态页面,ajax,瀑布流

    不少朋友反映,Hawk的手气不错,好像没法处理动态页面.其实很容易,比其他软件都容易,让我慢慢道来. 1. 什么是动态页面 很多网站,在刷新的时候会返回页面的全部内容,但实际上只需要更新一部分,这样可 ...

  4. jQuery ajax瀑布流加载静态的列表页面

    1.加载一行数据 <script> //滚动加载事件 var Loadurl = "{$url}"; if(window.location.href !== Loadu ...

  5. ajax 瀑布流 demo

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据

    瀑布流加载显示数据,在当下已经用的很普遍,尤其是我们在做网上商城时,在产品列表页面已经被普遍使用. 对于实现瀑布流布局的解决方案主要有以下两种方式: 1.对每一条显示数据使用绝对定位+浮动的方式,这样 ...

  7. Masonry + Ajax 实现无限刷新瀑布流

    效果就如我的个人站yooao.cc,把我实现的思路分享给大家. Masonry渲染页面如果有图片时需要imagesLoaded辅助,不然有可能会造成布局重叠. 一个大体的思路:前端取得最后一篇文章的i ...

  8. [妙味Ajax]第二课:实例:留言板、瀑布流

    知识点总结 瀑布流原理(固定布局) 总宽度大小固定 每列宽度固定,比如LI,高度自动计算,每列使用float:left来布局 计算最短的一列,将Div插到最短的一列处(li里面包div)(getSho ...

  9. 瀑布流原生ajax,demo

    最近听朋友们说起瀑布流挺多的,自己就去研究下了,一个简单的原生demo,分享给大家... 简单分为三个文档,有详细的注释 img:ajax.php:demo.php 其中img中放入图片 1.jpg: ...

随机推荐

  1. 源码解析Android中View的measure量算过程

    Android中的Veiw从内存中到呈现在UI界面上需要依次经历三个阶段:量算 -> 布局 -> 绘图,关于View的量算.布局.绘图的总体机制可参见博文< Android中View ...

  2. Html 修改placeholder的颜色属性css样式

    项目需求需要修改文本框的placeholder 的文本颜色, 百度下, 备忘,我使用的是这种方法, ::-webkit-input-placeholder { /* WebKit browsers * ...

  3. 《OD大数据实战》Sqoop入门实例

    官网地址: http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.5-cdh5.3.6/SqoopUserGuide.html 一.环境搭建 1. 下载 s ...

  4. 最全的PHP常用函数大全

    PHP的一些常用函数 quotemeta() 函数在字符串中某些预定义的字符前添加反斜杠. quoted_printable_decode() 函数对经过 quoted-printable 编码后的字 ...

  5. Hadoop2配置详解

    配置文件 hadoop的配置是由两种重要类型的配置文件进行驱动的: 默认是只读的配置: core-default.xml, hdfs-default.xml, yarn-default.xml and ...

  6. html常用笔记

    <?php //CSS可以对文本格式进行精确的控制 //HTML标记更有利于搜索引擎 //一.标签 <br> <p>//换行后插入一个空行,单字节不换行,双字节自动换行 ...

  7. 【英语】Bingo口语笔记(16) - 咬舌音和咬唇音的辨读

  8. Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置

    原文:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建好j ...

  9. 树莓派 Linux 剪贴板

    安装: apt-get install xsel 显示剪贴板中的数据: xsel -b -oxsel -b -o 向剪贴板中追加数据: xsel -b -a 覆盖剪贴板中的数据: xsel -b -i ...

  10. mysql 插入汉字出现问号 解决方法

    mysql中文显示乱码或者问号是因为选用的编码不对或者编码不一致造成的,最简单的方法就是修改mysql的配置文件my.cnf.在[mydqld]和[client]段加入 default-charact ...