генерация чисел
Прошу поддержки. Есть такой скрипт.
var a = [1,2,3,4,5,6,7];
var i = 0;
function delayedLoop()
{
var b = document.getElementById('block');
b.className = ('active'+a[i])+(' block');
i++;
if(i == a.length) {i = 0}
window.setTimeout(delayedLoop, 15000);
}delayedLoop();
, который генерирует постоянный цикл чисел от 1 до 7 Если запускаю этот скрипт на компе, содав файл html, то всё работает как надо. Если же я загружаю этот скипт на сайт на #block генерируется не active1,2,3,4... а 1,3,5,7,2,4,6. Какая причина может быть? Что не так, или что может мешать процессу?вот сам адрес где можно увидеть этот процесс https://georgiafriends.ru/ddgg/. Я в примере указал #block, на самом деле #header_bg |
:-?
Цитата:
Цитата:
|
это скорей всего реклама от гугла которую я частично заблокироал. Не подскажите как это обойти? Или что-то иначе.
|
вы это имеете в виду?
<iframe src="https://w.uptolike.com/widgets/v1/impression.html?1ea92d09c43527572b24fe052f11127b" style="width: 1px; height: 1px; position: absolute; left: -100px; top: 0px; border: none;"></iframe>Как от этого избавиться, не подскажите? |
или же как сделать скрипт устойчивым.
|
Цитата:
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<div id="block"></div>
<script>
let prev = performance.now();
let delay = 1500;
let max = 7;
let block = document.getElementById('block');
let temp;
requestAnimationFrame(function measure(time) {
let i = Math.ceil((time - prev) / delay % max);
if (i && temp !== i) {
block.insertAdjacentHTML("beforeEnd", `<b>${i}</b> `);//для проверки
block.className = `active${i} block`;
temp = i;
}
requestAnimationFrame(measure);
})
</script>
</body>
</html>
|
Рони, спасибо тебе. Но только почему-то первый цикл идёт с опозданием, с задержкой. Появляется первое фото, потом белый экран 1-2 скекунды, потом появляется следующее фото. Потом снова белый экран 1-2 секунды. Это в 1ом цикле, во втором всё хорошо. И последующих.
|
Uthvfy62,
Цитата:
|
предзагрузка изображений
я не нашёл ответ на этот вопрос. Видел разные варианты но ни один не помог. Может подскажите что-то толковое.
|
И ещё к вам вопрос. Я на этом форуме задал ещё один вопрос. "вычислить ширину высоту блока" https://javascript.ru/forum/showthread.php?p=555299 Существует ли ответ на этот вопрос? Причём мне надо подогнать параметры блока именно по бэкграунду. И создавать новое изображение чтоб по нему подгонять параметры блока мне не подходит. Мне изображение там не нужно. Я избавился от картинки для того чтоб снова её туда засунуть? Нелепо получается. Возможно ли обойтись без фото? Вот скрипт который это делает, но подгоняет по созданной катринке, и удалить её невозможно. [html]<style>.block {
display: block; width: 200px; height: 200px; /*background: url('https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_92x30dp.png') no-repeat center center;*/ background-size: auto auto; }.block img {}</style> <div id="block" class="block"></div> <script type="text/javascript">var a = document.getElementById('block'); var img = new Image(); img.src = "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_92x30dp.png"; var b = a.offsetWidth; var c = a.offsetHeight; img.onload = function () { var d = img.offsetWidth; var e = img.offsetHeight;a.style.width=d; a.style.height=e;} a.appendChild(img);</script>[html] |
| Часовой пояс GMT +3, время: 02:40. |