调用方法

$('需要布局的块').sault()

如果要在图片加载后调用需要使用$(window).load(function(fx){});函数,即等待图片加载完成再调用

3个参数

1.left:左右间隔

2.top:上下间隔

3.split:希望分成几列

全部是数字

实现原理是绝对定位,不用浮动的原因是,浮动会造成空白

为了固定位置,需要在父元素上使用相对定位

Array.prototype.max = function(){
return Math.max.apply({},this);
} ; Array.prototype.min = function(){
return Math.min.apply({},this);
}; (function ( $ ) {
$.fn.sault=function(options){ var settings = $.extend({
left:10,
top:10,
split:3
}, options);
this.css('position','absolute'); $harr=new Array();
for(var $s=0;$s<settings.split;$s++){
$float0=this.eq($s);
$harr[$s]=$float0.height();
$width=$float0.width(); if($s==0){ }else{
$float0.css('left',$s*($width+settings.left)+'px');
}
}; $count=0; this.each(function(){ if($count<settings.split){
$count++;
}else{
$min= $harr.min();
for(var $i in $harr){
if($harr[$i]==$min){
$index=$i;
}; }; $(this).css('top',$min+settings.top+'px');
$harr[$index]=$min+$(this).height()+settings.top;
$(this).css('left',$index*($width+settings.left)+'px');
$count++;
}
});
this.parent().height($harr.max()+'px'); } }( jQuery ));

修改,好像在ie8下有兼容性问题,所以有了这个修改

Array.prototype.max = function(){
return Math.max.apply({},this);
} ; Array.prototype.min = function(){
return Math.min.apply({},this);
}; (function ( $ ) {
$.fn.sault=function(options){ var settings = $.extend({
left:10,
top:10,
split:3
}, options);
this.css('position','absolute'); $harr=new Array();
for(var $s=0;$s<settings.split;$s++){
$float0=this.eq($s);
$harr[$s]=$float0.height();
$width=$float0.width(); if($s==0){ }else{
$float0.css('left',$s*($width+settings.left)+'px');
}
}; $count=0; this.each(function(){ if($count<settings.split){
$count++;
}else{
$min= $harr.min();
for(var $i in $harr){
if($harr[$i]==$min){
$index=$i;
}; }; $(this).css('top',$min+settings.top+'px');
$harr[$index]=$min+$(this).height()+settings.top;
$(this).css('left',$index*($width+settings.left)+'px');
$count++;
}
});
this.parent().height($harr.max()+'px');
this.parent().height($harr.max()+20+'px\0'); }; }( jQuery ));

最新文章

  1. jQuery中10个非常有用的遍历函数
  2. 微信开放平台开发——网页微信扫码登录(OAuth2.0)
  3. AngularJS快速入门指南17:Includes
  4. 实验:传输层:UDP协议 学习笔记
  5. Ajax请求ashx 返回 json 格式数据常见问题
  6. for循环里面的判断条件
  7. Linux的用户和用户组管理
  8. spoj 7258 Lexicographical Substring Search (后缀自动机)
  9. php-fpm 相关
  10. 深入理解Python中协程的应用机制: 使用纯Python来实现一个操作系统吧!!
  11. Unrecognized token &#39;XXXX&#39;: was expecting (&#39;true&#39;, &#39;false&#39; or &#39;null&#39;)
  12. phpexcel 使用模板导出报表
  13. springboot用户登陆密码两次md5加密
  14. TODO java-web相关 servlet过滤器+监听器
  15. javascript模块化编程-详解立即执行函数表达式IIFE
  16. msql 复杂练习
  17. Spring Boot 揭秘与实战(二) 数据存储篇 - Redis
  18. 显式锁(四)Lock的等待通知机制Condition
  19. HTML5中的Web Storage(sessionStorage||localStorage)理解与简单实例
  20. MAVEN打zip包

热门文章

  1. JS读取/创建本地文件及目录文件夹的方法
  2. 【CDockablePane】关于CDockablePane
  3. RSTP介绍
  4. hdu 4523(大整数)
  5. hdu 4786(生成树)
  6. LeetCode OJ-- Binary Tree Maximum Path Sum ***
  7. (一)python 简单网页爬虫
  8. [LOJ6235]区间素数个数
  9. vue开发小程序简介
  10. sudo如何保持当前用户的环境变量?