javascript - 使用 javascript 显示/隐藏 <div>

标签 javascript html fadein fadeout

例如,我有一个名为 showcontainer 的函数。当我单击激活它的按钮时,我需要某个 div 元素,在本例中 <div id="container"> ,淡入。当我再次单击它时,淡出。 我如何实现这一目标?

注意:我不习惯 jQuery。

最佳答案

所以你得到了一堆 jQuery 答案。没关系,我也倾向于使用 jQuery 来做这类事情。但用纯 JavaScript 做到这一点并不难,只是更加冗长:

var container = document.getElementById('container');
var btn = document.getElementById('showcontainer');

btn.onclick = function() {

    // Fade out
    if(container.style.display != 'none') {
      var fade = setInterval(function(){
        var opacity = parseFloat(container.style.opacity);
        opacity = isNaN(opacity) ? 100 : parseInt(opacity * 100, 10);
        opacity -= 5;
        container.style.opacity = opacity/100;
        if(opacity <= 0) {
          clearInterval(fade);
          container.style.opacity = 0;
          container.style.display = 'none';
        }
      }, 50);

    // Fade in
    } else {
      container.style.display = 'block';
      container.style.opacity = 0;
      var fade = setInterval(function(){
        var opacity = parseFloat(container.style.opacity);
        opacity = isNaN(opacity) ? 100 : parseInt(opacity * 100, 10);
        opacity += 5;
        container.style.opacity = opacity/100;
        if(opacity >= 100) {
          clearInterval(fade);
          container.style.opacity = 1;
        }
      }, 50);
    }

};

检查working demo .

关于javascript - 使用 javascript 显示/隐藏 <div>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13089750/

相关文章:

javascript - 本地 vue.js 不触发 Ready 函数

javascript - Window.onload 事件和 $(document).ready()

angularjs - Angular 淡入淡出 - 没有 CSS 的标准方式?

javascript - Bluebird Promise.any() 提前拒绝?

javascript - 停止 Ajax 请求并调用新的 Ajax

html - 如何在一行中显示从数据库值生成的有序列表?

javascript - 使用 JQuery 将内容包装在两个 div 内的标签中

javascript - 如何缩放元素而忽略所有内容?

css3 动画,淡入为下移?

javascript - 单击后显示 div 并启动计时器