Я не уверен, что этот вопрос о Javascript задавался раньше - я не смог его найти, но если я его пропустил, приношу свои извинения.
Я пытаюсь создать страницу с флажками, которые будут отображать/исчезать соответствующее изображение. Затухание займет 1 секунду, каждые 100 мс непрозрачность изображения увеличивается или уменьшается на 0,1; когда непрозрачность достигает 0 или 1, вызов setInterval останавливается. Однако я не уверен, как передать аргументы анонимному вызову функции. Я пытаюсь передать две переменные: первая - это идентификатор изображения, полученный из значения флажка, а другая - установлен флажок или нет, чтобы функция знала, следует ли исчезать или исчезать.
Однако у меня возникла проблема с кодом как есть (см. Ниже), и я думаю, что это связано с областью действия переменных в вызове функции setInterval - вот почему я спрашиваю о передаче нескольких аргументов в вызов.
Например:
<form action="">
<input type="checkbox" onclick='handleClick(this);' name="skymap" value="aurora">Aurora
<input type="checkbox" onclick='handleClick(this);' name="skymap" value="mainindex">Main Index
</form>
И функция следующая (пока)
function handleClick(cb)
{
var myInterval = setInterval(function ()
{
if (cb.checked) // tick box checked - fade in.
{
document.getElementById( cb.value ).style.opacity+=0.1; // I'll refactor all these style.opacity calls later on :)
if( document.getElementById( cb.value ).style.opacity>1 ) // full opacity - stop the timer
{
document.getElementById( cb.value ).style.opacity = 1;
clearInterval(myInterval);
}
}
else // fade out
{
document.getElementById( cb.val ).style.opacity-=0.1;
if( document.getElementById( cb.val ).style.opacity<0 )
{
document.getElementById( cb.val ).style.opacity = 0;
clearInterval(myInterval);
}
}
}, 100);
}
Изображения называются такими вещами, как:
<img id="aurora" src="aurora.png" />