基于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);

(0)

相关推荐

  • js监听输入框值的即时变化onpropertychange、oninput

    要达到的效果 很多情况下我们都会即时监听输入框值的变化,以便作出即时动作去引导浏览者增强网站的用户体验感.比如即时显示输入框已经被输入的字节数,或者即时读取输入的值来进行搜索引导,也就是google的关联搜索效果等. 只要我们能捕获即时事件就能做到很多事情. 需要了解的知识 首先,我们需要了解onchange和onpropertychange的不同: IE下,当一个HTML元素的属性改变的时候,都能通过 onpropertychange来即时捕获. onchange在属性值改变时还必须使得当前元

  • 九种js弹出对话框的方法总结

    [1.最基本的js弹出对话框窗口代码] 这是最基本的js弹出对话框,其实代码就几句非常简单: 复制代码 代码如下: <script LANGUAGE="javascript"> <!-- window.open ("page.html") --> </script> 因为这是一段javascripts代码,所以它们应该放在<script LANGUAGE="javascript">标签和</s

  • 在js(jquery)中获得文本框焦点和失去焦点的方法

    先来看javascript的直接写在了input上 复制代码 代码如下: <input name="pwuser" type="text" id="pwuser" class="input" value="楼盘账号" onBlur="if(this.value=='') this.value='楼盘账号';" onFocus="if(this.value=='楼盘账号')

  • jQuery实现仿新浪微博浮动的消息提示框(可智能定位)

    本文实例讲述了jQuery实现仿新浪微博浮动的消息提示框.分享给大家供大家参考.具体如下: 这是一款jQuery实现的仿新浪微博新消息提示框效果,支持智能浮动定位框,新浪微博用来提示消息时候的智能定位框,可以适时关闭窗口,你完全可以将其应用到你网页的其它地方. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-f-sina-weibo-info-dlg-demo/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3

  • 简单实现js浮动框

    本文实例为大家分享了js浮动框的实现代码,供大家参考,具体内容如下 一.在需要加入浮动框的页面中加入如下css代码: <!-- 浮动窗口样式css begin --> <style type="text/css"> #msg_win { border: 1px solid #A67901; background: #EAEAEA; width: 240px; position: absolute; right: 0; font-size: 12px; font-

  • js中判断文本框是否为空的两种方法

    复制代码 代码如下: //用户名非空验证 function checkUserName(){ var name = document.myform.txtUser; //在这里我认为: name 代表的name 为 txtUser 的文本框 if(name.value.length==0){ alert("请输入用户名"); name.focus(); return false; }else{return true;} } //密码非空验证+确认验证 function checkPas

  • JavaScript实现的浮动层框架用法实例分析

    本文实例讲述了JavaScript实现的浮动层框架用法.分享给大家供大家参考.具体如下: 这是一个JavaScript编写的浮动层框架,作为框架来说,骨干已经完成了.可以实现"类"."构造函数"."继承"(木有实现多继承)."静态方法"."重载"(木有实现多态),对我来说主要的意义就是,我喜欢这种代码风格,可以非常简单的重用和二次开发. 运行效果截图如下: 在线演示地址如下: http://demo.jb5

  • jQuery实现的登录浮动框效果代码

    本文实例讲述了jQuery实现的登录浮动框效果代码.分享给大家供大家参考.具体如下: 这是一款jQuery登录浮动框代码,点击登录按钮后可看到弹出了一个浮动层,右上角带有关闭按钮,本浮动层不支持拖动,在网上经常会见到的一种浮动层格式. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-float-login-dlg-style-demo/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XH

  • js限制文本框只能输入数字方法小结

    有时需要限制文本框输入内容的类型,本节分享下正则表达式限制文本框只能输入数字.小数点.英文字母.汉字等代码. 例如,输入大于0的正整数 复制代码 代码如下: <input onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" onafterpaste="if(this.valu

  • JS模拟Dialog弹出浮动框效果代码

    本文实例讲述了JS模拟Dialog弹出浮动框效果代码.分享给大家供大家参考.具体如下: 这里演示JS模拟Dialog弹出浮动框,蓝色经典风格,可以创建一个新层,可设置弹出层的标题和内容,用它可实现一个登录框,或用在后台管理中. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-mn-dialog-float-dlg-style-demo/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML

随机推荐