原生ajax瀑布流demo
最近听朋友们说起瀑布流挺多的,自己就去研究下了,一个简单的原生demo,分享给大家...
简单分为三个文档,有详细的注释:img;ajax.php;demo.php
其中img文件夹中放入图片 1.jpg;2.jpg;3.jpg....
ajax.php页面
<?php
//模拟从数据库读取数据
$arr = array();
$op = opendir('./img'); //打开目录 //循环读取目录
while (($file = readdir($op)) !== false) {
//过滤点和点点
if ($file == '.' || $file == '..') {
continue;
}
$arr[] = $file;
}
closedir($op); //关闭目录
echo json_encode($arr);
demo.html页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>瀑布流</title>
<style>
li{
list-style: none;
float: left;
margin:4px;
}
img{
border:4px solid black;
}
</style>
</head>
<body>
<ul id="ul">
<!-- <li><img src="./img/1.jpg" height="300" alt=""></li> -->
</ul>
</body>
<script>
//找对象
var ul = document.getElementById('ul'); //拿数据
function getData()
{
var ajax = new XMLHttpRequest();
ajax.open('get', 'ajax.php', true);
ajax.send();
ajax.onreadystatechange = function()
{
if (ajax.readyState == 4 && ajax.status == 200) {
var res = ajax.responseText;
//处理结果
var obj = JSON.parse(res);
for (var k in obj) {
// obj[k];
//创建节点
var li = document.createElement('li');
li.innerHTML = '<img src="./img/'+obj[k]+'" height="300" />';
ul.appendChild(li);
}
}
}
}
getData(); var timer;
//判断滚动条的高度,加载第二批文件
window.onscroll = function()
{
//获取三高
var zGao = document.documentElement.scrollHeight;//总高度
var lGao = document.documentElement.clientHeight;//浏览器可用高度
var gGao = document.body.scrollTop || document.documentElement.scrollTop;//滚出去的高度
// console.log(zGao, lGao, gGao); document.title = zGao + '_' + lGao + '_' + gGao; if (zGao - lGao - gGao < 500) {
clearTimeout(timer);
//用一次性定时器解决连续加载的问题
timer = setTimeout(function(){
getData();
}, 200)
}
}
</script>
</html>
欢迎大家留言,一起讨论。
欢迎大家关注我的 订阅号:博客乐园

原生ajax瀑布流demo的更多相关文章
- ajax 瀑布流 demo
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 比较容易理解的---原生js瀑布流
最近一直在恶补基础JS H5 CSS3的基础知识 关于这个瀑布流: 本来打算看着教程来做的. 不过 感觉理解起来有点复杂. SO, 自己参考教程默写了一个.. 目前我所接触过的瀑布流布局分为2大类 主 ...
- Ajax——瀑布流
基本概念 1.宽度是一致的,高度上参差不齐 2.新增内容优先放置在最矮的地方 核心难点 1.用一个数组存储每列的高度值 2.新值添加到值最小索引上,每次替换更新数组 插件使用 1.$.fn.exten ...
- Hawk 3.1 动态页面,ajax,瀑布流
不少朋友反映,Hawk的手气不错,好像没法处理动态页面.其实很容易,比其他软件都容易,让我慢慢道来. 1. 什么是动态页面 很多网站,在刷新的时候会返回页面的全部内容,但实际上只需要更新一部分,这样可 ...
- ajax 瀑布流实现
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- jQuery ajax瀑布流加载静态的列表页面
1.加载一行数据 <script> //滚动加载事件 var Loadurl = "{$url}"; if(window.location.href !== Loadu ...
- 原生js瀑布流
HTML部分代码............................... CSS部分代码........................... 原生js部分代码................. ...
- js原生瀑布流
背景: 1.在移动端开发,jq文件是显得非常庞大的,所以所有效果尽量用HTML5和原生js实现. 2.本次瀑布流是固定列数,采用非浮动的另外一种瀑布流思想实现的. 3.本次数据来源是json接口 4. ...
- iOS 瀑布流的Demo
/** * 瀑布流Demo的主要代码,若想看完整的代码请到下面链接去下载 * * 链接: https://pan.baidu.com/s/1slByAHB 密码: r3q6 */ #import &l ...
随机推荐
- Spring框架IOC容器和AOP解析 非常 有用
Spring框架IOC容器和AOP解析 主要分析点: 一.Spring开源框架的简介 二.Spring下IOC容器和DI(依赖注入Dependency injection) 三.Spring下面 ...
- SPOJ-TTM To the moon
一句话题意:写一个支持区间修改,区间求和的可持久化数据结构. 考虑使用主席树,然而,区间修改怎么办? 似乎有标记永久化的方法. 对于线段树上完全覆盖标记产生贡献的区间,我们直接打上一个$tag$,而对 ...
- Web 应用之数据库的配置 与链接 Mysql
source 绝对路径.sql(绝对路径是对应数据库版本包下的) source时是有先后顺序的必须是create 在insert 在 下面是链接,上面是把数据导入到数据库中,数据也可以自己写进去. 配 ...
- 利用MVC的Area作为二级域名
此处使用的域名是我改了系统的hosts文件达到的 测试成功! 全局的注册方式 在Area的注册文件里进行配置 一个Area和一个外部的Controller 废话不多说,提供DEMO 下载地址
- nkv客户端性能调优
此文已由作者张洪箫授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 问题描述 随着考拉业务的增长和规模的扩大,很多的应用都开始重度依赖缓存服务,也就是杭研的nkv.但是在使用过 ...
- C# Newtonsoft.Json不序列字段
[JsonObject(MemberSerialization.OptOut)] public class employeePersonalForm { [JsonIgnore] public str ...
- 「CF744C」Hongcow Buys a Deck of Cards「状压 DP」
题意 你有\(n\)个物品,物品和硬币有\(A\),\(B\)两种类型,假设你有\(M\)个\(A\)物品和\(N\)个\(B\)物品 每一轮你可以选择获得\(A, B\)硬币各\(1\)个,或者(硬 ...
- UPC11073(DP,思维)
#include<bits/stdc++.h>using namespace std;long long dp[507][507];const long long mod = 998244 ...
- 《OD学spark》20160925 Spark Core
一.引言 Spark内存计算框架 中国Spark技术峰会 十二场演讲 大数据改变世界,Spark改变大数据 大数据: 以Hadoop 2.x为主的生态系统框架(MapReduce并行计算框架) 存储数 ...
- 洛谷P1480 A/B Problem(高精除高精)
P1480 A/B Problem 题目描述 输入两个整数a,b,输出它们的商(a<=10^5000,b<=10^9) 输入输出格式 输入格式: 两行,第一行是被除数,第二行是除数. 输出 ...