revert to scroll

This commit is contained in:
Dauren777 2026-06-20 00:01:14 +00:00
parent b894c69cd8
commit d2cd964786

View File

@ -18,19 +18,16 @@ body{font:17px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,s
.hero h1{font-size:56px;font-weight:800;line-height:1.05;margin-bottom:20px;max-width:800px}
.hero h1 span{color:var(--cyan)}
.hero p{font-size:20px;color:var(--gray-300);max-width:600px;margin-bottom:40px;line-height:1.5}
/* Tab bar */
.tab-bar{display:flex;gap:4px;flex-wrap:wrap;background:var(--gray-800);border-radius:12px;padding:4px;max-width:720px;border:1px solid var(--gray-600)}
.tab-btn{flex:1;min-width:120px;padding:12px 20px;border:none;background:transparent;color:var(--gray-300);font-size:14px;font-weight:600;border-radius:8px;cursor:pointer;transition:.2s;text-align:center}
.tab-btn:hover{color:var(--white)}
.tab-btn.active{background:var(--cyan);color:var(--ink)}
.hero .btns{display:flex;gap:16px;flex-wrap:wrap}
.btn-primary{display:inline-flex;align-items:center;gap:8px;background:var(--cyan);color:var(--ink);padding:14px 32px;border-radius:8px;font-weight:700;font-size:16px;text-decoration:none;transition:.2s}
.btn-primary:hover{background:#33ebff;transform:translateY(-1px)}
.btn-secondary{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--white);padding:14px 32px;border-radius:8px;font-weight:600;font-size:16px;text-decoration:none;border:1px solid var(--gray-600);transition:.2s}
.btn-secondary:hover{border-color:var(--cyan);color:var(--cyan)}
.scroll-down{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);color:var(--gray-300);font-size:13px;letter-spacing:1px;text-transform:uppercase;animation:bounce 2s infinite}
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}
/* Tabs content */
.tab-content{display:none;padding:80px 0 0}
.tab-content.active{display:block}
/* Sections */
.section{padding:100px 0;border-top:1px solid var(--gray-800)}
.section-header{text-align:center;margin-bottom:64px}
.section-header .num{display:inline-block;font-size:12px;font-weight:700;color:var(--cyan);letter-spacing:2px;text-transform:uppercase;margin-bottom:12px}
.section-header h2{font-size:40px;font-weight:800;margin-bottom:16px}
@ -72,193 +69,196 @@ body{font:17px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,s
.container{padding:48px 20px}
.hero h1{font-size:36px}
.hero p{font-size:17px}
.tab-content{padding:48px 0 0}
.section{padding:60px 0}
.section-header h2{font-size:30px}
.two-col{grid-template-columns:1fr;gap:32px}
.two-col.reverse{direction:ltr}
.cards{grid-template-columns:1fr;gap:16px}
.tab-btn{min-width:80px;font-size:12px;padding:10px 12px}
.hero .btns{flex-direction:column}
.cta h2{font-size:28px}
}
</style>
</head>
<body>
<section class="hero">
<div class="container hero-content">
<div class="badge">NetAcademy v1.0</div>
<h1>Обучение сетевым <span>технологиям</span></h1>
<p>Программирование, волоконная оптика и сетевое оборудование — от основ до продвинутого уровня. Всё, что нужно для работы в телекоме.</p>
<div class="tab-bar" id="tabBar">
<button class="tab-btn active" data-tab="coding">💻 Программирование</button>
<button class="tab-btn" data-tab="optics">🔬 Оптика</button>
<button class="tab-btn" data-tab="equipment">⚙️ Оборудование</button>
<button class="tab-btn" data-tab="about">📖 Формат</button>
<div class="btns">
<a class="btn-primary" href="#coding">Программирование →</a>
<a class="btn-primary" href="#optics">Оптика →</a>
<a class="btn-primary" href="#equipment">Оборудование →</a>
<a class="btn-secondary" href="#about">Формат</a>
</div>
</div>
<div class="scroll-down">Выбери вкладку выше</div>
<div class="scroll-down">Листай вниз</div>
</section>
<div class="container">
<div id="tab-coding" class="tab-content active">
<div class="section-header">
<div class="num">01</div>
<h2>Программирование</h2>
<p>Кодирование для сетевых инженеров: автоматизация, скрипты, API</p>
</div>
<div class="two-col">
<div class="text">
<h3>Python для сетей</h3>
<p>Автоматизация конфигураций, парсинг логов, работа с NETCONF/YANG, Jinja2 шаблоны — всё, что нужно для network automation.</p>
<ul>
<li>Основы Python: типы данных, функции, модули</li>
<li>Pexpect, Paramiko, Netmiko — SSH управление</li>
<li>Jinja2 — генерация конфигураций</li>
<li>REST API, NETCONF, gRPC — программное управление</li>
<li>Ansible для сетевых инженеров</li>
</ul>
<section id="coding" class="section">
<div class="container">
<div class="section-header">
<div class="num">01</div>
<h2>Программирование</h2>
<p>Кодирование для сетевых инженеров: автоматизация, скрипты, API</p>
</div>
<div class="visual">
<span class="icon">🐍</span>
<div class="code">
<span style="color:#8892a4"># Jinja2 template example</span><br>
<span style="color:#c678dd">from</span> jinja2 <span style="color:#c678dd">import</span> Environment, FileSystemLoader<br><br>
<span style="color:#61afef">config</span> = template.render(<br>
&nbsp;&nbsp;interfaces=interfaces,<br>
&nbsp;&nbsp;vlan=<span style="color:#98c379">"vlan1793"</span><br>
)
<div class="two-col">
<div class="text">
<h3>Python для сетей</h3>
<p>Автоматизация конфигураций, парсинг логов, работа с NETCONF/YANG, Jinja2 шаблоны — всё, что нужно для network automation.</p>
<ul>
<li>Основы Python: типы данных, функции, модули</li>
<li>Pexpect, Paramiko, Netmiko — SSH управление</li>
<li>Jinja2 — генерация конфигураций</li>
<li>REST API, NETCONF, gRPC — программное управление</li>
<li>Ansible для сетевых инженеров</li>
</ul>
</div>
<div class="visual">
<span class="icon">🐍</span>
<div class="code">
<span style="color:#8892a4"># Jinja2 template example</span><br>
<span style="color:#c678dd">from</span> jinja2 <span style="color:#c678dd">import</span> Environment, FileSystemLoader<br><br>
<span style="color:#61afef">config</span> = template.render(<br>
&nbsp;&nbsp;interfaces=interfaces,<br>
&nbsp;&nbsp;vlan=<span style="color:#98c379">"vlan1793"</span><br>
)
</div>
</div>
</div>
</div>
</div>
</section>
<div id="tab-optics" class="tab-content">
<div class="section-header">
<div class="num">02</div>
<h2>Волоконная оптика</h2>
<p>Оптические линии, SFP/XFP, DWDM, измерение и монтаж</p>
</div>
<div class="two-col reverse">
<div class="text">
<h3>Оптика для связи</h3>
<p>Физические принципы, типы волокон, оптические трансиверы, пассивные и активные компоненты ВОЛС.</p>
<ul>
<li>SMF и MMF: одномод и мультимод — различия</li>
<li>SFP, SFP+, XFP, QSFP28 — трансиверы и их параметры</li>
<li>Длина волны 1310нм, 1550нм — затухание и дальность</li>
<li>DWDM и CWDM — уплотнение каналов</li>
<li>OTDR — рефлектометр и измерение линии</li>
<li>Сварка и коннекторы (LC, SC, FC)</li>
</ul>
<section id="optics" class="section">
<div class="container">
<div class="section-header">
<div class="num">02</div>
<h2>Волоконная оптика</h2>
<p>Оптические линии, SFP/XFP, DWDM, измерение и монтаж</p>
</div>
<div class="visual">
<span class="icon">🔬</span>
<div class="label">SMF 9/125 ⇄ SFP+ 10G 1310нм ⇄ 10км</div>
<div class="two-col reverse">
<div class="text">
<h3>Оптика для связи</h3>
<p>Физические принципы, типы волокон, оптические трансиверы, пассивные и активные компоненты ВОЛС.</p>
<ul>
<li>SMF и MMF: одномод и мультимод — различия</li>
<li>SFP, SFP+, XFP, QSFP28 — трансиверы и их параметры</li>
<li>Длина волны 1310нм, 1550нм — затухание и дальность</li>
<li>DWDM и CWDM — уплотнение каналов</li>
<li>OTDR — рефлектометр и измерение линии</li>
<li>Сварка и коннекторы (LC, SC, FC)</li>
</ul>
</div>
<div class="visual">
<span class="icon">🔬</span>
<div class="label">SMF 9/125 ⇄ SFP+ 10G 1310нм ⇄ 10км</div>
</div>
</div>
</div>
<div class="cards">
<div class="card">
<span class="icon">📡</span>
<h4>Трансиверы</h4>
<p>SFP, SFP+, QSFP — подбор оптики под задачу</p>
<div class="tags"><span>SFP</span><span>SFP+</span><span>QSFP</span><span>CWDM</span></div>
</div>
<div class="card">
<span class="icon">📏</span>
<h4>Измерения</h4>
<p>Затухание, отражения, бюджет мощности</p>
<div class="tags"><span>OTDR</span><span>Power Meter</span><span>VFL</span></div>
</div>
<div class="card">
<span class="icon">🔗</span>
<h4>Монтаж</h4>
<p>Сварка, коннекторы, пигтейлы, кроссовые</p>
<div class="tags"><span>LC</span><span>SC</span><span>FC</span><span>APC</span></div>
</div>
</div>
</div>
<div id="tab-equipment" class="tab-content">
<div class="section-header">
<div class="num">03</div>
<h2>Оборудование</h2>
<p>Работа с сетевым железом: настройка, диагностика, эксплуатация</p>
</div>
<div class="two-col">
<div class="text">
<h3>MX104, Eltex и другие</h3>
<p>Практические навыки работы с сетевым оборудованием ведущих вендоров от провайдерского класса до корпоративного.</p>
<ul>
<li><strong>Juniper MX104</strong> — маршрутизация, MPLS, BGP, firewall filters</li>
<li><strong>Eltex MES</strong> — настройка L2/L3 коммутаторов, VLAN, STP</li>
<li><strong>Eltex MG</strong> — медиашлюзы, TDM over IP</li>
<li><strong>D-Link, Cisco</strong> — базовые свитчи</li>
<li><strong>GPON OLT/ONT</strong> — пассивные оптические сети</li>
<li><strong>Диагностика</strong> — tcpdump, iperf, мониторинг</li>
</ul>
</div>
<div class="visual">
<span class="icon">⚙️</span>
<div class="code">
<span style="color:#8892a4"># Juniper MX104 — пример</span><br>
set interfaces ge-0/0/1 description <span style="color:#98c379">"Client"</span><br>
set interfaces ge-0/0/1 unit 0 family inet<br>
&nbsp;&nbsp;address <span style="color:#d19a66">10.10.10.1/30</span><br><br>
set policy-options policy-statement <span style="color:#e5c07b">EXPORT</span><br>
&nbsp;&nbsp;term 10 from protocol bgp<br>
&nbsp;&nbsp;term 10 then accept
<div class="cards">
<div class="card">
<span class="icon">📡</span>
<h4>Трансиверы</h4>
<p>SFP, SFP+, QSFP — подбор оптики под задачу</p>
<div class="tags"><span>SFP</span><span>SFP+</span><span>QSFP</span><span>CWDM</span></div>
</div>
<div class="card">
<span class="icon">📏</span>
<h4>Измерения</h4>
<p>Затухание, отражения, бюджет мощности</p>
<div class="tags"><span>OTDR</span><span>Power Meter</span><span>VFL</span></div>
</div>
<div class="card">
<span class="icon">🔗</span>
<h4>Монтаж</h4>
<p>Сварка, коннекторы, пигтейлы, кроссовые</p>
<div class="tags"><span>LC</span><span>SC</span><span>FC</span><span>APC</span></div>
</div>
</div>
</div>
<div class="cards">
<div class="card">
<span class="icon">🔄</span>
<h4>Juniper MX / SRX</h4>
<p>JunOS — маршрутизация, MPLS, firewall, NAT</p>
<div class="tags"><span>MX104</span><span>JunOS</span><span>BGP</span><span>MPLS</span></div>
</div>
<div class="card">
<span class="icon">🔀</span>
<h4>Eltex</h4>
<p>Коммутаторы MES, медиашлюзы MG, TA</p>
<div class="tags"><span>MES</span><span>MG</span><span>L2/L3</span><span>VLAN</span></div>
</div>
<div class="card">
<span class="icon">🌐</span>
<h4>GPON</h4>
<p>OLT, ONT, оптические терминалы</p>
<div class="tags"><span>GPON</span><span>OLT</span><span>ONT</span><span>FTTH</span></div>
</div>
</div>
</div>
</section>
<div id="tab-about" class="tab-content">
<div class="section-header">
<div class="num">04</div>
<h2>Формат обучения</h2>
<p>Практические навыки для реальной работы в телекоме</p>
</div>
<div class="cards">
<div class="card">
<span class="icon">📖</span>
<h4>Теория</h4>
<p>Структурированные материалы от основ до экспертного уровня. Схемы, таблицы, примеры.</p>
<section id="equipment" class="section">
<div class="container">
<div class="section-header">
<div class="num">03</div>
<h2>Оборудование</h2>
<p>Работа с сетевым железом: настройка, диагностика, эксплуатация</p>
</div>
<div class="card">
<span class="icon">🔧</span>
<h4>Практика</h4>
<p>Лабораторные работы на реальных конфигах. Настройка, диагностика, отладка.</p>
<div class="two-col">
<div class="text">
<h3>MX104, Eltex и другие</h3>
<p>Практические навыки работы с сетевым оборудованием ведущих вендоров от провайдерского класса до корпоративного.</p>
<ul>
<li><strong>Juniper MX104</strong> — маршрутизация, MPLS, BGP, firewall filters</li>
<li><strong>Eltex MES</strong> — настройка L2/L3 коммутаторов, VLAN, STP</li>
<li><strong>Eltex MG</strong> — медиашлюзы, TDM over IP</li>
<li><strong>D-Link, Cisco</strong> — базовые свитчи</li>
<li><strong>GPON OLT/ONT</strong> — пассивные оптические сети</li>
<li><strong>Диагностика</strong> — tcpdump, iperf, мониторинг</li>
</ul>
</div>
<div class="visual">
<span class="icon">⚙️</span>
<div class="code">
<span style="color:#8892a4"># Juniper MX104 — пример</span><br>
set interfaces ge-0/0/1 description <span style="color:#98c379">"Client"</span><br>
set interfaces ge-0/0/1 unit 0 family inet<br>
&nbsp;&nbsp;address <span style="color:#d19a66">10.10.10.1/30</span><br><br>
set policy-options policy-statement <span style="color:#e5c07b">EXPORT</span><br>
&nbsp;&nbsp;term 10 from protocol bgp<br>
&nbsp;&nbsp;term 10 then accept
</div>
</div>
</div>
<div class="card">
<span class="icon"></span>
<h4>Тесты</h4>
<p>Проверка знаний после каждого модуля. Подготовка к сертификации.</p>
<div class="cards">
<div class="card">
<span class="icon">🔄</span>
<h4>Juniper MX / SRX</h4>
<p>JunOS — маршрутизация, MPLS, firewall, NAT</p>
<div class="tags"><span>MX104</span><span>JunOS</span><span>BGP</span><span>MPLS</span></div>
</div>
<div class="card">
<span class="icon">🔀</span>
<h4>Eltex</h4>
<p>Коммутаторы MES, медиашлюзы MG, TA</p>
<div class="tags"><span>MES</span><span>MG</span><span>L2/L3</span><span>VLAN</span></div>
</div>
<div class="card">
<span class="icon">🌐</span>
<h4>GPON</h4>
<p>OLT, ONT, оптические терминалы</p>
<div class="tags"><span>GPON</span><span>OLT</span><span>ONT</span><span>FTTH</span></div>
</div>
</div>
</div>
</div>
</section>
</div>
<section id="about" class="section">
<div class="container">
<div class="section-header">
<div class="num">04</div>
<h2>Формат обучения</h2>
<p>Практические навыки для реальной работы в телекоме</p>
</div>
<div class="cards">
<div class="card">
<span class="icon">📖</span>
<h4>Теория</h4>
<p>Структурированные материалы от основ до экспертного уровня. Схемы, таблицы, примеры.</p>
</div>
<div class="card">
<span class="icon">🔧</span>
<h4>Практика</h4>
<p>Лабораторные работы на реальных конфигах. Настройка, диагностика, отладка.</p>
</div>
<div class="card">
<span class="icon"></span>
<h4>Тесты</h4>
<p>Проверка знаний после каждого модуля. Подготовка к сертификации.</p>
</div>
</div>
</div>
</section>
<section class="cta">
<div class="container">
@ -271,28 +271,5 @@ body{font:17px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,s
<footer class="footer">
NetAcademy &copy; 2026 — Обучение сетевым технологиям
</footer>
<script>
(function(){
const tabs = document.querySelectorAll('.tab-btn');
const contents = document.querySelectorAll('.tab-content');
function openTab(name) {
tabs.forEach(b => b.classList.toggle('active', b.dataset.tab === name));
contents.forEach(c => c.classList.toggle('active', c.id === 'tab-' + name));
history.replaceState(null, '', '#' + name);
}
tabs.forEach(btn => {
btn.addEventListener('click', () => openTab(btn.dataset.tab));
});
const hash = location.hash.replace('#', '');
if (hash && document.getElementById('tab-' + hash)) {
openTab(hash);
}
})();
</script>
</body>
</html>