jQuery 位置插件


Posted in Javascript onDecember 25, 2008

插件代码:
/*任意位置浮动固定层*/
/*没剑(http://regedit.cnblogs.com) 08-03-11*/
/*说明:可以让指定的层浮动到网页上的任何位置,当滚动条滚动时它会保持在当前位置不变,不会产生闪动*/
/*2008-4-1修改:当自定义right位置时无效,这里加上一个判断
有值时就不设置,无值时要加18px已修正层位置在ie6下的问题
*/
/*调用:
1 无参数调用:默认浮动在右下角
$("#id").floatdiv();
2 内置固定位置浮动
//右下角
$("#id").floatdiv("rightbottom");
//左下角
$("#id").floatdiv("leftbottom");
//右下角
$("#id").floatdiv("rightbottom");
//左上角
$("#id").floatdiv("lefttop");
//右上角
$("#id").floatdiv("righttop");
//居中
$("#id").floatdiv("middle");
3 自定义位置浮动
$("#id").floatdiv({left:"10px",top:"10px"});
以上参数,设置浮动层在left 10个像素,top 10个像素的位置
*/
jQuery.fn.floatdiv=function(location){
//ie6要隐藏纵向滚动条
var isIE6=false;
if($.browser.msie && $.browser.version=="6.0"){
$("html").css("overflow-x","auto").css("overflow-y","hidden");
isIE6=true;
};
$("body").css({margin:"0px",padding:"0 10px 0 10px",
border:"0px",
height:"100%",
overflow:"auto"
});
return this.each(function(){
var loc;//层的绝对定位位置
if(location==undefined || location.constructor == String){
switch(location){
case("rightbottom")://右下角
loc={right:"0px",bottom:"0px"};
break;
case("leftbottom")://左下角
loc={left:"0px",bottom:"0px"};
break;
case("lefttop")://左上角
loc={left:"0px",top:"0px"};
break;
case("righttop")://右上角
loc={right:"0px",top:"0px"};
break;
case("middle")://居中
var l=0;//居左
var t=0;//居上
var windowWidth,windowHeight;//窗口的高和宽
//取得窗口的高和宽
if (self.innerHeight) {
windowWidth=self.innerWidth;
windowHeight=self.innerHeight;
}else if (document.documentElement&&document.documentElement.clientHeight) {
windowWidth=document.documentElement.clientWidth;
windowHeight=document.documentElement.clientHeight;
} else if (document.body) {
windowWidth=document.body.clientWidth;
windowHeight=document.body.clientHeight;
}
l=windowWidth/2-$(this).width()/2;
t=windowHeight/2-$(this).height()/2;
loc={left:l+"px",top:t+"px"};
break;
default://默认为右下角
loc={right:"0px",bottom:"0px"};
break;
}
}else{
loc=location;
}
$(this).css("z-index","9999").css(loc).css("position","fixed");
if(isIE6){
if(loc.right!=undefined){
//2008-4-1修改:当自定义right位置时无效,这里加上一个判断
//有值时就不设置,无值时要加18px已修正层位置
if($(this).css("right")==null || $(this).css("right")==""){
$(this).css("right","18px");
}
}
$(this).css("position","absolute");
}
});
};
使用方法:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>任意位置浮动窗口插件</title>
<script type="text/javascript" src="../js/jquery-1.2.6.js"></script>
<script type="text/javascript" src="../js/jquery.floatDiv.js"></script>
<script type="text/javascript">
$(function(){
$("#test").floatdiv({top:"200px",right:"200px"});
$("#rtop").floatdiv("righttop");
$("#floatAd").floatdiv({top:"50px",left:"50px"});
});
</script>
</head>
<body>
<div id="rtop" style="background-color: #666633; width: 300px; height: 100px;padding:2px;color:white;">右上角</div>
<div id="floatAd" style="background-color: #667733; width: 300px; height: 100px;padding:2px;color:white;">左下角</div>
<div id="test" style="background-color: #665533; width: 300px; height: 100px;padding:2px;color:white;">
<p>
/*任意位置浮动固定层*/<br />
/*说明:可以让指定的层浮动到网页上的任何位置,当滚动条滚动时它会保持在当前位置不变,不会产生闪动*/<br />
/*调用:<br />
1 无参数调用:默认浮动在右下角<br />
$("#id").floatdiv();</p>
<p>
2 内置固定位置浮动<br />
//右下角<br />
$("#id").floatdiv("rightbottom");<br />
//左下角<br />
$("#id").floatdiv("leftbottom");<br />
//右下角<br />
$("#id").floatdiv("rightbottom");<br />
//左上角<br />
$("#id").floatdiv("lefttop");<br />
//右上角<br />
$("#id").floatdiv("righttop");<br />
//居中<br />
$("#id").floatdiv("middle");</p>
<p>
3 自定义位置浮动<br />
$("#id").floatdiv({left:"10px",top:"10px"});<br />
以上参数,设置浮动层在left 10个像素,top 10个像素的位置<br />
*/</p>
</div>
<div>hello<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
hello
</div>
</body>
</html>

Javascript 相关文章推荐
javascript之可拖动的iframe效果代码
Aug 01 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
Jan 11 Javascript
使用 Node.js 做 Function Test实现方法
Oct 25 Javascript
javascript记住用户名和登录密码(两种方式)
Aug 04 Javascript
理解javascript中try...catch...finally
Dec 25 Javascript
谈谈target=_new和_blank的不同之处
Oct 25 Javascript
浅谈键盘上回车按钮的js触发事件
Feb 13 Javascript
JS中IP地址与整数相互转换的实现代码
Apr 10 Javascript
vue删除html内容的标签样式实例
Sep 13 Javascript
Vue组件的使用及个人理解与介绍
Feb 09 Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
Apr 02 Javascript
vue框架中props的typescript用法详解
Feb 17 Javascript
jQuery 浮动广告实现代码
Dec 25 #Javascript
jQuery 操作XML入门
Dec 25 #Javascript
jQuery 动画基础教程
Dec 25 #Javascript
javascript jQuery插件练习
Dec 24 #Javascript
javascript 动态数据下的锚点错位问题解决方法
Dec 24 #Javascript
javascript 网页跳转的方法
Dec 24 #Javascript
javascript prototype,executing,context,closure
Dec 24 #Javascript
You might like
php array_merge下进行数组合并的代码
2008/07/22 PHP
php的sso单点登录实现方法
2015/01/08 PHP
PHP连接SQL server数据库测试脚本运行实例
2020/08/24 PHP
JavaScript中的this关键字介绍与使用实例
2013/06/21 Javascript
一些老手都不一定知道的JavaScript技巧
2014/05/06 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
JavaScript图像延迟加载库Echo.js
2016/04/05 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
jquery属性,遍历,HTML操作方法详解
2016/09/17 Javascript
jquery结合html实现中英文页面切换
2016/11/29 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
vue实现与安卓、IOS交互的方法
2018/11/02 Javascript
详解js 创建对象的几种方法
2019/03/08 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
2020/03/03 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
[47:03]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第二场 12.10
2020/12/13 DOTA
在Python中操作字典之update()方法的使用
2015/05/22 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
sublime python3 输入换行不结束的方法
2018/04/19 Python
tensorflow实现简单的卷积网络
2018/05/24 Python
python安装和pycharm环境搭建设置方法
2020/05/27 Python
python time.strptime格式化实例详解
2021/02/03 Python
python 实现Requests发送带cookies的请求
2021/02/08 Python
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
研发工程师的岗位职责
2013/11/18 职场文书
迎新晚会邀请函
2014/02/01 职场文书
中学家长会邀请函
2014/02/03 职场文书
就业协议书范本
2014/04/11 职场文书
啦啦队口号大全
2014/06/16 职场文书
实习计划书范文
2015/01/16 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
加班费申请报告
2015/05/15 职场文书
高中美术教学反思
2016/02/17 职场文书
Python基础之tkinter图形化界面学习
2021/04/29 Python
详解Redis集群搭建的三种方式
2021/05/31 Redis
go开发alertmanger实现钉钉报警
2021/07/16 Golang