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


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 相关文章推荐
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
Nov 12 Javascript
javascript奇异的arguments分析
Oct 20 Javascript
JS页面延迟执行一些方法(整理)
Nov 11 Javascript
JS批量修改PS中图层名称的方法
Jan 26 Javascript
手机端转盘抽奖代码分享
Sep 10 Javascript
JavaScript对Json的增删改属性详解
Jun 02 Javascript
ReactNative页面跳转实例代码
Sep 27 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
May 17 jQuery
node实现分片下载的示例代码
Oct 17 Javascript
VueJS 组件参数名命名与组件属性转化问题
Dec 03 Javascript
解决vue v-for src 图片路径问题 404
Nov 12 Javascript
JavaScript 类的封装操作示例详解
May 16 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实现把数组按指定的个数分隔
2014/02/17 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
Yii2语言国际化的配置教程
2018/08/19 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
Node.js使用NodeMailer发送邮件实例代码
2017/03/06 Javascript
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
2020/04/13 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
Python读取Excel的方法实例分析
2015/07/11 Python
使用Python判断质数(素数)的简单方法讲解
2016/05/05 Python
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
python实现键盘控制鼠标移动
2020/11/27 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
2018/11/06 Python
详解Python进阶之切片的误区与高级用法
2018/12/24 Python
PyQt5 实现字体大小自适应分辨率的方法
2019/06/18 Python
django框架两个使用模板实例
2019/12/11 Python
pandas参数设置的实用小技巧
2020/08/23 Python
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
二年级语文教学反思
2014/02/02 职场文书
大学生就业策划书范文
2014/04/04 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
安全协议书范本
2014/04/21 职场文书
捐款通知怎么写
2015/04/24 职场文书
通知的格式范文
2015/04/27 职场文书
2016年大学生暑假爱心支教活动策划书
2015/11/26 职场文书
SQL之各种join小结详细讲解
2021/08/04 MySQL
CSS实现单选折叠菜单功能
2021/11/01 HTML / CSS