文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>jquery 元素相对定位

jquery 元素相对定位

时间:2010-10-13  来源:星光~








123312313
123312313

 

/**
*jQuery rposition 
*fix:要定位的元素
*rel:相对定位的元素
*options:{},align:左右对齐;vlign:垂直对齐;xleft:水平补给值;xleft:垂直补给值;adjust:是否相对窗口自动调整;rwindow:定位相对于窗口(align&vlign为center时垂直或水平居中);
*/
(function(win,$){
win.rposition=function(fix,rel,options){
        var rectLeft,rectTop,rectH=fix.outerHeight(),rectW=fix.outerWidth(),wh=$(window).height(),ww=$(window).width(),
        sT=$(document).scrollTop(),sL=$(document).scrollLeft(),
        defaults={
                align:"left",
                vlign:"top",
                xleft:0,
                xtop:0,
                adjust:true,
                rwindow:false
        },
        options = $.extend(defaults, options);
        var rectRel={
                l:$(rel).offset().left,
                t:$(rel).offset().top,
                w:$(rel).outerWidth(),
                h:$(rel).outerHeight()
        };
        switch(options.align){
                case "left":
                 rectLeft=rectRel.l;break;
                case "right":
                 rectLeft=rectRel.l+rectRel.w;break;
                case "center":
                 rectLeft=rectRel.l+rectRel.w/2;break;
                case "rleft":
                 rectLeft=rectRel.l-rectW;break;
                 default:
                 rectLeft=rectRel.l;
        };
        switch(options.vlign){
                case "top":
                 rectTop=rectRel.t;break;
                case "center":
                 rectTop=rectRel.t+rectRel.h/2;break;
                case "vbottom":
                rectTop=rectRel.t-rectH; break;
                case "bottom":
                default:
                rectTop=rectRel.t+rectRel.h;
        };
        if(options.rwindow){
                if(options.align=="center")rectLeft=(ww-rectW)/2+sL;
                if(options.vlign=="center")rectTop=(wh-rectH)/2+sT;
        };
        if(options.adjust){
                if(rectLeft+rectW>ww+sL){rectLeft-=(rectLeft+rectW)-(ww+sL)}
                if(rectTop+rectH>wh+sT){rectTop=rectRel.t-rectH;}
        };
        $(fix).css({"left":rectLeft+options.xleft,"top":rectTop+options.xtop});
}
})(window,jQuery)
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载