【发布时间】:2017-08-02 17:19:15
【问题描述】:
我是一个完全的菜鸟,需要一些关于我认为对你们大多数人来说非常简单的功能的帮助。我正在尝试使用纯 Javascript 而不是 JQuery 来做到这一点。我已经尝试了几个小时,但我无法得到它。
我想要实现的是每次点击链接时都重复一个功能。
更具体地说,我目前有文本在单击链接时淡入,我希望它在我单击它时始终执行淡入(就像您要刷新页面一样)。
基本上:单击链接(x)-文本淡入-单击链接(x)-相同的文本消失,然后从过渡/动画的开头淡入(无淡出)-重复
我在 W3 学校遇到过非常相似的东西,每次点击按钮时都会显示一个从头开始的功能:https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_win_setinterval_progressbar
我认为修改这是答案,但因为我试图改变不透明度,我看到我必须向函数添加一个 parseFloat,因为它是一个字符串,但我没有成功。例子是:
else { i.style.opacity = parseFloat(i.style.opacity) + .1; }
为了在工作中添加另一个扳手,我使用 color:rgba(0,0,0,0) 中的不透明度值来更改不透明度。我认为这可能更容易找到,因为上面的示例(在我看来)会绕过 parseFloat 事情,就像您使用 i.style.color 一样,但我找不到任何东西。
下面是我根据 W3 学校教程的变体编写的代码。我很确定 JS 中的 clearInterval 在我需要的东西中发挥了重要作用。非常感谢您对此提供的任何帮助,如果您需要更清晰的信息,请告诉我:)
<!DOCTYPE html>
<html>
<style>
#about {
color: rgba(10,10,10,0);
transition: color 1s linear 1s;
}
#about:target {
color: rgba(10,10,10,1);
transition: color 1s linear 1s;
}
</style>
<body>
<a href="#about" onclick="fadeIn()">About</a>
<div id="div">
<p id='about'> Please help me figure this out. I really appreciate it</p>
</div>
</body>
<script>
function fadeIn() {
var elem = document.getElementById("about");
var begin = 0;
var id = setInterval(frame, 10);
function frame() {
if (begin == 100) {
clearInterval(id);
} else {
begin++;
elem.style.color = begin + '1';
}
}
}
</script>
</html>
【问题讨论】:
标签: javascript onclick opacity fadein parsefloat