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


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代码
Mar 16 Javascript
jquery animate 动画效果使用说明
Nov 04 Javascript
推荐11款jQuery开发的复选框和单选框美化插件
Aug 02 Javascript
不用锚点也可以平滑滚动到页面的指定位置实现代码
May 08 Javascript
jQuery在页面加载时动态修改图片尺寸的方法
Mar 20 Javascript
chrome不支持form.submit的解决方案
Apr 28 Javascript
JS获取文件大小方法小结
Dec 08 Javascript
vue实现微信二次分享以及自定义分享的示例
Mar 20 Javascript
详解iframe跨域的几种常用方法(小结)
Apr 29 Javascript
jQuery表单选择器用法详解
Aug 22 jQuery
JavaScript获取当前url路径过程解析
Dec 27 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
Oct 28 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 has encountered an Access Violation
2007/01/15 PHP
php管理nginx虚拟主机shell脚本实例
2014/11/19 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
利用PHP将图片转换成base64编码的实现方法
2016/09/13 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
在javaScript中关于submit和button的区别介绍
2013/10/20 Javascript
js文件Cookie存取值示例代码
2014/02/20 Javascript
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
jQuery表格插件datatables用法总结
2014/09/05 Javascript
快速学习jQuery插件 Cookie插件使用方法
2015/12/01 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
JS实现字符串转驼峰格式的方法
2016/12/16 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
node实现登录图片验证码的示例代码
2018/04/20 Javascript
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
Element的el-tree控件后台数据结构的生成以及方法的抽取
2020/03/05 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
跟老齐学Python之编写类之四再论继承
2014/10/11 Python
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
Python selenium 三种等待方式解读
2016/09/15 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
python实现自动网页截图并裁剪图片
2018/07/30 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
《口技》教学反思
2014/02/21 职场文书
小学班主任培训方案
2014/06/04 职场文书
服务标语口号
2014/07/01 职场文书
开学典礼致辞
2015/07/29 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书
详解Go与PHP的语法对比
2021/05/29 PHP
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python