基于jquery的一個(gè)浮動(dòng)框(擴(kuò)展性比較好 )
更新時(shí)間:2010年08月27日 22:44:11 作者:
在用Maxthon的時(shí)候無意看到一個(gè)浮動(dòng)框,把它改成基于jquery的,擴(kuò)展性比較好,發(fā)來分享下。
復(fù)制代碼 代碼如下:
<!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">
在此添加內(nèi)容
</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, //移動(dòng)速度
top: 200, //默認(rèn)頂部
align: 'right', //浮動(dòng)位置,可選左、右
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>
把下面這段代理放到單獨(dú)的js文件中,代碼中的css代碼可以刪掉,display設(shè)為none,是為了避免在頁面未加載完,顯示不正確的問題。
復(fù)制代碼 代碼如下:
(function($) {
$.fn.scrollBox = function(options){
var defaultOptions = {
speed: 0.1, //加速
time: 16, //移動(dòng)速度
top: 200, //默認(rèn)頂部
align: 'right', //浮動(dòng)位置,可選左、右
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);
您可能感興趣的文章:
- JS模擬Dialog彈出浮動(dòng)框效果代碼
- jQuery實(shí)現(xiàn)仿新浪微博浮動(dòng)的消息提示框(可智能定位)
- JavaScript實(shí)現(xiàn)的浮動(dòng)層框架用法實(shí)例分析
- jQuery實(shí)現(xiàn)的登錄浮動(dòng)框效果代碼
- 在js(jquery)中獲得文本框焦點(diǎn)和失去焦點(diǎn)的方法
- 九種js彈出對(duì)話框的方法總結(jié)
- js中判斷文本框是否為空的兩種方法
- js限制文本框只能輸入數(shù)字方法小結(jié)
- js監(jiān)聽輸入框值的即時(shí)變化onpropertychange、oninput
- 簡(jiǎn)單實(shí)現(xiàn)js浮動(dòng)框
相關(guān)文章
Jquery加載時(shí)從后臺(tái)讀取數(shù)據(jù)綁定到dropdownList實(shí)例
從后臺(tái)讀取數(shù)據(jù)綁定到dropdownList,option選項(xiàng)value動(dòng)態(tài)賦值,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈2013-06-06
基于jQuery實(shí)現(xiàn)仿百度首頁換膚背景圖片切換代碼
現(xiàn)在介紹網(wǎng)頁換膚的例子已經(jīng)數(shù)不勝數(shù),自己也沒有仔細(xì)研究過,剛搞遇到類似這個(gè)問題,網(wǎng)上查了資料解決了問題,感覺很有用,就記錄了下來,本文給大家分享基于jQuery實(shí)現(xiàn)仿百度首頁換膚背景圖片切換代碼,需要的朋友可以參考下2015-08-08
jquery將一個(gè)表單序列化為一個(gè)對(duì)象的方法
將表單序列化為一個(gè)對(duì)象的方法有很多,在本文為大家介紹下使用jquery是如何做到的,感興趣的朋友可以參考下2014-01-01
Jquery針對(duì)tr td的一些實(shí)用操作方法(必看篇)
下面就為大家?guī)硪黄狫query針對(duì)tr td的一些實(shí)用操作方法(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10
jQuery.cookie.js實(shí)現(xiàn)記錄最近瀏覽過的商品功能示例
這篇文章主要介紹了jQuery.cookie.js實(shí)現(xiàn)記錄最近瀏覽過的商品功能,結(jié)合實(shí)例形式分析了基于jQuery.cookie.js插件創(chuàng)建cookie及保存瀏覽記錄的操作技巧,需要的朋友可以參考下2017-01-01
jQuery實(shí)現(xiàn)有動(dòng)畫淡出效果的二級(jí)折疊菜單代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)有動(dòng)畫淡出效果的二級(jí)折疊菜單代碼,涉及jQuery響應(yīng)鼠標(biāo)事件動(dòng)態(tài)操作頁面元素樣式的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10

