簡體   English   中英

用JavaScript淡化HTML文字

[英]Fading in HTML text in JavaScript

我一直在嘗試使一些文本從不透明度0淡入100,但是我似乎無法使其正常工作。 將原始的faderOut版本記入此人。

這是代碼...

fadeIn = function(id, speed) {
    var s = document.getElementById(id).style;
    s.opacity = 0;
    (function fade() {(s.opacity+= .1)<100?s.display="inline":setTimeout(fade,speed)})();
}

我認為有2個問題,1的不透明度值從0...1 0..100不等,當不透明度為1時,您需要停止循環。

其次, s.opacity返回一個字符串,因此,由於您使用的是+運算符,因此需要將值轉換為字符串,否則將執行字符串連接

 fadeIn = function(id, speed) { var s = document.getElementById(id).style; s.opacity = 0; (function fade() { (s.opacity = +s.opacity + .1) >= 1 ? s.display = "inline" : setTimeout(fade, speed) })(); } fadeIn('s', 500) 
 <div id="s">asdfsadf</div> 

您所要做的就是設置一個間隔,然后以您的速度/ 100遞增的數量遞增至100。

 function fadeIn(id, speed) { var max = 100, count = 0; var increment = speed / max; var obj = document.getElementById(id); var interval = setInterval(function() { obj.style.opacity = (count / max); if (count == max) { clearInterval(interval); } count++; }, increment); } 
 #faded { opacity: 0; } 
 <div id="faded">Fade me in</div> <button onclick="fadeIn('faded', 3000)">Fade it in</button> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM