123 lines
3.9 KiB
HTML
123 lines
3.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="ru">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<title>{auto_title}</title>
|
|
<meta name="keywords" content="{meta_keywords}">
|
|
<meta name="description" content="{meta_description}">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<base href="{_SITE_ROOT_}">
|
|
<link rel="icon" href="favicon.ico">
|
|
{include:include/_static_css_headers.htm}
|
|
{include:include/_static_js_headers.htm}
|
|
{add_headers}
|
|
</head>
|
|
|
|
<body class="container-fluid h-100 px-0">
|
|
<div class="row h-100 no-gutters">
|
|
<!-- Левая колонка (меню) -->
|
|
<div class="col-3 left-col px-2 pt-3">
|
|
<div class="d-flex align-items-center mb-4">
|
|
<img src="assets/img/logo.png"
|
|
class="mr-3"
|
|
style="height:70px;width:auto;">
|
|
|
|
<div class="font-weight-bold" style="font-size:28px; line-height:1.2;">
|
|
Психоневрологический<br>диспансер №8
|
|
</div>
|
|
</div>
|
|
{menu}
|
|
</div>
|
|
|
|
<!-- Правая колонка (контент) -->
|
|
<div class="col pl-4 ml-4 right-col position-relative pr-0">
|
|
|
|
<div id="bigcontent-wrapper" class="h-100 position-relative">
|
|
<div id="bigcontent" class="h-100" style="overflow: hidden;">
|
|
{body}
|
|
</div>
|
|
|
|
<!-- Кнопки прокрутки -->
|
|
<button id="scroll-up" class="scroll-btn">▲</button>
|
|
<button id="scroll-down" class="scroll-btn">▼</button>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
<script>
|
|
$(function () {
|
|
var $box = $('#bigcontent');
|
|
var $btnUp = $('#scroll-up');
|
|
var $btnDn = $('#scroll-down');
|
|
|
|
var interval = null;
|
|
var step = 250; // шаг скролла
|
|
var delay = 60; // частота скролла (мс)
|
|
|
|
function checkOverflow() {
|
|
var el = $box[0];
|
|
if (!el) return;
|
|
|
|
// немного страховки на округления браузера
|
|
if (el.scrollHeight - 2 > el.clientHeight) {
|
|
$btnUp.show();
|
|
$btnDn.show();
|
|
} else {
|
|
$btnUp.hide();
|
|
$btnDn.hide();
|
|
}
|
|
}
|
|
|
|
function startScroll(dir) {
|
|
stopScroll();
|
|
interval = setInterval(function () {
|
|
$box[0].scrollTop += dir * step;
|
|
}, delay);
|
|
}
|
|
|
|
function stopScroll() {
|
|
if (interval) {
|
|
clearInterval(interval);
|
|
interval = null;
|
|
}
|
|
}
|
|
|
|
// Наверх
|
|
$btnUp.on('mousedown touchstart', function (e) {
|
|
e.preventDefault();
|
|
startScroll(-1);
|
|
});
|
|
|
|
// Вниз
|
|
$btnDn.on('mousedown touchstart', function (e) {
|
|
e.preventDefault();
|
|
startScroll(1);
|
|
});
|
|
|
|
// Остановка
|
|
$(document).on('mouseup mouseleave touchend touchcancel', function () {
|
|
stopScroll();
|
|
});
|
|
|
|
// 1) Проверка при старте
|
|
checkOverflow();
|
|
|
|
// 2) Периодический опрос — чтобы ловить любые изменения в runtime
|
|
setInterval(checkOverflow, 500);
|
|
|
|
// 3) Если используешь Bootstrap collapse / модалки / табы — дергаем ещё раз
|
|
$(document).on('shown.bs.collapse hidden.bs.collapse shown.bs.tab hidden.bs.tab', function () {
|
|
checkOverflow();
|
|
});
|
|
});
|
|
</script>
|
|
|
|
|
|
</body>
|
|
</html>
|
|
|
|
|