/*
* Copyright (C) 2007- 2009 ひばり
* Email:aohailin@gmail.com
* バージョン: 2.1
* オリジナルのプログラム、転載の際は著作権を保持してください
*/
var $=function(o){return typeof o== string"?document.getElementById(o):o;};
function AutoScroll(){
this.version="2.1"; this.Build( );//初期化
};
AutoScroll.prototype.Build=function(){
var me=this;
//他のスクロールイベントを取得します
var oldscroll= window.onscroll;
window.onscroll=function(){
//他のスクロールイベントを保護します
if("function"==typeof oldscroll){
oldscroll(); 🎜>// IE、FF、Chrome と互換性のあるクライアント ブラウザのパラメータを取得します。
this.common={
t:document.documentElement.scrollTop||document.body.scrollTop,
h:document.documentElement .clientHeight| |document.body.clientHeight,
w:document.documentElement.clientWidth||document.body.clientWidth
}; 0;i< ;me.obj.length;i ){
try{
this.style={};
//クライアントの位置を取得し、7 つの位置を設定します
//最小化するためここでは位置に自動的に適応します。そのため、スクロール イベントがトリガーされると、CPU 消費量が非常に多くなります。
this.position[i]=[
{x:0,y:this) .common.t},
{ x:this.common.w-me.obj[i].obj.offsetWidth,y:this.common.t},
{x:0,y:(this .common.h this.common.t-me.obj[i].obj.offsetHeight)/2 (this.common.t)/2},
{x:this.common.w-me.obj[ i].obj.offsetWidth,y:( this.common.h this.common.t-me.obj[i].obj.offsetHeight)/2 (this.common.t)/2},
{x :(this.common.w-me.obj[i].obj.offsetWidth)/2,y:(this.common.h this.common.t-me.obj[i].obj.offsetHeight)/2 ( this.common.t)/2}、
{x:0,y:this.common.h this.common.t-me.obj[i].obj.offsetHeight}、
{x:this .common.w-me.obj[i ].obj.offsetWidth,y:this.common.h this.common.t-me.obj[i].obj.offsetHeight}
];カスタム スタイルの処理
this.style ="object"==typeof me.obj[i].style?{x:me.obj[i].style.left,y:me.obj[i].style.トップ this.common.t}:{ x:this.position[i][me.obj[i].style].x,y:this.position[i][me.obj[i].style].y };
//位置
me.obj[i].obj.style.left=this.style.x "px"; .style.y "px";
}catch(e){
//関数は無効な obj
for(var j=i;jme.obj[j] =me.obj[j 1];
me.obj.length=me.obj.length-1;
}
}
}
};
//初期化
window.scroll(1,1);
AutoScroll.prototype.Add=function(){
var obj=arguments[0] ;
// 現在の位置を取得します
var oldposition=$(obj.id).style.position;
$(obj.id).style.position="absolute";上位バージョンのブラウザではすでに固定がサポートされていますが、固定は使用しないでください。
this.obj.push({
obj:$(obj.id),
oldposition:oldposition,
style:obj.style
});
AutoScroll.prototype.Remove=function(){
var obj=arguments[0]; .length;i ){
if(this .obj[i].obj==$(obj.id)){
//初期状態の位置を復元します
this.obj[i].obj. style.position=this.obj[i].oldposition ;
//本当に削除するかどうか
if(obj.remove){
this.obj[i].obj.innerHTML=""; 🎜>document.body.removeChild(this.obj[ i].obj);
}
//obj を削除
for(var j=i;jthis.obj[j] =this.obj[j 1];
this.obj.length=this.obj.length-1;
}
}
}
var Scroller=new AutoScroll();