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


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 相关文章推荐
支持ie与FireFox的剪切板操作代码
Sep 28 Javascript
仿猪八戒网左下角的文字滚动效果
Oct 28 Javascript
在页面加载完成后通过jquery给多个span赋值
May 21 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
Oct 20 Javascript
将json转换成struts参数的方法
Nov 08 Javascript
javascript 秒表计时器实现代码
Mar 09 Javascript
JsChart组件使用详解
Mar 04 Javascript
Vue2.0 事件的广播与接收(观察者模式)
Mar 14 Javascript
jquery获取元素到屏幕四周可视距离的方法
Sep 05 jQuery
Vue中的验证登录状态的实现方法
Mar 09 Javascript
VUE实现强制渲染,强制更新
Oct 29 Javascript
jquery实现广告上下滚动效果
Mar 04 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
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
2011/04/23 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
php查询相似度最高的字符串的方法
2015/03/12 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
dropdownlist之间的互相联动实现(显示与隐藏)
2009/11/24 Javascript
JavaScript 入门基础知识 想学习js的朋友可以参考下
2009/12/26 Javascript
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
2013/03/21 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
php+js实现倒计时功能
2014/06/02 Javascript
原生javascript实现简单的datagrid数据表格
2015/01/02 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
js实现一个链接打开两个链接地址的方法
2015/05/12 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
2016/01/27 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
2019/07/12 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python使用邻接矩阵构造图代码示例
2017/11/10 Python
100行Python代码实现自动抢火车票(附源码)
2018/01/11 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
2019/09/11 Python
使用Python绘制台风轨迹图的示例代码
2020/09/21 Python
简单掌握CSS3中resize属性的用法
2016/04/01 HTML / CSS
浅析HTML5中的 History 模式
2017/06/22 HTML / CSS
医学院学生求职简历的自我评价
2013/10/24 职场文书
《鸿门宴》教学反思
2014/04/22 职场文书
詹天佑教学反思
2014/04/30 职场文书
护理目标管理责任书
2014/07/25 职场文书
授权委托书格式
2014/07/31 职场文书