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


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 相关文章推荐
js实现的常用的左侧导航效果
Oct 17 Javascript
常见表单重复提交问题整理及解决方法
Nov 13 Javascript
jquery禁用右键示例
Apr 28 Javascript
Bootstrap每天必学之下拉菜单
Nov 25 Javascript
学习JavaScript设计模式之责任链模式
Jan 18 Javascript
Listloading.js移动端上拉下拉刷新组件
Aug 04 Javascript
JS搜狐面试题分析
Dec 16 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
Jun 05 Javascript
Angular7创建项目、组件、服务以及服务的使用
Feb 19 Javascript
node-red File读取好保存实例讲解
Sep 11 Javascript
jQuery轮播图功能制作方法详解
Dec 03 jQuery
ES6字符串的扩展实例
Dec 21 Javascript
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
php xfocus防注入资料
2008/04/27 PHP
用php解析html的实现代码
2011/08/08 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
Jquery Ajax xmlhttp请求成功问题
2015/02/04 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
2015/04/29 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
js实现点击获取验证码倒计时效果
2021/01/28 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
JavaScript中的对象继承关系
2016/08/01 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
基于对象合并功能的实现示例
2017/10/10 Javascript
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
vue生命周期的探索
2019/04/03 Javascript
js代码实现轮播图
2020/05/04 Javascript
如何检测JavaScript中的死循环示例详解
2020/08/30 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
浅谈Python Opencv中gamma变换的使用详解
2018/04/02 Python
对Python中DataFrame按照行遍历的方法
2018/04/08 Python
Python数据库小程序源代码
2019/09/15 Python
Python中的上下文管理器相关知识详解
2019/09/19 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
HQhair美国/加拿大:英国化妆品、美容及美发产品商城
2019/04/15 全球购物
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
电子专业毕业生自我鉴定
2014/01/22 职场文书
创建学习型党组织实施方案
2014/03/29 职场文书
给公司的建议书范文
2014/05/13 职场文书
2014年幼儿园国庆主题活动方案
2014/09/16 职场文书
综治工作汇报材料
2014/10/27 职场文书
校园歌手大赛主持词
2015/07/03 职场文书
Python如何导出导入所有依赖包详解
2021/06/08 Python
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers