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


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修改input的type属性问题探讨
Oct 12 Javascript
javascript将url中的参数加密解密代码
Nov 17 Javascript
JavaScript中setFullYear()方法的使用详解
Jun 11 Javascript
jQuery中选择器的基础使用教程
May 23 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
Jan 22 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
Mar 14 Javascript
Vue2.0实现将页面中表格数据导出excel的实例
Aug 09 Javascript
vue获取当前激活路由的方法
Mar 17 Javascript
angularjs 动态从后台获取下拉框的值方法
Aug 13 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
Jul 19 Javascript
vue项目从node8.x升级到12.x后的问题解决
Oct 25 Javascript
JavaScript直接调用函数与call调用的区别实例分析
May 22 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中的正则表达式以及模式匹配
2013/06/19 PHP
php出现内存位置访问无效错误问题解决方法
2014/08/16 PHP
windows环境下使用Composer安装ThinkPHP5
2018/05/18 PHP
JavaScript面向对象编程
2008/03/02 Javascript
javascript 写的一个简单的timer
2009/07/30 Javascript
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
js控制frameSet示例
2013/09/10 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
浅析JavaScript事件和方法
2015/02/28 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
2018/08/25 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
微信小程序indexOf的替换方法(推荐)
2020/01/14 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
Python实现发送email的几种常用方法
2014/08/18 Python
Python实现可自定义大小的截屏功能
2018/01/20 Python
画pytorch模型图,以及参数计算的方法
2019/08/17 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
使用javascript和HTML5 Canvas画的四渐变色播放按钮效果
2014/04/10 HTML / CSS
解析HTML5的存储功能和web SQL的相关操作方法
2016/02/19 HTML / CSS
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
香蕉共和国工厂店:Banana Republic Factory
2018/06/09 全球购物
中学教师实习自我鉴定
2013/09/28 职场文书
财务管理专业推荐信
2013/11/19 职场文书
小学生竞选班干部演讲稿(5篇)
2014/09/12 职场文书
uniapp开发小程序的经验总结
2021/04/08 Javascript
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js