;(function(){
var index = 0;
var timer = null;
var suspension = function(options){
this.width = options.width||200;
this.height = options.height||240;
this.data = options.data||{title: '',content: ''};
this.isclose = options.isclose||true;
this.isdrag = options.isdrag||false;
this.scrollbg = options.scrollbg||'green';
this.speed = options.speed>=2?1:options.speed;
this.left = options.left||0;/*默认left距离*/
this.top = options.left||0;/*默认top距离*/
this.tflag = false;/*控制高度-锁*/
this.lflag = true;/*控制宽度-锁*/
this.index = index;
this.init();
};
/*初始化*/
suspension.prototype.init = function(){
this.adddom();
var rglsuspension = document.getelementbyid('rgl_suspension'+this.index);
var rglspclose = document.getelementbyid('rgl_sp_close'+this.index);
var rglspcontent = document.getelementbyid('rgl_sp_content'+this.index);
var rglspcontenttext = document.getelementbyid('rgl_sp_content_text'+this.index);
/*设置内容、滚动条高度*/
this.setheight({
content: rglspcontent,
});
/*是否关闭*/
if(this.isclose){
this.close({
close: rglspclose,
suspension: rglsuspension
});
}
/*运动起来*/
this.motion({
suspension: rglsuspension
});
/*移入停止、离开运行*/
this.stopstart({
suspension: rglsuspension
});
/*拖拽*/
if(this.isdrag){
this.drag({
suspension: rglsuspension,
title: rglspcontent
});
}
/*窗口改变*/
this.resize({
suspension: rglsuspension
});
};
/*添加结构*/
suspension.prototype.adddom = function(){
var div = document.createelement('div');
div.classname = "suspension";
div.id = "rgl_suspension"+this.index;
div.style.position = 'absolute';
div.style.width = this.width+'px';
div.style.height = this.height+'px';
div.style.left = this.left+'px';
div.style.top = this.top+'px';
div.style.zindex = 99999;
var temp = "";
if(this.isclose){
temp += '×';
}
temp += '
'+
'
'+this.data.content+'
'+
'
';
div.innerhtml = temp;
document.getelementsbytagname('body')[0].appendchild(div);
};
/*运动起来*/
suspension.prototype.setheight = function(options){
options.content.style.height = this.height+'px';
};
/*运动起来*/
suspension.prototype.motion = function(options){
var width = document.documentelement.clientwidth-options.suspension.offsetwidth;/*获取并计算浏览器初始宽度*/
var height = document.documentelement.clientheight-options.suspension.offsetheight;/*获取并计算浏览器初始高度*/
var _this = this;
timer=setinterval(function(){
var scrolltop = document.documentelement.scrolltop||document.body.scrolltop;
if(!_this.tflag){
_this.top += _this.speed;
if(_this.top>=height){
_this.tflag=true;
}
}else{
_this.top -= _this.speed;
if(_this.top<=0){
_this.tflag=false;
}
}
if(_this.lflag){
_this.left += _this.speed;
if(_this.left>=width){
_this.lflag=false;
}
}else{
_this.left -= _this.speed;
if(_this.left<=0){
_this.lflag=true;
}
}
options.suspension.style.left = _this.left+'px';
options.suspension.style.top = (_this.top+scrolltop)+'px';
},15);
};
/*关闭悬浮*/
suspension.prototype.close = function(options){
options.close.onclick = function(){
document.getelementsbytagname('body')[0].removechild(options.suspension);
};
};
/*窗口变化*/
suspension.prototype.resize = function(options){
var _this = this;
window.onresize = function(){
clearinterval(timer);
_this.motion(options);
};
};
/*兼容监听事件*/
suspension.prototype.addevent = function (obj,xevent,fn) {
if(obj.attachevent){
obj.attachevent('on'+xevent,fn);
}else{
obj.addeventlistener(xevent,fn,false);
}
};
/*移入停止运动--离开继续运动*/
suspension.prototype.stopstart = function (options) {
options.suspension.onmouseenter = function(){
clearinterval(timer);
};
var _this = this;
options.suspension.onmouseleave = function(){
_this.motion(options);
};
};
/*获取样式*/
suspension.prototype.getstyle = function (obj,stylename){
if(obj.currentstyle){
//ie
return obj.currentstyle[stylename];
}else{
//chrom,ff
return getcomputedstyle(obj,false)[stylename];
}
};
/*拖拽*/
suspension.prototype.drag = function(options){
var state;/*拖动锁*/
var _this = this;
options.title.onmousedown = function(event){
event = event||window.event;
state = false;
var scrolltop = document.documentelement.scrolltop||document.body.scrolltop;
//记录鼠标距离盒子左边和上边的距离 偏移量
var disx = event.clientx-options.suspension.offsetleft;//左边
var disy = event.clienty+scrolltop-options.suspension.offsettop;//上边
//鼠标移动事件
document.onmousemove=function(event){
event = event||window.event;
var x = event.clientx-disx;//盒子左边的距离
var y = event.clienty+scrolltop-disy;//盒子顶部距离
var w = document.documentelement.clientwidth;
var h = document.documentelement.clientheight;
//判断屏幕范围
if(x<0){
x=0;
}
if(y<0){
y=0;
}
if(x>w-options.suspension.offsetwidth){
x=w-options.suspension.offsetwidth;
}
if(y>h+scrolltop-options.suspension.offsetheight){
y=h+scrolltop-options.suspension.offsetheight;
}
//赋值
_this.top = y-scrolltop;
_this.left = x;
options.suspension.style.left=x+"px";
options.suspension.style.top=y+"px";
};
//鼠标抬起停止拖拽
document.onmouseup=function(){
document.onmousemove=null;
state = true;
};
return false;
};
};
window.suspension = suspension;
})();
/**
window.onload = function(){
new suspension({
width: 470,
height: 230,
left: 100,
top: 20,
data: {
content: ''
//content: ''
},
speed: 6,
isclose: true,
isdrag: true,
scrollbg: 'red',
});
};**/