gpt4 book ai didi

javascript - 如何使用 JavaScript 和 CSS 实现淡入淡出

转载 作者:IT王子 更新时间:2023-10-29 03:02:55 25 4
gpt4 key购买 nike

我想让一个 HTML div 标签淡入淡出。

我有一些淡出的代码,但是当我淡入时,div 的不透明度保持在 0.1 并且没有增加。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<title>Fade to Black</title>
<script type="text/javascript">
//<![CDATA[
function slidePanel(elementToSlide, slideSource)
{
var element = document.getElementById(elementToSlide);

if(element.up == null || element.up == false) {
setTimeout("fadeOut(\"" + elementToSlide + "\")", 100);
element.up = true;
slideSource.innerHTML = "Bring it down";
} else {
setTimeout("fadeIn(\"" + elementToSlide + "\")", 100);
element.up = false;
slideSource.innerHTML = "Take it up";
}
}

function fadeIn(elementToFade)
{
var element = document.getElementById(elementToFade);

element.style.opacity += 0.1;
if(element.style.opacity > 1.0) {
element.style.opacity = 1.0;
} else {
setTimeout("fadeIn(\"" + elementToFade + "\")", 100);
}
}

function fadeOut(elementToFade)
{
var element = document.getElementById(elementToFade);

element.style.opacity -= 0.1;
if(element.style.opacity < 0.0) {
element.style.opacity = 0.0;
} else {
setTimeout("fadeOut(\"" + elementToFade + "\")", 100);
}
}
//]]>
</script>
</head>
<body>
<div>
<div id="slideSource"
style="width:150px; height:20px;
text-align:center; background:green"
onclick="slidePanel('panel', this)">
Take It up
</div>
<div id="panel"
style="width:150px; height:130px;
text-align:center; background:red;
opacity:1.0;">
Contents
</div>
</div>
</body>
</html>

我做错了什么?淡入和淡出元素的最佳方式是什么?

最佳答案

这是一种更有效的淡出元素的方法:

function fade(element) {
var op = 1; // initial opacity
var timer = setInterval(function () {
if (op <= 0.1){
clearInterval(timer);
element.style.display = 'none';
}
element.style.opacity = op;
element.style.filter = 'alpha(opacity=' + op * 100 + ")";
op -= op * 0.1;
}, 50);
}

你可以做相反的淡入

setInterval 或 setTimeout 不应获取字符串作为参数

谷歌 eval 的弊端以了解原因

这是一种更有效的淡入元素的方法。

function unfade(element) {
var op = 0.1; // initial opacity
element.style.display = 'block';
var timer = setInterval(function () {
if (op >= 1){
clearInterval(timer);
}
element.style.opacity = op;
element.style.filter = 'alpha(opacity=' + op * 100 + ")";
op += op * 0.1;
}, 10);
}

关于javascript - 如何使用 JavaScript 和 CSS 实现淡入淡出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6121203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com