一些有用的JavaScript函数(1)
1条评论»这两天写了几行JS代码,感觉重用性比较高的几个发过来,以后用的时候也不用到处找了,以后会不断地发一些平时写的一些有用的代码,所以这是一,以后可能还有二,三~····
1,改变对象透明度
function setOpacity(obj,step,f,t){
var intervarId;
function addOpacity(){
if(!isIE){
if(obj.style.opacity >= 1){
obj.style.opacity = 1;
clearInterval(intervalId);
}
else{
obj.style.opacity = parseFloat(obj.style.opacity) + step;
}
}
else{
if(obj.filters.alpha.opacity >= 100){
obj.filters.alpha.opacity = 100;
clearInterval(intervalId);
}
else{
obj.filters.alpha.opacity = obj.filters.alpha.opacity + 200*step;
}
}
}
function minuOpacity(){
if(!isIE){
if(obj.style.opacity <= 0){
obj.style.opacity = 0;
clearInterval(intervalId);
obj.parentNode.removeChild(obj);
}
else{
obj.style.opacity = parseFloat(obj.style.opacity) - step;
}
}
else{
if(obj.filters.alpha.opacity <= 0){
obj.filters.alpha.opacity = 0;
clearInterval(intervalId);
obj.parentNode.removeChild(obj);
}
else{
obj.filters.alpha.opacity = obj.filters.alpha.opacity - 200*step;
}
}
}
if(f){
try{
clearInterval(intervalId);
}catch(e){}
intervalId = setInterval(addOpacity,t);
}
else{
intervalId = setInterval(minuOpacity,t);
}
return false;
}
参数介绍:
obj:要改变透明度的对象的id,暂时只支持通过id获取对象;
step:步长,及每次透明度的变化量,IE和FF稍有不同。IE中透明度的取值是0-100,FF中是0-1;
f:设置透明度是递增还是递减。非0为递增,0为递减;
t:透明度变化的时间间隔,单位毫秒;
但在对透明度进行递减,及f参数值为0时,当透明度低降至0是,对象将从dom删除。这个函数最先只考虑到FF中的效果,最后做IE兼容性的时候纯属打补丁,所以代码并不见得很好,能用就行。
注:使用该函数前,需先初始化对象的透明度。
2,通过class获取对象
function getObjectByClass(oWrapper,tagName,sName){ //根据class获取对象
var oClass = [];
var oTag = oWrapper.getElementsByTagName(tagName);
for(var i=0; i<oTag.length; i++){
var sClass = oTag[i].classNaa\me;
if(sClass == sName){
oClass.push(oTag[i]);
}
}
return oClass;
}
该函数用于获取某一对象在其同一级别具有相同class的元素中的索引值。
参数说明;
oWrapper:要获取对象的父级元素;
tagName;及tagName,元素标签名称;
sName;class属性值;
3,获取任意对象在其向同级对象中的索引
function getIndex(obj){
var tagName = obj.nodeName;
var oParent = obj.parentNode;
var tags = oParent.getElementsByTagName(tagName);
obj.setAttribute("id","crtTag");
for(var i=0; i<tags.length; i++){
if(tags[i].getAttribute("id") == "crtTag"){
tags[i].setAttribute("id","");
return i;
}
}
}
该函数用于获取某一对象在其同一级别对象相同元素中的索引值,这个函数在制作tab切换以及JS的图片轮换广告时尤其有用。
参数说明:
obj:要获取其索引的对象。
4,insertAfter函数
function insertAfter(newObj,obj){
if(obj == obj.parentNode.lastChild){
obj.parentNode.appendChild(newObj);
}
else{
obj.parentNode.insertBefore(newObj,obj.nextSibling);
}
}
JS中原本已有appendChild函数和insertBefore函数,但是有时使用起来还不够方便,再写个insertAfter函数,使用起来就得心应手了。
此函数用于在某一对象前插入一个新的对象。
参数说明:
newObj:要插入的新对象;
Obj:新对象插入何对象前。
暂写这四个,以后不断补充~···
评论(1)
好东西,收藏 了