淡出没有jQuery

时间:2014-01-15 09:15:20

标签: javascript css3

我正在使用此功能打开和关闭元素onclick。 如何在不使用jQuery的情况下添加一些淡入淡出效果?

function toggle_visibility(){
  for(var i = 0,len = arguments.length;i < len;i++){
    var e = document.getElementById(arguments[i]).style,d = e.display;
    e.display = (d == "block") ? "none" : "block";
  }
}

2 个答案:

答案 0 :(得分:1)

您可以使用css3过渡和不透明度来执行此操作

#block {
    transition: opacity 1s ease-in-out;
}

.out { opacity: 0; }
.in { opacity: 1; }

然后使用out或在类中隐藏或显示元素

答案 1 :(得分:1)

您可以编写自己的函数:

var toggleFade = function(element, time, callback) {
    var timeStep = 50;
    var step = timeStep / time;
    var toValue = 1;
    if (element.style.display != 'none') {
        step = -step;
        toValue = 0;
        element.style.opacity = element.style.opacity || 1;        
    } else {
        element.style.opacity = element.style.opacity || 0;  
        element.style.display = 'block';        
    }

    var interval = setInterval(function() {
        var newVal = +element.style.opacity + step;

        if (newVal < 0 && step < 0) {
            clearInterval(interval);
            element.style.opacity = 0;
            element.style.display = 'none'
            callback && callback();
        } else if (newVal > 1 && step > 0) {
            clearInterval(interval);
            element.style.opacity = 1;
            callback && callback();
        } else
            element.style.opacity = newVal;
    }, timeStep);
}

Demo