omiga

简单就好

一些有用的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)

发表评论

  • (必填)
  • (该信息不会公开)(必填)

全屏