我試圖用JavaScript創建淡入淡出功能,但它不起作用。請告訴我我做錯了什麼。 我沒有收到轉換效果。純Javascript正在淡入淡出不起作用
var fade_in_btn = document.getElementById('fade-in'),
fade_out_btn = document.getElementById('fade-out'),
fading_div = document.getElementById('fading-div');
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
fade_out_btn.onclick = function(){
for (var i=100; i >= 0; i--) {
sleep(0010);
opacity_function(i);
}
}
fade_in_btn.onclick = function(){
for (var i=1; i <= 100; i++) {
sleep(0010);
opacity_function(i);
}
}
function opacity_function(opacity_value){
fading_div.style.opacity = opacity_value/100;
fading_div.style.filter = 'alpha(opacity=' + opacity_value + ')';
console.log(fading_div.style.opacity);
}
Fiddle與HTML。
全部代碼工作正常。但從我的角度來看,問題是for ...循環在每次迭代之後都不更新不透明度的值;它只是更新最終值。
請幫我解決這個問題。
你的睡眠功能=壞壞壞習慣。使用setTimeout來完成循環。 – epascarello
我複製/粘貼從stackoverflow問題有人發佈它。 – Khalsa
@ user3187056 - 我發現你的評論太熱鬧了,我不得不投票給它。 – Adam