基于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 相关文章推荐
JavaScript 设计模式 富有表现力的Javascript(一)
May 26 Javascript
jQuery Animation实现CSS3动画示例介绍
Aug 14 Javascript
node.js中实现同步操作的3种实现方法
Dec 05 Javascript
js获取字符串字节数方法小结
Jun 09 Javascript
onclick和onblur冲突问题的快速解决方法
Apr 28 Javascript
用js实现简单算法的实例代码
Sep 24 Javascript
微信小程序 页面跳转传参详解
Oct 28 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
Dec 12 Javascript
干货!教大家如何选择Vue和React
Mar 13 Javascript
javascript 数组精简技巧小结
Feb 26 Javascript
Vue scoped及deep使用方法解析
Aug 01 Javascript
Javascript confirm多种使用方法解析
Sep 25 Javascript
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
typecho插件编写教程(五):核心代码
2015/05/28 PHP
php使用Session和文件统计在线人数
2015/07/04 PHP
深入理解php printf() 输出格式化的字符串
2016/05/23 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
Node.js检测端口(port)是否被占用的简单示例
2016/09/29 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
2020/04/10 Javascript
python动态监控日志内容的示例
2014/02/16 Python
用Python代码来绘制彭罗斯点阵的教程
2015/04/03 Python
Python判断字符串与大小写转换
2015/06/08 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
解决windows下python3使用multiprocessing.Pool出现的问题
2020/04/08 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
2020/05/07 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
写给女朋友的道歉信
2014/01/08 职场文书
学校安全工作制度
2014/01/19 职场文书
《日月潭》教学反思
2014/02/28 职场文书
请假条范文大全
2014/04/10 职场文书
消防安全责任书范本
2014/04/15 职场文书
员工三分钟演讲稿
2014/08/19 职场文书
党的群众路线教育实践活动对照检查材料
2014/09/22 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书
导游词之秦始皇兵马俑博物馆
2019/09/29 职场文书