自定义js控件集(一)

来源:互联网 发布:北京六道口 知乎 编辑:程序博客网 时间:2024/04/27 22:36
<script type="text/javascript">
window.onload = function(){
//showCenter("test");
var my = new My();
my.showCenter("test");

document.getElementById("top").onclick = function(){
//回到顶部
window.scrollTo(0,0);
}

my.floatBottom("float","left","50px",50,100);
}

//我的空间集
function My(){

var Control = new Object();

Control = {
/**
* 方法:showCenter 将对象居中显示,并根据窗口大小动态改变显示位置
* @param {[String]} nodeId [将要进行居中显示的对象的id]
* @return {[Object]} [返回实例]
*/
showCenter:function(nodeId){

//初始化绘制div居中
draw(nodeId);

//窗口大小改变后重新绘制
window.onresize = function(){
draw(nodeId);
};

//绘制对象居中方法
function draw(nodeId){
var obj = document.getElementById(nodeId);
var objWidth = obj.offsetWidth; //包括边框的宽
var objHeight = obj.offsetHeight;
var docWidth = document.body.clientWidth; //不包括滚动条
var docHeight = document.body.clientHeight;

var top = (docHeight - objHeight)/3 + "px";
var left = (docWidth - objWidth)/2 + "px";

obj.style.position = "absolute";

obj.style.position = "absolute";
obj.style.top = top;
obj.style.left = left;
obj.style.zIndex = 1000;
}
},

/**
* 方法:floatBottom。 该方法用于将div元素置于页面的左|右下方,并根据滚动条滚动更新位置。
* @param String nodeId [需要悬浮的元素的id]
* @param String:left|right side [设定元素漂浮在左边还是右边]
* @param String: 12px distance [设置元素的左|右边距]
* @param int: opacityTo [设置悬浮元素常态下是否渐隐,数值为渐隐值,此参数可有可无]
* @param int: marginBottom: 底距
*/
floatBottom:function(nodeId,side,distance,opacityTo,marginBottom){

var obj = document.getElementById(nodeId);

//是否渐隐的标记
var opacityFlag = opacityTo ? true:false;

obj.style.position = "absolute";
obj.style.display = "none";

//改变透明度
if(opacityFlag) this.changeOpacity(obj,opacityTo);

if(side == "left"){
obj.style.left = distance;
}else{
obj.style.right = distance;
}


window.onscroll = function(){
obj.style.display = "block";
obj.style.top = document.body.scrollTop + document.body.clientHeight - 100 - marginBottom;
if(document.body.scrollTop == 0){
obj.style.display = "none";
}


};

obj.onmouseover = function(){
obj.style.cursor = "pointer";
if(opacityFlag) new My().changeOpacity(obj,100); //其他浏览器
};

obj.onmouseout = function(){
if(opacityFlag) new My().changeOpacity(obj,opacityTo);
}


},

/**
* 方法:changeOpacity 改变目标元素的透明度
* @param Object: obj 目标node
* @param int: intNum 透明度值
*/
changeOpacity:function(obj,intNum){

var floatNum = parseInt(intNum)/100;

obj.style.filter = 'alpha(opacity='+parseInt(intNum)+')'; //兼容ie

obj.style.opacity=floatNum; //其他浏览器
}
};

return Control;
}

</script>

<style type="text/css">
#test{
width:400px;
height:200px;
border:1px solid black;
background:#888888;
}

#float{
width:200px;
height:100px;
background:#888888;
/*position: absolute;*/
/*bottom:0px;*/
/*right:0px;*/
}

html,* html body{background-image:url(about:blank);background-attachment:fixed}
</style>
<body>
<div id="test">

</div>

<div id="float"></div>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>
<h1>eagavgagv<h1><br>


<input type="button" id="top" value="Top" />

</body>
原创粉丝点击