javascript - 如何使 InnerHTML 淡出

标签 javascript html css

当用户点击一个按钮时,它会出现一些带有 innerHTML 的文本,并且已经添加了 fadeIn 和 fadeOut,但是我想要做的是当用户点击按钮外部时文本消失,我已经实现了消失文本,但如何向其添加淡出效果。

我尝试通过更改淡入和淡出。

JS

function some() {
  var textElement = document.getElementById("text1");
  textElement.className = "fadeIn2";
  textElement.innerHTML = "";
  textElement.focus();
  textElement.className = "fadeOut2";
}

window.addEventListener("click", function(e){   
  if (document.getElementById("1").contains(e.target)){
    // Clicked in box
    console.log("Foo");
  } else {
    some(); //function some is called
    console.log("Bar");
  }
});

CSS

.fadeIn2 {
  opacity: 1;
}
.fadeOut2 {
  opacity: 0;
  transition: all 1.5s;
  -webkit-transition: all 1.5s;
  -moz-transition: all 1.5s;
  -ms-transition: all 1.5s;
  -o-transition: all 1.5s;
}

HTML

<button>Click me</button>

最佳答案

除了事件监听器的一部分之外,这似乎对我有用。您检查元素是否包含 e.target,而实际上您应该检查元素是否等于 e.target:

window.addEventListener("click", function(e){   
  if (e.target === document.getElementById("1")) {
    console.log("clicked in box");
  } else {
    some();
    console.log("didn't click in box");
  }
});

关于javascript - 如何使 InnerHTML 淡出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57683826/

相关文章:

javascript - .insertBefore() 在一个方向上起作用,但在另一个方向上不起作用

html - 为什么 Chrome 移动仿真在宽度缩小时移动元素?

javascript - Angular ngAnimate 第一次无法在页面加载时工作

css - "translated"盒子的盒子阴影落在兄弟盒子上

html - 绝对元素后的空白

javascript - 如何使用jquery只追加一次数据

javascript - 如何查看 Handlebars 模板中的所有可用变量

javascript - 我应该学习什么样的架构才能制作出优秀的基于 JavaScript 的软件?

html - 在 css 中,是否可以捕获属性值以在同一个选择器中重用?

html - 在我的浏览器中只打开一侧的特定 div