Скрипт прекращает работу после окончания загрузки страницы
'use strict';
function getCoords(elem) {
let box = elem.getBoundingClientRect().top + pageYOffset;
return box;
}
let actDotPosicion = 'dot1';
let startActDotPosicion = getCoords(document.getElementById('section1'));
document.getElementById('scroller').onscroll = function () {
let sectionCoord = getCoords(document.getElementById('section1'));
if (sectionCoord == startActDotPosicion) {
let a = document.getElementById('dot1');
if (a != null) {
a.src = 'pic/active-dot.png';
let b = document.getElementById('active-dot');
b.src = 'pic/dot.png';
b.id = actDotPosicion;
actDotPosicion = a.id;
a.id = 'active-dot';
};
} else if (sectionCoord == startActDotPosicion-365) {
let a = document.getElementById('dot2');
a.src = 'pic/active-dot.png';
let b = document.getElementById('active-dot');
b.src = 'pic/dot.png';
b.id = actDotPosicion;
actDotPosicion = a.id;
a.id = 'active-dot';
} else if (sectionCoord == startActDotPosicion-365*2) {
let a = document.getElementById('dot3');
a.src = 'pic/active-dot.png';
let b = document.getElementById('active-dot');
b.src = 'pic/dot.png';
b.id = actDotPosicion;
actDotPosicion = a.id;
a.id = 'active-dot';
} else if (sectionCoord == startActDotPosicion-365*3) {
let a = document.getElementById('dot4');
a.src = 'pic/active-dot.png';
let b = document.getElementById('active-dot');
b.src = 'pic/dot.png';
b.id = actDotPosicion;
actDotPosicion = a.id;
a.id = 'active-dot';
} else if (sectionCoord == startActDotPosicion-365*4) {
let a = document.getElementById('dot5');
a.src = 'pic/active-dot.png';
let b = document.getElementById('active-dot');
b.src = 'pic/dot.png';
b.id = actDotPosicion;
actDotPosicion = a.id;
a.id = 'active-dot';
};
}
@font-face {
font-family: "Gilroy";
src: url("font/GilroyLight.woff");
font-weight: normal;
}
@font-face {
font-family: "Gilroy";
src: url("font/GilroyBold.woff");
font-weight: bold;
}
html, body {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
background-color: #FFF2E9;
font-family: "Gilroy", Verdana, serif;
}
div {
display: flex;
height: 100%;
max-height: 100%;
}
img {
max-width: 100%;
max-height: 100%;
object-fit: contain;
}
svg {
width: fit-content;
height: fit-content;
position: relative;
top: 38%;
right: 12%;
}
button {
color: #FFFFFF;
background-color: #E9856F;
border: 0;
font-weight: bold;
text-align: center;
padding: 20px;
border-radius: 30px;
font-size: 12px;
}
input {
border-top: 0;
border-right: 0;
border-left: 0;
border-bottom: 2px solid #E9856F;
background-color: #FFF2E9;
outline: none;
width: 250px;
font-size: 15px;
}
iframe {
display: none;
position: absolute;
width: 742px;
height: 472px;
margin-top: -142px;
margin-left: -328px;
}
label {
width: 100px;
height: 100px;
overflow: hidden;
z-index: 2;
margin: auto;
}
h1 {
font-weight: bold;
line-height: 1.159;
font-size: 26px;
margin: 0;
}
h2 {
font-size: 24px;
border-bottom-style: solid;
margin-left: 20%;
margin-bottom: 0;
margin-top: 120px;
padding-bottom: 12px;
height: fit-content;
}
h3 {
font-size: 24px;
margin-bottom: 10px;
}
h4 {
font-size: 23px;
margin-top: 70px;
margin-bottom: 0;
}
text {
font-weight: bold;
font-size: 13px;
}
p {
font-size: 12px;
padding-top: 10px;
padding-bottom: 10px;
}
footer {
display: flex;
margin-left: 20%;
margin-right: 20%;
padding-bottom: 3%;
padding-top: 3%;
justify-content: space-between;
align-items: flex-end;
}
footer p,
footer a {
font-size: 14px;
color: #D7AD97;
}
form p,
form a {
color: #E9856F;
font-size: 8px;
}
.main {
display: grid;
grid-template-rows: repeat(6, 937px) 293px;
}
.w100 {
width: 100%;
}
.column {
flex-direction: column;
}
.header {
flex-direction: column;
justify-content: flex-end;
}
.logo {
width: 60%;
padding: 27% 0 0 35%;
align-self: flex-start;
}
.right39 {
flex: 39;
justify-content: flex-end;
}
.right54 {
flex: 54.5;
}
.mid41 {
flex: 41;
}
.left20 {
flex: 20;
}
.left45 {
flex: 45.5;
justify-content: flex-start;
}
.right75 {
flex: 75;
}
.dark {
background-color: #F3DDCF;
}
.ml20 {
margin-left: 20%;
margin-top: 0;
}
.ml70 {
margin-left: 70px;
}
.mt15 {
margin-top: 30px;
margin-bottom: 0;
}
.fit {
width: auto;
height: auto;
}
.video {
display: grid;
width: 1127px;
}
.table {
display: grid;
grid-template-columns: auto auto auto;
grid-template-rows: minmax(auto, 270px) minmax(auto, 270px);
margin-top: 80px;
}
.table img {
width: 92px;
}
.table p,
.table2 p {
margin: 0;
padding: 0;
}
.table2 {
display: grid;
grid-template-columns: auto auto;
grid-template-rows: minmax(auto, 270px) minmax(auto, 270px);
margin-top: 80px;
}
.table2 img {
width: 50px;
}
#dots {
flex-direction: column;
flex: 25;
align-items: flex-end;
justify-content: center;
}
#dots img {
width: 25px;
margin-top: 20px;
margin-bottom: 20px;
}
#active-dot {
width: 35px;
margin-left: -5px;
}
.mac {
margin-top: 70px;
margin-left: -12%;
max-height: 570px;
align-self: start;
grid-column: 1;
grid-row: 1;
}
#scroller {
height: 818px;
overflow-y: scroll;
scroll-snap-type: y mandatory;
margin-left: 4.5%;
}
#scroller::-webkit-scrollbar {
width: 0;
}
.section {
scroll-snap-align: center;
margin-top: 35px;
}
.section:first-of-type {
margin-top: 200px;
}
.section:last-of-type {
margin-bottom: 200px;
}
.vk {
font-size: 9px;
font-weight: bold;
color: #D3A58D;
}
.feedback {
justify-content: center;
margin-left: 6%;
}
.fbsection {
margin-left: -4%;
margin-bottom: 100px;
overflow: hidden;
}
.circle {
display: grid;
width: 330px;
}
.fbphoto {
width: 196px;
grid-column: 1;
grid-row: 1;
margin: auto;
}
.mask {
z-index: 1;
width: 409px;
grid-column: 1;
grid-row: 1;
margin: auto;
}
.h4-sub {
color: #D3A58D;
font-weight: bold;
font-size: 14px;
}
.achievements {
margin-top: 100px;
}
.achievements p {
font-size: 15px;
margin: 0;
padding-top: 15px;
}
.top-gradient {
position: absolute;
width: 104%;
height: 175px;
z-index: 2;
background: -webkit-linear-gradient(
top, #F3DDCF 5%, rgba(0,0,0,0) 100%
);
}
.bot-gradient {
align-self: flex-end;
position: absolute;
width: 104%;
height: 175px;
z-index: 2;
background: -webkit-linear-gradient(
top, rgba(0,0,0,0) 5%, #F3DDCF 100%
);
}
#BtnControl {
display: none;
}
#BtnControl:checked + label > iframe {
display: block;
}
.BtnCircle {
width: 105px;
height: 105px;
border-radius: 50%;
grid-column: 1;
grid-row: 1;
z-index: 1;
margin-top: 227px;
margin-left: 382px;
box-sizing: border-box;
}
.BtnCircle:hover {
background: rgba(0,0,30,0.3);
}
.field1 {
position: absolute;
margin-top: 496px;
margin-left: 30px;
width: 153px;
z-index: 10;
}
.field2 {
position: absolute;
margin-top: 1030px;
margin-left: 94.5%;
width: 55px;
z-index: 10;
}
.field3 {
position: absolute;
margin-top: 1740px;
margin-left: -18px;
width: 153px;
z-index: 10;
}
.field4 {
position: absolute;
margin-top: 2675px;
margin-left: 90%;
width: 153px;
z-index: 10;
}
.field5 {
position: absolute;
margin-top: 3465px;
margin-left: 30px;
width: 200px;
z-index: 10;
}
.field6 {
position: absolute;
margin-top: 4400px;
margin-left: 93%;
width: 105px;
z-index: 10;
}
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="author" content="Владимир Воронин">
<meta name="description" content="Бесплатный вебинар Татьяны Маричевой по запуску своего онлайн-курса">
<meta name="robot" content="none">
<title>Вебинар "Пошаговый план по запуску своего онлайн-курса"</title>
<link rel="stylesheet" href="style.css">
</head>
<script type="text/javascript">
alert ('Эта страница является тренировочной!\nСодержащийся в ней контент не имеет отношения к действительности!\n\nThis page is just for practice!\nThe content it contains is irrelevant!');
</script>
<body>
<img src="pic/field.png" class="field1">
<img src="pic/field2.png" class="field2">
<img src="pic/field.png" class="field3">
<img src="pic/field.png" class="field4">
<img src="pic/field5.png" class="field5">
<img src="pic/field6.png" class="field6">
<div class="main">
<div class="w100">
<div class="left20">
<img src="pic/Logo.png" class="logo">
</div>
<div class="column mid41">
<div class="header">
<svg>
<text transform="rotate(-90)" text-anchor="end" dominant-baseline="hanging">26 МАЯ 15:00</text>
<rect width="3" height="60" x="3.5" y="95"/>
</svg>
<p>БЕСПЛАТНЫЙ ВЕБИНАР ТАТЬЯНЫ МАРИЧЕВОЙ</p>
<h1>ПОШАГОВЫЙ ПЛАН<br>
ПО ЗАПУСКУ<br>
СВОЕГО ОНЛАЙН-КУРСА
</h1>
<p>ЗАПУСТИ ОНЛАЙН-КУРС И ВЫЙДИ НА ДОХОД ОТ 300 000 РУБЛЕЙ</p>
</div>
<div class="form">
<form>
<br><br><br>
<input type="email" id="email" name="email" required placeholder="E-MAIL" multiple="0"><br>
<input type="tel" id="tel" name="tel" placeholder="ТЕЛЕФОН">
<br><br><br><br>
<button>ЗАПИСАТЬСЯ НА ВЕБИНАР</button>
<br><br>
<p>НАЖИМАЯ НА КНОПКУ, ВЫ ВЫРАЖАЕТЕ СВОЕ СОГЛАСИЕ<br>С <a href="http://site.ru/privacy">НАШЕЙ ПОЛИТИКОЙ КОНФИДЕНЦИАЛЬНОСТИ</a></p>
</form>
</div>
</div>
<div class="right39">
<img src="pic/photo1.jpg">
</div>
</div>
<div class="column dark">
<div class="fit ml70">
<h2>ПОСМОТРИТЕ КОРОТКОЕ ВИДЕО</h2>
</div>
<div class="fit ml70">
<p class="ml20 mt15">УЗНАЙТЕ ЗА 1,5 МИНУТЫ, ЧТО БУДЕТ НА ВЕБИНАРЕ</p>
</div>
<div class="video ml20">
<img src="pic/mac.png" class="mac"/>
<div class="BtnCircle">
<input type="checkbox" id="BtnControl"/>
<label class="btn" for="BtnControl">
<iframe src="https://www.youtube.com/embed/US4TOfssNJA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</label>
</div>
</div>
</div>
<div class="column">
<div class="fit">
<h2>ЧТО БУДЕТ НА ВЕБИНАРЕ?</h2>
</div>
<div class="table ml20">
<div class="column">
<img src="pic/business.png">
<h3>ПЛАН ЗАПУСКА</h3>
<p>
КАКИЕ ШАГИ НУЖНО<br>
СДЕЛАТЬ, ЧТОБЫ<br>
ЗАПУСТИТЬ СВОЮ<br>
ОНЛАЙН-ШКОЛУ?
</p>
</div>
<div class="column">
<img src="pic/startup.png">
<h3>БЫСТРЫЙ СТАРТ</h3>
<p>
КАК ЗА НЕСКОЛЬКО ДНЕЙ<br>
ПРОТЕСТИРОВАТЬ НИШУ?
</p>
</div>
<div class="column">
<img src="pic/partnership.png">
<h3>ВЕБИНАР</h3>
<p>
КАК СОБРАТЬ<br>
ЛЮДЕЙ И ПРОДАТЬ<br>
СВОЙ ПРОДУКТ<br>
НА ВЕБИНАРЕ?
</p>
</div>
<div class="column">
<img src="pic/strategy.png">
<h3>ОШИБКИ</h3>
<p>
КАК ИЗБЕЖАТЬ ТИПИЧНЫХ<br>
ОШИБОК НА СТАРТЕ<br>
ПРОЕКТА?
</p>
</div>
<div class="column">
<img src="pic/profit.png">
<h3>ВЛОЖЕНИЯ</h3>
<p>
КОГДА И СКОЛЬКО ВКЛАДЫВАТЬ<br>
ДЕНЕГ И КАК УЛОЖИТЬСЯ<br>
В МИНИМАЛЬНЫЙ БЮДЖЕТ?
</p>
</div>
<div class="column">
<img src="pic/pc.png">
<h3>СЕРВИСЫ</h3>
<p>
КАКИМИ СЕРВИСАМИ<br>
ДЛЯ АВТОМАТИЗАЦИИ<br>
МЫ ПОЛЬЗУЕМСЯ?
</p>
</div>
</div>
</div>
<div class="dark">
<div class="left45">
<img src="pic/photo2.jpg">
</div>
<div class="column right54">
<div class="fit">
<h2>КТО ВЕДЕТ?</h2>
</div>
<div class="column ml20">
<h4>ТАТЬЯНА МАРИЧЕВА</h4>
<p class="h4-sub">ПРОДЮСЕР<br>МАРКЕТОЛОГ</p>
<div class="achievements column">
<p>5 ЛЕТ В СФЕРЕ ОНЛАЙН-ОБРАЗОВАНИЯ</p>
<p>3 ГОДА СПИКЕР БИЗНЕС МОЛОДОСТИ</p>
<p>6 ЗАПУСКОВ ОНЛАЙН-ШКОЛ</p>
<p>24 МИЛЛИОНА РУБЛЕЙ ВЫРУЧКИ<br>ЗА ПОСЛЕДНИЕ 6 МЕСЯЦЕВ</p>
<p>60 ТЫСЯЧ ЧЕЛОВЕК ПОСЕТИЛИ ВЕБИНАРЫ</p>
</div>
</div>
</div>
</div>
<div class="column">
<div class="fit">
<h2>КОМУ БУДЕТ ПОЛЕЗЕН ВЕБИНАР?</h2>
</div>
<div class="table2 ml20">
<div class="column">
<img src="pic/boy_1.png">
<h3>ДЛЯ ПРОДЮСЕРОВ</h3>
<p>КОТОРЫЕ УЖЕ НАШЛИ ЭКСПЕРТА, НО ПОКА<br>ТАК И НЕ СМОГЛА ЗАПУСТИТЬСЯ</p>
</div>
<div class="column">
<img src="pic/old_man.png">
<h3>ДЛЯ ЭКСПЕРТОВ</h3>
<p>КОТОРЫЕ ХОТЯТ ПРОДЮСИРОВАТЬ<br>СЕБЯ САМИ И УВЕРЕНЫ, ЧТО ЛУЧШЕ<br>НИХ НЕ СДЕЛАЕТ НИКТО</p>
</div>
<div class="column">
<img src="pic/boy.png">
<h3>ДЛЯ НОВИЧКОВ</h3>
<p>КОТОРЫЕ ХОТЯТ ПОЛУЧИТЬ ПРИБЫЛЬНУЮ<br>ОНЛАЙН-ПРОФЕССИЮ И ВЫЙТИ НА<br>СТАБИЛЬНЫЙ ДОХОД ОТ 100.000 РУБЛЕЙ</p>
</div>
<div class="column">
<img src="pic/man.png">
<h3>ДЛЯ ПРЕДПРИНИМАТЕЛЕЙ</h3>
<p>КОТОРЫЕ ХОТЯТ ЗАПУСТИТЬ ДОПОЛНИТЕЛЬНОЕ<br>ВЫСОКОМАРЖИНАЛЬНОЕ НАПРАВЛЕНИЕ БИЗНЕСА</p>
</div>
</div>
</div>
<div class="dark column">
<div class="fit">
<h2>ПОСМОТРИТЕ ОТЗЫВЫ УЧАСТНИКОВ ВЕБИНАРА</h2>
</div>
<div class="fbsection">
<div id="dots">
<img src="pic/active-dot.png" id="active-dot">
<img src="pic/dot.png" id="dot2">
<img src="pic/dot.png" id="dot3">
<img src="pic/dot.png" id="dot4">
<img src="pic/dot.png" id="dot5">
</div>
<div class="top-gradient">
</div>
<div class="bot-gradient">
</div>
<div class="top-gradient">
</div>
<div class="bot-gradient">
</div>
<div class="column right75" id="scroller">
<div class="section" id="section1">
<div class="circle">
<img src="pic/feed1.jpg" class="fbphoto">
<img src="pic/holed_circle.png" class="mask">
</div>
<div class="column feedback">
<h3>1 ДАРЬЯ ПОЛЯКОВА</h3>
<p class="vk">vk.com|daria_polyakova</p>
<p>
СПАСИБО ЗА ВЕБИНАРЫ И ТАКУЮ ГОРУ ИНФОРМАЦИИ,<br>
МОТИВАЦИИ И ТАКОГО ПОЗИТИВНОГО ЛУЧА. МНЕ ЭТО<br>
ОЧЕНЬ ПОМОГЛО ОПРЕДЕЛИТЬСЯ С ТЕМ, ЧТО Я БЫ<br>
ХОТЕЛА ИМЕННО ПРОДЮСИРОВАТЬ БУДУЩУЮ ШКОЛУ,<br>
А НЕ ВЫСТУПАТЬ ЭКСПЕРТОМ. ВРЕЗАЛАСЬ В ПАМЯТЬ<br>
ФРАЗА О ТОМ, ЧТО ЕСЛИ НЕ НАЧАТЬ СЕГОДНЯ, ТО<br>
ПОЕЗД ПОД НАЗВАНИЕМ “СЛЕДУЮЩИЙ РАЗ”<br>
ОТПРАВИТСЯ НА СТАНЦИЮ “НИКОГДА”.
</p>
</div>
</div>
<div class="section">
<div class="circle">
<img src="pic/feed1.jpg" class="fbphoto">
<img src="pic/holed_circle.png" class="mask">
</div>
<div class="column feedback">
<h3>2 ДАРЬЯ ПОЛЯКОВА</h3>
<p class="vk">vk.com|daria_polyakova</p>
<p>
СПАСИБО ЗА ВЕБИНАРЫ И ТАКУЮ ГОРУ ИНФОРМАЦИИ,<br>
МОТИВАЦИИ И ТАКОГО ПОЗИТИВНОГО ЛУЧА. МНЕ ЭТО<br>
ОЧЕНЬ ПОМОГЛО ОПРЕДЕЛИТЬСЯ С ТЕМ, ЧТО Я БЫ<br>
ХОТЕЛА ИМЕННО ПРОДЮСИРОВАТЬ БУДУЩУЮ ШКОЛУ,<br>
А НЕ ВЫСТУПАТЬ ЭКСПЕРТОМ. ВРЕЗАЛАСЬ В ПАМЯТЬ<br>
ФРАЗА О ТОМ, ЧТО ЕСЛИ НЕ НАЧАТЬ СЕГОДНЯ, ТО<br>
ПОЕЗД ПОД НАЗВАНИЕМ “СЛЕДУЮЩИЙ РАЗ”<br>
ОТПРАВИТСЯ НА СТАНЦИЮ “НИКОГДА”.
</p>
</div>
</div>
<div class="section">
<div class="circle">
<img src="pic/feed1.jpg" class="fbphoto">
<img src="pic/holed_circle.png" class="mask">
</div>
<div class="column feedback">
<h3>3 ДАРЬЯ ПОЛЯКОВА</h3>
<p class="vk">vk.com|daria_polyakova</p>
<p>
СПАСИБО ЗА ВЕБИНАРЫ И ТАКУЮ ГОРУ ИНФОРМАЦИИ,<br>
МОТИВАЦИИ И ТАКОГО ПОЗИТИВНОГО ЛУЧА. МНЕ ЭТО<br>
ОЧЕНЬ ПОМОГЛО ОПРЕДЕЛИТЬСЯ С ТЕМ, ЧТО Я БЫ<br>
ХОТЕЛА ИМЕННО ПРОДЮСИРОВАТЬ БУДУЩУЮ ШКОЛУ,<br>
А НЕ ВЫСТУПАТЬ ЭКСПЕРТОМ. ВРЕЗАЛАСЬ В ПАМЯТЬ<br>
ФРАЗА О ТОМ, ЧТО ЕСЛИ НЕ НАЧАТЬ СЕГОДНЯ, ТО<br>
ПОЕЗД ПОД НАЗВАНИЕМ “СЛЕДУЮЩИЙ РАЗ”<br>
ОТПРАВИТСЯ НА СТАНЦИЮ “НИКОГДА”.
</p>
</div>
</div>
<div class="section">
<div class="circle">
<img src="pic/feed1.jpg" class="fbphoto">
<img src="pic/holed_circle.png" class="mask">
</div>
<div class="column feedback">
<h3>4 ДАРЬЯ ПОЛЯКОВА</h3>
<p class="vk">vk.com|daria_polyakova</p>
<p>
СПАСИБО ЗА ВЕБИНАРЫ И ТАКУЮ ГОРУ ИНФОРМАЦИИ,<br>
МОТИВАЦИИ И ТАКОГО ПОЗИТИВНОГО ЛУЧА. МНЕ ЭТО<br>
ОЧЕНЬ ПОМОГЛО ОПРЕДЕЛИТЬСЯ С ТЕМ, ЧТО Я БЫ<br>
ХОТЕЛА ИМЕННО ПРОДЮСИРОВАТЬ БУДУЩУЮ ШКОЛУ,<br>
А НЕ ВЫСТУПАТЬ ЭКСПЕРТОМ. ВРЕЗАЛАСЬ В ПАМЯТЬ<br>
ФРАЗА О ТОМ, ЧТО ЕСЛИ НЕ НАЧАТЬ СЕГОДНЯ, ТО<br>
ПОЕЗД ПОД НАЗВАНИЕМ “СЛЕДУЮЩИЙ РАЗ”<br>
ОТПРАВИТСЯ НА СТАНЦИЮ “НИКОГДА”.
</p>
</div>
</div>
<div class="section">
<div class="circle">
<img src="pic/feed1.jpg" class="fbphoto">
<img src="pic/holed_circle.png" class="mask">
</div>
<div class="column feedback">
<h3>5 ДАРЬЯ ПОЛЯКОВА</h3>
<p class="vk">vk.com|daria_polyakova</p>
<p>
СПАСИБО ЗА ВЕБИНАРЫ И ТАКУЮ ГОРУ ИНФОРМАЦИИ,<br>
МОТИВАЦИИ И ТАКОГО ПОЗИТИВНОГО ЛУЧА. МНЕ ЭТО<br>
ОЧЕНЬ ПОМОГЛО ОПРЕДЕЛИТЬСЯ С ТЕМ, ЧТО Я БЫ<br>
ХОТЕЛА ИМЕННО ПРОДЮСИРОВАТЬ БУДУЩУЮ ШКОЛУ,<br>
А НЕ ВЫСТУПАТЬ ЭКСПЕРТОМ. ВРЕЗАЛАСЬ В ПАМЯТЬ<br>
ФРАЗА О ТОМ, ЧТО ЕСЛИ НЕ НАЧАТЬ СЕГОДНЯ, ТО<br>
ПОЕЗД ПОД НАЗВАНИЕМ “СЛЕДУЮЩИЙ РАЗ”<br>
ОТПРАВИТСЯ НА СТАНЦИЮ “НИКОГДА”.
</p>
</div>
</div>
</div>
</div>
</div>
<footer>
<p>
ИП МАРИЧЕВА ТАТЬЯНА ВЛАДИМИРОВНА<br>
ИНН: 771472052449 / ОГРНИП: 316774600227996<br>
БАНК: АО "АЛЬФА-БАНК"<br>
НОМЕР СЧЁТА: 40802810602880000918<br>
БИК: 044525593 / К/С: 30101810200000000593<br>
ПОЧТОВЫЙ АДРЕС: УЛ. РУСТАВЕЛИ, Д.8Б, КВ.1 Г.МОСКВА<br>
<br><br><br>
2019 ВСЕ ПРАВА ЗАЩИЩЕНЫ
</p>
<p>
<a href="http://site.ru/privacy">ПОЛИТИКА КОНФИДЕНЦИАЛЬНОСТИ</a><br>
<a href="http://site.ru/offer">ДОГОВОР-ОФЕРТА</a>
</p>
</footer>
</div>
</body>
<script src="script.js"></script>
</html>
Имеется тренировочный сайт https://first-lending-l30p0h.netlify.app Там в наличии единственный простенький скрипт, который должен обеспечивать изменение положения активного кружка в зависимости от показываемого в данный момент пункта прокрутки. Локально это прекрасно работает. На хостинге это стабильно работает только на моем пк, а у других или вообще никак, или только пока страница грузится. Вопрос. Что мешает скрипту работать: кривизна моего метода реализации или что-то менее очевидное?
Ответы (1 шт):
Автор решения: Владимир Воронин
→ Ссылка
Оказалось, что координаты на некоторых устройствах - это числа с очень длинным дробным хвостом. При отбрасывании его через Math.trunc всё работает отлично.
'use strict'
function getCoords(elem) {
let box = elem.getBoundingClientRect().top + pageYOffset;
return Math.trunc(box);
}
function dotMove() {
let a = document.getElementById(n);
if (a != null) {
a.src = 'pic/active-dot.png';
let b = document.getElementById('active-dot');
b.src = 'pic/dot.png';
b.id = actDotPosicion;
actDotPosicion = a.id;
a.id = 'active-dot';
};
}
let actDotPosicion = 'dot1';
let sectionList = document.querySelectorAll('div.section');
let startActDotPosicion = getCoords(sectionList[0]);
let sectionMove = getCoords(sectionList[1])-startActDotPosicion;
let n;
document.getElementById('scroller').onscroll = function () {
let sectionCoord = getCoords(sectionList[0]);
if (sectionCoord == startActDotPosicion) {
n = 'dot1'
} else if (sectionCoord == startActDotPosicion-sectionMove) {
n = 'dot2'
} else if (sectionCoord == startActDotPosicion-sectionMove*2) {
n = 'dot3'
} else if (sectionCoord == startActDotPosicion-sectionMove*3) {
n = 'dot4'
} else if (sectionCoord == startActDotPosicion-sectionMove*4) {
n = 'dot5'
};
dotMove();
};