У меня есть эффект, который заставляет элемент холста «сбой». Я хотел бы отредактировать эффект, чтобы между каждым сбоем было больше паузы - на данный момент пауза с ошибкой слишком короткая, и сбой слишком близок к тому, что было раньше. Вы можете увидеть его в действии здесь: http://naratif.jvitasek.cz/Добавить паузы в эффект сглаживания JavaScript
Кроме того, код глюк выглядит следующим образом:
function glitchElement(sourceImg, idCanvas) {
var canvas = document.getElementById(idCanvas)
, context = canvas.getContext('2d')
, img = new Image()
, w
, h
, offset
, glitchInterval;
img.src = sourceImg;
img.onload = function() {
init();
window.onresize = init;
};
var init = function() {
clearInterval(glitchInterval);
canvas.width = w = window.innerWidth;
offset = w * .1;
canvas.height = h = ~~(230 * ((w - (offset * 2))/img.width));
glitchInterval = setInterval(function() {
clear();
context.drawImage(img, 0, 0, img.width, 230, offset, 0, w - (offset * 2), h);
setTimeout(glitchImg, randInt(250,1000));
}, 500);
};
var clear = function() {
context.rect(0, 0, w, h);
context.fillStyle = "white";
context.fill();
};
var glitchImg = function() {
for (var i = 0; i < randInt(1, 13); i++) {
var x = Math.random() * w;
var y = Math.random() * h;
var spliceWidth = w - x;
var spliceHeight = randInt(5, h/3);
context.drawImage(canvas, 0, y, spliceWidth, spliceHeight, x, y, spliceWidth, spliceHeight);
context.drawImage(canvas, spliceWidth, y, x, spliceHeight, 0, y, x, spliceHeight);
}
};
var randInt = function(a, b) {
return ~~(Math.random() * (b - a) + a);
};
}
В этом коде, там должен быть способ сделать паузу дольше. Это означает, что все так же, как сейчас, но сбой ... подождите дольше с изображением без эффекта (статический) .... и затем снова сбой после 6 секунд (теперь это где-то между 1 и 1,5 сек, я думаю) ,
Мне просто нужно имя библиотечной функции или что-то, что могло бы мне помочь. Я посмотрел в setTimeout и setInterval, но не мог понять это. Любая помощь оценивается.
Я сделал это , но это только изменяет время, когда глюк «забит». Не продолжительность между каждым сбоем. – jvitasek
Это не имеет никакого смысла. Время между каждым сбой - это продолжительность между каждым сбоем. Это то же самое. Не могли бы вы прояснить разницу между «временем сглаживания» и «продолжительностью между каждым сбоем»? –
1. Время, когда изображение искажается (сколько времени он остается в позиции смещения), 2. Время между каждым сбоем. Две разные вещи. – jvitasek