一个简单的瀑布流效果(主体形式自写)


Posted in Javascript onMay 27, 2013

闲着没事,自己写了个瀑布流,我个人写脚本或者是网页的习惯是:只参考别人的效果,很少参考别人的代码,有时侯我宁愿用审查元素来推断代码,也不愿去看源代码。我不知道这个习惯好不好。虽然中间过程是花了我不少时间,但是我做的东西的每一个细节我都还能记清楚(当然肯定后来会忘),因为是我实现的。下面说正题:

瀑布流的主体即为几个ul标签,新增加的元素以 li的形式按照当前 ul的高度有选择性的插入到某个ul下。
主体形式如下:

<div id="main"> 
<ul class="pics"> 


<li> <div class="pic"><img /></div> <div class="content">anytext..</div> </li> 


<li><div class="pic"><img /></div> <div class="content">anytext..</div> </li> 


... 

</ul> 

<ul class="pics"> <li> <div class="pic"><img /></div> <div class="content">anytext..</div> </li> 


<li><div class="pic"><img /></div> <div class="content">anytext..</div> </li> 


... 

</ul> 

.... 
</div>

css定义如下:
.pics { 

 float:left; 


 list-style:none; 


 margin-left:10px; 


 margin-right:10px; 


 width:230px; 
} 
.pics li { 


 display:block; 


 width:100%; 


 margin:0 auto; 


 margin-bottom:10px; 


 position:relative; 


 background-color:#FFF; 


 box-shadow: 0 1px 2px 0; 


 padding-top:10px; 
} 
.pic { 


 width:92%; margin:0 auto; 


 padding-top:10px; 


 text-align:center; 


 font-size:180px; 


 background-color:#0CF; 
} 
.pic img { 


 width:100%; 


 margin:0 auto; 
} 
.content { 


 width:92%; 


 margin:0 auto; 


 padding-top:10px; 


 height:50px; 


 text-overflow:ellipsis; 


 white-space:nowrap; 


 overflow:hidden; 
}

脚本实现如下:
$(function(){ 
//alert($(window).height()); 浏览器当前窗口可视区域高度 
//alert($(document).height()); 
//浏览器当前窗口文档的高度 alert($(document.body).height()); 
//浏览器当前窗口文档body的高度 alert($(document.body).outerHeight(true)); 
//浏览器当前窗口文档body的总高度 包括border padding margin alert($(window).width()); 
//浏览器当前窗口可视区域宽度 alert($(document).width()); 
//浏览器当前窗口文档对象宽度 alert($(document.body).width()); 
//浏览器当前窗口文档body的高度 alert($(document.body).outerWidth(true)); 
//浏览器当前窗口文档body的总宽度 包括border padding margin 
$(document).scroll(function(){ 
var pics=$(".pics"); 
var sc=$(document).scrollTop(); 
$("#float").text(sc); 
for(var i=0;i<pics.length;i++){ 
var pic=pics.eq(i); 
var bottom =pic.offset().top+pic.height(); 
if((sc+$(window).height())>=bottom){ 
eval( "var word=" + '"\\u' + (Math.round(Math.random() * 20901) + 19968).toString(16)+'"'); 
var li="<li> <div class='pic'>"+word+"</div><div class='content'>梦里过客笑眼望,望回廊,秋螽藏</div></li>"; 
pic.append(li); 
} 
} 
}); 
});

这样做基本实现了最简单的一个瀑布流,但是脚本中并没有考虑内存消耗,即无限加载的问题。现在我也没搞懂,以后再完善吧 。
来看效果:
一个简单的瀑布流效果(主体形式自写)
Javascript 相关文章推荐
JavaScript 学习笔记一些小技巧
Mar 28 Javascript
客户端限制只能上传jpg格式图片的js代码
Dec 09 Javascript
Js 正则表达式知识汇总
Dec 02 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
Sep 06 Javascript
前端jquery部分很精彩
May 03 Javascript
js控制div层的叠加简单方法
Oct 15 Javascript
浅析如何利用angular结合translate为项目实现国际化
Dec 08 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
Feb 13 Javascript
vue 请求后台数据的实例代码
Jun 22 Javascript
bootstrap多层模态框滚动条消失的问题
Jul 21 Javascript
利用JavaScript的%做隔行换色的实例
Nov 25 Javascript
jQuery解析json格式数据示例
Sep 01 jQuery
jquery实现的一个导航滚动效果具体代码
May 27 #Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
May 27 #Javascript
jQuery数据缓存功能的实现思路及简单模拟
May 27 #Javascript
jQuery函数的等价原生函数代码示例
May 27 #Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
May 26 #Javascript
jQuery动态地获取系统时间实现代码
May 24 #Javascript
JavaScript事件处理器中的event参数使用介绍
May 24 #Javascript
You might like
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
使用php+swoole对client数据实时更新(一)
2016/01/07 PHP
一个简单安全的PHP验证码类、PHP验证码
2016/09/24 PHP
YII框架行为behaviors用法示例
2019/04/26 PHP
JavaScript中Math对象使用说明
2008/01/16 Javascript
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
基于prototype扩展的JavaScript常用函数库
2010/11/30 Javascript
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
js arguments,jcallee caller用法总结
2013/11/30 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
javascript中的后退和刷新实现方法
2016/11/10 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
Bootstrap一款超好用的前端框架
2017/09/25 Javascript
JS+HTML+CSS实现轮播效果
2017/11/28 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
2019/08/12 Javascript
Python模块学习 datetime介绍
2012/08/27 Python
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
pandas将DataFrame的列变成行索引的方法
2018/04/10 Python
Python批量删除只保留最近几天table的代码实例
2019/04/01 Python
分析经典Python开发工程师面试题
2019/04/08 Python
python操作文件的参数整理
2019/06/11 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
python每5分钟从kafka中提取数据的例子
2019/12/23 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
护理职业应聘自荐书
2013/09/29 职场文书
美容院员工规章制度
2015/08/05 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python
Win11快速关闭所有广告推荐
2022/04/19 数码科技