返回顶部
首页 > 资讯 > 前端开发 > html >HTML5怎样实现图片无限加载瀑布流效果
  • 491
分享到

HTML5怎样实现图片无限加载瀑布流效果

2024-04-02 19:04:59 491人浏览 泡泡鱼
摘要

这篇文章主要介绍了HTML5怎样实现图片无限加载瀑布流效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码如下:<!DOCTYPE&

这篇文章主要介绍了HTML5怎样实现图片无限加载瀑布流效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

代码如下:

<!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=gb2312" /> 
<title>Jquery无限加载瀑布流</title> 
<style type="text/CSS"> 
 
body{padding:0;margin:0;background:#DDD url(/jscss/demoimg/201312/bg55.jpg) repeat;} 
img{border:none;} 
a{text-decoration:none;color:#444;} 
a:hover{color:#999;} 
#title{width:600px;margin:20px auto;text-align:center;} 
 
@-WEBkit-keyframes shade{ 
from{opacity:1;} 
15%{opacity:0.4;} 
to{opacity:1;} 
} 
@-moz-keyframes shade{ 
from{opacity:1;} 
15%{opacity:0.4;} 
to{opacity:1;} 
} 
@-ms-keyframes shade{ 
from{opacity:1;} 
15%{opacity:0.4;} 
to{opacity:1;} 
} 
@-o-keyframes shade{ 
from{opacity:1;} 
15%{opacity:0.4;} 
to{opacity:1;} 
} 
@keyframes shade{ 
from{opacity:1;} 
15%{opacity:0.4;} 
to{opacity:1;} 
} 
 
#wrap{width:auto;height:auto;margin:0 auto;position:relative;} 
#wrap .box{width:280px;height:auto;padding:10px;border:none;float:left;} 
#wrap .box .info{width:280px;height:auto;border-radius:8px;box-shadow:0 0 11px #666;background:#fff;} 
#wrap .box .info .pic{width:260px;height:auto;margin:0 auto;padding-top:10px;} 
#wrap .box .info .pic:hover{ 
-webkit-animation:shade 3s ease-in-out 1; 
-moz-animation:shade 3s ease-in-out 1; 
-ms-animation:shade 3s ease-in-out 1; 
-o-animation:shade 3s ease-in-out 1; 
animation:shade 3s ease-in-out 1; 
} 
#wrap .box .info .pic img{width:260px;border-radius:3px;} 
#wrap .box .info .title{width:260px;height:40px;margin:0 auto;line-height:40px;text-align:center;color:#666;font-size:18px;font-weight:bold;overflow:hidden;} 
</style> 
<script type="text/javascript" src="/ajaxjs/jquery-1.6.2.min.js"></script> 
<script type="text/javascript"> 
window.onload = function(){ 
//运行瀑布流主函数 
PBL('wrap','box'); 
//模拟数据 
var data = [{'src':'1.jpg','title':'图片标题'},{'src':'2.jpg','title':'图片标题'},{'src':'3.jpg','title':'图片标题'},{'src':'4.jpg','title':'图片标题'},{'src':'5.jpg','title':'图片标题'},{'src':'6.jpg','title':'图片标题'},{'src':'7.jpg','title':'图片标题'}]; 
//设置滚动加载 
window.onscroll = function(){ 
//校验数据请求 
if(getCheck()){ 
var wrap = document.getElementById('wrap'); 
for(i in data){ 
//创建box 
var box = document.createElement('div'); 
box.className = 'box'; 
wrap.appendChild(box); 
//创建info 
var info = document.createElement('div'); 
info.className = 'info'; 
box.appendChild(info); 
//创建pic 
var pic = document.createElement('div'); 
pic.className = 'pic'; 
info.appendChild(pic); 
//创建img 
var img = document.createElement('img'); 
img.src = '/jscss/demoimg/201312/'+data[i].src; 
img.style.height = 'auto'; 
pic.appendChild(img); 
//创建title 
var title = document.createElement('div'); 
title.className = 'title'; 
info.appendChild(title); 
//创建a标记 
var a = document.createElement('a'); 
a.innerHTML = data[i].title; 
title.appendChild(a); 
} 
PBL('wrap','box'); 
} 
} 
} 
 
function PBL(wrap,box){ 
//1.获得外层以及每一个box 
var wrap = document.getElementById(wrap); 
var boxs = getClass(wrap,box); 
//2.获得屏幕可显示的列数 
var boxW = boxs[0].offsetWidth; 
var colsNum = Math.floor(document.documentElement.clientWidth/boxW); 
wrap.style.width = boxW*colsNum+'px';//为外层赋值宽度 
//3.循环出所有的box并按照瀑布流排列 
var everyH = [];//定义一个数组存储每一列的高度 
for (var i = 0; i < boxs.length; i++) { 
if(i<colsNum){ 
everyH[i] = boxs[i].offsetHeight; 
}else{ 
var minH = Math.min.apply(null,everyH);//获得最小的列的高度 
var minIndex = getIndex(minH,everyH); //获得最小列的索引 
getStyle(boxs[i],minH,boxs[minIndex].offsetLeft,i); 
everyH[minIndex] += boxs[i].offsetHeight;//更新最小列的高度 
} 
} 
} 
 
function getClass(wrap,className){ 
var obj = wrap.getElementsByTagName('*'); 
var arr = []; 
for(var i=0;i<obj.length;i++){ 
if(obj[i].className == className){ 
arr.push(obj[i]); 
} 
} 
return arr; 
} 
 
function getIndex(minH,everyH){ 
for(index in everyH){ 
if (everyH[index] == minH ) return index; 
} 
} 
 
function getCheck(){ 
var documentH = document.documentElement.clientHeight; 
var scrollH = document.documentElement.scrollTop || document.body.scrollTop; 
return documentH+scrollH>=getLastH() ?true:false; 
} 
 
function getLastH(){ 
var wrap = document.getElementById('wrap'); 
var boxs = getClass(wrap,'box'); 
return boxs[boxs.length-1].offsetTop+boxs[boxs.length-1].offsetHeight; 
} 
 
var getStartNum = 0;//设置请求加载的条数的位置 
function getStyle(box,top,left,index){ 
if (getStartNum>=index) return; 
$(box).css({ 
'position':'absolute', 
'top':top, 
"left":left, 
"opacity":"0" 
}); 
$(box).stop().animate({ 
"opacity":"1" 
},999); 
getStartNum = index;//更新请求数据的条数位置 
} 
</script> 
</head> 
<body> 
<section id="title"> 
<h3>瀑布流效果的学习</h3>By Smile. 
</section> 
<div id="wrap"> 
<div class="box"> 
<div class="info"> 
<div class="pic"><img src="/jscss/demoimg/201312/1.jpg"></div> 
<div class="title"><a href="#">图片标题</a></div> 
</div> 
</div> 
<div class="box"> 
<div class="info"> 
<div class="pic"><img src="/jscss/demoimg/201312/2.jpg"></div> 
<div class="title"><a href="#">图片标题</a></div> 
</div> 
</div> 
<div class="box"> 
<div class="info"> 
<div class="pic"><img src="/jscss/demoimg/201312/3.jpg"></div> 
<div class="title"><a href="#">图片标题</a></div> 
</div> 
</div> 
<div class="box"> 
<div class="info"> 
<div class="pic"><img src="/jscss/demoimg/201312/4.jpg"></div> 
<div class="title"><a href="#">图片标题</a></div> 
</div> 
</div> 
<div class="box"> 
<div class="info"> 
<div class="pic"><img src="/jscss/demoimg/201312/5.jpg"></div> 
<div class="title"><a href="#">图片标题</a></div> 
</div> 
</div> 
<div class="box"> 
<div class="info"> 
<div class="pic"><img src="/jscss/demoimg/201312/6.jpg"></div> 
<div class="title"><a href="#">图片标题</a></div> 
</div> 
</div> 
<div class="box"> 
<div class="info"> 
<div class="pic"><img src="/jscss/demoimg/201312/7.jpg"></div> 
<div class="title"><a href="#">图片标题</a></div> 
</div> 
</div> 
</div> 
<div > 
</div> 
</body> 
</html>

感谢你能够认真阅读完这篇文章,希望小编分享的“HTML5怎样实现图片无限加载瀑布流效果”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网html频道,更多相关知识等着你来学习!

--结束END--

本文标题: HTML5怎样实现图片无限加载瀑布流效果

本文链接: https://lsjlt.com/news/81875.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • HTML5怎样实现图片无限加载瀑布流效果
    这篇文章主要介绍了HTML5怎样实现图片无限加载瀑布流效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码如下:<!DOCTYPE&...
    99+
    2024-04-02
  • HTML5怎么实现图片无限加载的瀑布流效果
    本篇内容主要讲解“HTML5怎么实现图片无限加载的瀑布流效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5怎么实现图片无限加载的瀑布流效果”吧!代码如...
    99+
    2024-04-02
  • js怎么实现无限加载自适应屏幕瀑布流图片效果
    这篇文章主要讲解了“js怎么实现无限加载自适应屏幕瀑布流图片效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“js怎么实现无限加载自适应屏幕瀑布流图片效果”...
    99+
    2024-04-02
  • Vue实现无限加载瀑布流
    本文实例为大家分享了Vue实现无限加载瀑布流的具体代码,供大家参考,具体内容如下 我做的这个瀑布流放在了一个嵌套页面里,就是类似管理后台的main content中,如果要改成全屏...
    99+
    2024-04-02
  • JS实现图片瀑布流效果
    本文实例为大家分享了JS实现图片瀑布流的具体代码,供大家参考,具体内容如下 过程: 1、创建一个放所有图片的模块bigblock。 2、获取这个大模块,追加一个子元素块来放小图。 3...
    99+
    2024-04-02
  • js实现瀑布流布局(无限加载)
    本文实例为大家分享了js实现瀑布流布局的具体代码,供大家参考,具体内容如下 1.实现瀑布流布局思路 准备好数据之后 . 绑定滚动事件 . 判断页面是否到底(滚动的距离+可是区域的高度...
    99+
    2024-04-02
  • Vue怎么实现无限加载瀑布流
    这篇文章主要介绍“Vue怎么实现无限加载瀑布流”,在日常操作中,相信很多人在Vue怎么实现无限加载瀑布流问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue怎么实现无限加载瀑布流”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-25
  • CSS3如何实现瀑布流布局与无限加载图片相册
    这篇文章主要介绍了CSS3如何实现瀑布流布局与无限加载图片相册,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、pic1.html页面代码如...
    99+
    2024-04-02
  • 怎么在HTML5中使用canvas实现一个瀑布流文字效果
    今天就跟大家聊聊有关怎么在HTML5中使用canvas实现一个瀑布流文字效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。代码如下:<!doctype html>...
    99+
    2023-06-09
  • html5 worker中怎样实现图片变换效果的
    今天就跟大家聊聊有关html5 worker中怎样实现图片变换效果的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 wo...
    99+
    2024-04-02
  • 怎么用CSS3实现css多兰瀑布流效果
    本篇内容介绍了“怎么用CSS3实现css多兰瀑布流效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!CSS...
    99+
    2024-04-02
  • html5怎么实现的图片墙效果
    这篇文章主要讲解了“html5怎么实现的图片墙效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“html5怎么实现的图片墙效果”吧!本文实例讲述了基于htm...
    99+
    2024-04-02
  • html5怎么实现图片的3D旋转效果
    本篇内容主要讲解“html5怎么实现图片的3D旋转效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html5怎么实现图片的3D旋转效果”吧!   完整代码如...
    99+
    2024-04-02
  • js如何实现图片加载淡入淡出效果
    这篇文章给大家分享的是有关js如何实现图片加载淡入淡出效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。HTML代码首先是图片标记的写法:<img data-sr...
    99+
    2024-04-02
  • JavaScript怎么实现流动图片切换效果
    这篇文章主要介绍“JavaScript怎么实现流动图片切换效果”,在日常操作中,相信很多人在JavaScript怎么实现流动图片切换效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • css怎样实现卡片图像翻转效果
    本篇文章为大家展示了css怎样实现卡片图像翻转效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。css翻转图片具体代码示例:   HTML代码部分<divc...
    99+
    2024-04-02
  • 实现微信小程序中的图片懒加载效果
    实现微信小程序中的图片懒加载效果,需要具体代码示例随着移动互联网的快速发展,微信小程序已经成为了人们生活中不可或缺的一部分。而在开发微信小程序时,图片懒加载是一个常见的需求,可以有效地提升小程序的加载速度和用户体验。本文将介绍如何在微信小程...
    99+
    2023-11-21
    微信小程序 实现 图片懒加载
  • 怎么实现Android TV 3D卡片无限循环效果
    这篇文章主要讲解了“怎么实现Android TV 3D卡片无限循环效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么实现Android TV 3D卡片无限循环效果”吧!##思路自定义Vi...
    99+
    2023-06-25
  • js怎么实现无限循环轮播图效果
    小编给大家分享一下js怎么实现无限循环轮播图效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!知识要点1.实现无限循环的原理:以...
    99+
    2024-04-02
  • css怎样实现图片循环的动画效果
    这篇文章主要为大家展示了css怎样实现图片循环的动画效果,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“css怎样实现图片循环的动画效果”这篇文章吧。  <s...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作