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

 更新时间:2010年08月27日 22:44:11   作者:  
在用Maxthon的时候无意看到一个浮动框,把它改成基于jquery的,扩展性比较好,发来分享下。
复制代码 代码如下:

<!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);

相关文章

  • Jquery加载时从后台读取数据绑定到dropdownList实例

    Jquery加载时从后台读取数据绑定到dropdownList实例

    从后台读取数据绑定到dropdownList,option选项value动态赋值,具体实现如下,感兴趣的朋友可以参考下哈
    2013-06-06
  • JQuery选择器绑定事件及修改内容的方法

    JQuery选择器绑定事件及修改内容的方法

    这篇文章主要介绍了JQuery选择器绑定事件及修改内容的方法,涉及bind()、show()、hide()、html()等方法的使用技巧,需要的朋友可以参考下
    2015-01-01
  • 基于jQuery实现仿百度首页换肤背景图片切换代码

    基于jQuery实现仿百度首页换肤背景图片切换代码

    现在介绍网页换肤的例子已经数不胜数,自己也没有仔细研究过,刚搞遇到类似这个问题,网上查了资料解决了问题,感觉很有用,就记录了下来,本文给大家分享基于jQuery实现仿百度首页换肤背景图片切换代码,需要的朋友可以参考下
    2015-08-08
  • jquery层次选择器的介绍

    jquery层次选择器的介绍

    今天小编就为大家分享一篇关于jquery层次选择器的介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • jquery将一个表单序列化为一个对象的方法

    jquery将一个表单序列化为一个对象的方法

    将表单序列化为一个对象的方法有很多,在本文为大家介绍下使用jquery是如何做到的,感兴趣的朋友可以参考下
    2014-01-01
  • 基于jQuery实现放大镜特效

    基于jQuery实现放大镜特效

    这篇文章主要介绍了基于jQuery实现放大镜效果,一般应用于放大查看商品图片,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • Jquery针对tr td的一些实用操作方法(必看篇)

    Jquery针对tr td的一些实用操作方法(必看篇)

    下面就为大家带来一篇Jquery针对tr td的一些实用操作方法(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • jQuery.cookie.js实现记录最近浏览过的商品功能示例

    jQuery.cookie.js实现记录最近浏览过的商品功能示例

    这篇文章主要介绍了jQuery.cookie.js实现记录最近浏览过的商品功能,结合实例形式分析了基于jQuery.cookie.js插件创建cookie及保存浏览记录的操作技巧,需要的朋友可以参考下
    2017-01-01
  • jQuery实现雪花飘落效果

    jQuery实现雪花飘落效果

    这篇文章主要为大家详细介绍了jQuery实现雪花飘落效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • jQuery实现有动画淡出效果的二级折叠菜单代码

    jQuery实现有动画淡出效果的二级折叠菜单代码

    这篇文章主要介绍了jQuery实现有动画淡出效果的二级折叠菜单代码,涉及jQuery响应鼠标事件动态操作页面元素样式的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10

最新评论