генерация чисел
Прошу поддержки. Есть такой скрипт.
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, время: 18:50. |