基于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系列(46):代码复用模式(推荐篇)详解
Mar 04 Javascript
关于延迟加载JavaScript
May 05 Javascript
用JavaScript实现页面重定向功能的教程
Jun 04 Javascript
AngularJS学习笔记之基本指令(init、repeat)
Jun 16 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
Feb 16 Javascript
纯js实现的积木(div层)拖动功能示例
Jul 19 Javascript
Easy UI动态树点击文字实现展开关闭功能
Sep 30 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
Dec 20 Javascript
详解weex默认webpack.config.js改造
Jan 08 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
Apr 26 Javascript
vant IndexBar实现的城市列表的示例代码
Nov 20 Javascript
微信小程序自定义modal弹窗组件的方法详解
Dec 20 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
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
php数据访问之查询关键字
2016/05/09 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
javascript重写alert方法的实例代码
2013/03/29 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
jquery delay()介绍及使用指南
2014/09/02 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
Javascript的比较汇总
2016/07/25 Javascript
解析js如何获取css样式
2016/12/11 Javascript
基于BootStrap的前端分页带省略号和上下页效果
2017/05/18 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
vue 通过下拉框组件学习vue中的父子通讯
2017/12/19 Javascript
vue项目关闭eslint校验
2018/03/21 Javascript
element-ui 的el-button组件中添加自定义颜色和图标的实现方法
2018/10/26 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
python 爬取微信文章
2016/01/30 Python
Jupyter中直接显示Matplotlib的图形方法
2018/05/24 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
python占位符输入方式实例
2019/05/27 Python
python匿名函数的使用方法解析
2019/10/10 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
python利用faker库批量生成测试数据
2020/10/15 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
快速一键生成Python爬虫请求头
2021/03/04 Python
HTML5的革新 结构之美
2011/06/20 HTML / CSS
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
大学本科毕业生求职简历的自我评价
2013/10/09 职场文书
企业统计员岗位职责
2013/12/13 职场文书
公司规章制度范本
2015/08/03 职场文书
男方家长婚礼答谢词
2015/09/29 职场文书