<!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. html5 canvas移动设备渲染测试

    最近项目闲着没什么事,又想起了canvas, 针对移动端设备默认浏览器,做了点渲染方面效率的测试,手头设备不多(有一些低端机型和pc chrome做对比),现将测试数据分享给大家吧,本想和css3 a ...

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

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

  3. Android 工程在4.0基础上混淆

    Android现在对安全方面要求比较高了,我今天要做的对apk进行混淆,用所有的第三方工具都不能反编译,作者的知识产权得到保障了,是不是碉堡了. 一,首先说明我这是在4.0基础上进行的. 先看看pro ...

  4. ubuntu 安装 rabbitmq-server

    Rabbitmq 是用 erlang 语言写的,所以我们需要安装 Erlang,安装 erlang 又需要安装 python 与 simplejson,所以我们从python开始: 1.安装 pyth ...

  5. hdu 5091(线段树+扫描线)

    上海邀请赛的一道题目,看比赛时很多队伍水过去了,当时还想了好久却没有发现这题有什么水题的性质,原来是道成题. 最近学习了下线段树扫描线才发现确实是挺水的一道题. hdu5091 #include &l ...

  6. jint

    nuget地址 https://www.nuget.org/packages/Jint/ github上源代码 https://github.com/sebastienros/jint

  7. Java面向对象编程概述

    一. 01.软件开发经历周期: 软件分析:分析问题领域,了解客户的需求 软件设计:确定软件的总体结构,把整个软件系统划分为大大小小的多个子系统,设计每个子系统的具体结构 软件编码:用选定的编程语言来编 ...

  8. UVa 10954 (Huffman 优先队列) Add All

    直接用一个优先队列去模拟Huffman树的建立过程. 每次取优先队列前两个数,然后累加其和,把这个和在放入到优先队列中去. #include <cstdio> #include <q ...

  9. UVa 10048 Audiophobia【Floyd】

    题意:给出一个c个点,s条边组成的无向图,求一点到另一点的路径上最大权值最小的路径,输出这个值 可以将这个 d[i][j]=min(d[i][j],d[i][k]+d[k][j]) 改成 d[i][j ...

  10. 【转】Eclipse+PyDev 安装和配置

    原文网址:http://www.51testing.com/html/67/589567-866611.html Python开发有很多工具,其中Eclipse+Pydev 是最常见的一种.本文简单介 ...