基于jquery的一个浮动框(扩展性比较好 )


Posted in Javascript onAugust 27, 2010
<!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> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title></title> 
<style type="text/css"> 
body 
{ 
height:2000px; 
} 
.float_mx{ 
background:#CCC; 
width:100px; 
height:100px; 
display:none; 
} 
</style> 
</head> 
<body> 
<div class="float_mx"> 
在此添加内容 
</div> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
(function($) { 
$.fn.scrollBox = function(options){ 
var defaultOptions = { 
speed: 0.1, //加速 
time: 16, //移动速度 
top: 200, //默认顶部 
align: 'right', //浮动位置,可选左、右 
mix: 0 //边距 
}; 
var options = $.extend(defaultOptions, options); 
this.each(function(){ 
var obj = $(this); 
init(); 
function init(){ 
obj.css('display', 'block'); 
obj.css('position', 'absolute'); 
obj.css(options.align, options.mix); 
obj.css('top', options.top+'px'); 
obj.css('z-index', '99'); 
move(); 
} 
function back() { 
acceleration = options.speed; 
time = options.time; 
var x1 = 0; 
var y1 = 0; 
var x2 = 0; 
var y2 = 0; 
if (document.documentElement) { 
x1 = document.documentElement.scrollLeft || 0; 
y1 = document.documentElement.scrollTop || 0; 
} 
if (document.body) { 
x2 = document.body.scrollLeft || 0; 
y2 = document.body.scrollTop || 0; 
} 
var x = Math.max(x1, x2); 
var y = Math.max(y1, y2); 
var speed = acceleration; 
return { 
l: x, 
t: y, 
s: speed 
}; 
}; function move(){ 
var tip = obj; 
var old = options.top; 
var pos = back().t; 
pos = pos - $(tip).Coordinate().y + options.top; 
pos = $(tip).Coordinate().y + pos / 10; 
if (pos < options.top) { 
pos = options.top; 
} 
if (pos != old) { 
tip.css('top',pos + "px"); 
} 
old = pos; 
window.setTimeout(function(){move();}, options.time); 
}; 
}); 
}; 
$.fn.Coordinate = function(){ 
var E = $(this)[0]; 
var C = E.offsetTop; 
var B = E.offsetLeft; 
var A = E.offsetWidth; 
var D = E.offsetHeight; 
while (E = E.offsetParent) { 
C += E.offsetTop; 
B += E.offsetLeft; 
} 
return { 
x: B, 
y: C, 
w: A, 
h: D 
}; 
}; 
})(jQuery); 
$('.float_mx').scrollBox(); 
</script> 
</body> 
</html>

把下面这段代理放到单独的js文件中,代码中的css代码可以删掉,display设为none,是为了避免在页面未加载完,显示不正确的问题。
(function($) { 
$.fn.scrollBox = function(options){ 
var defaultOptions = { 
speed: 0.1, //加速 
time: 16, //移动速度 
top: 200, //默认顶部 
align: 'right', //浮动位置,可选左、右 
mix: 0 //边距 
}; 
var options = $.extend(defaultOptions, options); 
this.each(function(){ 
var obj = $(this); 
init(); 
function init(){ 
obj.css('display', 'block'); 
obj.css('position', 'absolute'); 
obj.css(options.align, options.mix); 
obj.css('top', options.top+'px'); 
obj.css('z-index', '99'); 
move(); 
} 
function back() { 
acceleration = options.speed; 
time = options.time; 
var x1 = 0; 
var y1 = 0; 
var x2 = 0; 
var y2 = 0; 
if (document.documentElement) { 
x1 = document.documentElement.scrollLeft || 0; 
y1 = document.documentElement.scrollTop || 0; 
} 
if (document.body) { 
x2 = document.body.scrollLeft || 0; 
y2 = document.body.scrollTop || 0; 
} 
var x = Math.max(x1, x2); 
var y = Math.max(y1, y2); 
var speed = acceleration; 
return { 
l: x, 
t: y, 
s: speed 
}; 
}; function move(){ 
var tip = obj; 
var old = options.top; 
var pos = back().t; 
pos = pos - $(tip).Coordinate().y + options.top; 
pos = $(tip).Coordinate().y + pos / 10; 
if (pos < options.top) { 
pos = options.top; 
} 
if (pos != old) { 
tip.css('top',pos + "px"); 
} 
old = pos; 
window.setTimeout(function(){move();}, options.time); 
}; 
}); 
}; 
$.fn.Coordinate = function(){ 
var E = $(this)[0]; 
var C = E.offsetTop; 
var B = E.offsetLeft; 
var A = E.offsetWidth; 
var D = E.offsetHeight; 
while (E = E.offsetParent) { 
C += E.offsetTop; 
B += E.offsetLeft; 
} 
return { 
x: B, 
y: C, 
w: A, 
h: D 
}; 
}; 
})(jQuery);
Javascript 相关文章推荐
js如何取消事件冒泡
Sep 23 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
Feb 13 Javascript
关于JS变量和作用域详解
Jul 28 Javascript
jQuery实现点击行选中或取消CheckBox的方法
Aug 01 Javascript
AngularJS equal比较对象实例详解
Sep 14 Javascript
JavaScript正则表达式实例详解
Oct 16 Javascript
JavaScript中object和Object的区别(详解)
Feb 27 Javascript
jQuery Masonry瀑布流布局神器使用详解
May 25 jQuery
JS实现在文本指定位置插入内容的简单示例
Dec 22 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
Jan 21 Javascript
vue 之 .sync 修饰符示例详解
Apr 21 Javascript
Jquery+javascript实现支付网页数字键盘
Dec 21 jQuery
Jquery+ajax请求data显示在GridView上(asp.net)
Aug 27 #Javascript
JQERY limittext 插件0.2版(长内容限制显示)
Aug 27 #Javascript
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
Aug 27 #Javascript
jquery 插件开发备注
Aug 27 #Javascript
Jquery + Ajax调用webService实例代码(asp.net)
Aug 27 #Javascript
JavaScript使用过程中需要注意的地方和一些基本语法
Aug 26 #Javascript
ExtJs GridPanel简单的增删改实现代码
Aug 26 #Javascript
You might like
PHP OPCode缓存 APC详细介绍
2010/10/12 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
jquery动态添加删除div 具体实现
2013/07/20 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
JQuery用户名校验的具体实现
2016/03/18 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
JS实现的找零张数最小问题示例
2017/11/28 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
谈谈JavaScript令人迷惑的==与+
2020/08/31 Javascript
js实现简单的无缝轮播效果
2020/09/05 Javascript
python实现探测socket和web服务示例
2014/03/28 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
Python排序搜索基本算法之归并排序实例分析
2017/12/08 Python
Django开发中复选框用法示例
2018/03/20 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
python 生成器和迭代器的原理解析
2019/10/12 Python
python+requests接口自动化框架的实现
2020/08/31 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
python中@contextmanager实例用法
2021/02/07 Python
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
几道数据库的概念性面试题
2014/05/30 面试题
酒店服务实习自我鉴定
2013/09/22 职场文书
网游商务专员求职信
2013/10/15 职场文书
2015年招生工作总结
2015/05/04 职场文书
工作失职自我检讨书
2015/05/05 职场文书
民事调解书范文
2015/05/20 职场文书
歌剧魅影观后感
2015/06/05 职场文书
学历证明范文
2015/06/16 职场文书
学习计划是什么
2019/04/30 职场文书