Есть массив фотографий, который перебирается кнопками вверх и вниз.
Пытаюсь сделать, чтобы при удержании кнопки мышкой (onMouseDown) фотографии скроллились сами, останавливаясь при отпускании. Но при отпускании кнопки (onMouseUp) цикл всё время "проезжает одну остановку".
Данные:
document.getElementById("prt" ) - это окно, в котором находятся картинки.
countertwo - счётчик массива
При загрузке страницы выпадает случайная картинка, num2 - её номер в массиве.
ppaintfiles - массив имён файлов
ppaintwdt и ppainthgt - соответственно ширина и высота членов массива.
Вот общая функция скроллинга (для кнопочных событий onClick, true - вперёд, false - назад). Здесь всё работает.
CODE:function scrollprt(direction) {
dlina = ppaintfiles.length;
// назначаем счётчик на выпавший портрет
countertwo = num2;
// Нижняя кнопка - вниз
if (direction == true)
{
if (countertwo < dlina-1)
{countertwo++;
with (document.getElementById("prt"))
{src=ppaintfiles[countertwo];
width=ppaintwdt[countertwo];
height=ppainthgt[countertwo];}
}
else {countertwo=0;
with (document.getElementById("prt"))
{src=ppaintfiles[countertwo];
width=ppaintwdt[countertwo];
height=ppainthgt[countertwo];}
}
}
// Верхняя кнопка - вверх
else
{
if (countertwo > 0)
{countertwo--
with (document.getElementById("prt"))
{src=ppaintfiles[countertwo];
width=ppaintwdt[countertwo];
height=ppainthgt[countertwo];}
}
[b]else {countertwo=dlina-1;
with (document.getElementById("prt"))
{src=ppaintfiles[countertwo];
width=ppaintwdt[countertwo];
height=ppainthgt[countertwo];}
}
}
// Заносим результат прокрутки в счётчик
num2 = countertwo;
}
Вот функция для остановки автоскроллинга с попыткой вернуться на нужную картинку (всё равно одну проезжает. Срабатывает только clearInterval()).
Переменные moverup и moverdn объявлены в основном скрипте.
CODE:function stopcadr(direction) {
if (direction == true)
{
countertwo--;
with (document.getElementById("prt"))
{src=ppaintfiles[countertwo-1];
width=ppaintwdt[countertwo-1];
height=ppainthgt[countertwo-1];}
clearInterval(moverdn);
}
else
{
countertwo++;
with (document.getElementById("prt"))
{src=ppaintfiles[countertwo+1];
width=ppaintwdt[countertwo+1];
height=ppainthgt[countertwo+1];}
clearInterval(moverup);
}
}
Код кнопок
CODE:<input type="button" id="up" style="background: #099 url(arrow1.gif) no-repeat center;" onClick="scrollprt(false);" onMouseDown="moverup=setInterval('scrollprt(false)',500);" onMouseUp="stopcadr(false);"><br>
<input type="button" id="dn" style="background: #099 url(arrow2.gif) no-repeat center;" onClick="scrollprt(true);" onMouseDown="moverdn=setInterval('scrollprt(true)',500);" onMouseUp="stopcadr(true);">
Не подскажете, где ошибка и как её устранить? |