1window.onload = function() { 2 // plavnii skroll efekt dlia ministerstva 3 let smoothLinks = document.querySelectorAll('a[href^="/#"]'); 4 if (document.querySelector('.slider')) for (let smoothLink of smoothLinks) { 5 smoothLink.addEventListener('click', function (e) { 6 e.preventDefault(); 7 document.querySelector('header.header').classList.add('scroll'); 8 setTimeout(()=>{ 9 let id; 10 if (window.location.pathname=='/') id = smoothLink.getAttribute('href').substring(1); 11 else id = smoothLink.getAttribute('href') 12 document.querySelector(id).scrollIntoView({behavior: 'smooth', block: 'start'}); 13 }, 300) 14 }); 15 } 16 const slider = document.querySelector('.slider') 17 if (slider) { 18 let head = 470 19 if (window.innerWidth < 650) head = 300 20 const img = document.querySelectorAll('.slider .img'), text = document.querySelectorAll('.slider .txt'), go = document.querySelector('.slider .go') 21 let index = 0, step = 0, isPaused = false, height = img[0].clientHeight 22 let top = height 23 text[0].classList.add('active') 24 slider.addEventListener('mouseover', (e)=>{ 25 isPaused = true 26 let num = e.target.classList[0] 27 if (num) num = num.substring(2, 3) 28 if (num>0) num = num 29 if (num == 1) goTxtHover(0, `0px`) 30 if (num == 2) goTxtHover(1, `-${head}px`) 31 if (num == 3) goTxtHover(2, `-${head*2}px`) 32 go.style.transition = '1s' 33 }) 34 slider.addEventListener('mouseout', ()=>{isPaused = false;go.style.transition = '0s'}) 35 setInterval(()=>{if(!isPaused){goTxt(); goImg()}}, 3000) 36 function goTxtHover(params, top) { 37 for (let i = 0; i < text.length; i++) { 38 text[i].classList.remove('active') 39 } 40 text[params].classList.add('active') 41 go.style.top = top 42 } 43 function goTxt() { 44 for (let i = 0; i < text.length; i++) { 45 text[i].classList.remove('active') 46 } 47 if (index < text.length-1) index++; else index = 0; 48 text[index].classList.add('active') 49 } 50 function goImg() { 51 step++ 52 if (img.length > step) { 53 go.style.top = `-${top}px` 54 go.style.transition = '1s' 55 top = top + height; 56 } else { 57 top = height 58 go.style.top = `0px` 59 step = 0 60 go.style.transition = '0s' 61 } 62 63 } 64 } 65 // burger efekt dlia ministerstva 66 const burger = document.querySelector('.left_sitebar .burger') 67 const burgerclose = document.querySelector('.block_sitebar .close') 68 if (burger) 69 burger.addEventListener('click', ()=>{ 70 document.querySelector('.block_sitebar').classList.toggle('active') 71 burger.classList.toggle('active') 72 }) 73 burgerclose.addEventListener('click', ()=>{ 74 document.querySelector('.block_sitebar').classList.toggle('active') 75 burger.classList.toggle('active') 76 }) 77 78 // paralax efekt dlia ministerstva 79 const scroll_top = document.querySelector('.scroll_top') 80 const left_sitebar = document.querySelectorAll('.left_sitebar .bg img') 81 const bgPage = document.querySelector('.right_project.__right .bg') 82 if (window.innerWidth > 1400) 83 window.addEventListener('scroll', function() { 84 let go = window.pageYOffset/50 85 if (go<120) { 86 left_sitebar[0].style.transform = `translateY(${go}px)` 87 left_sitebar[1].style.transform = `translateY(-${go}px)` 88 } 89 if (bgPage && window.pageYOffset>320) if (window.pageYOffset < document.querySelector('.right_project.__right').clientHeight - 300) 90 bgPage.style.transform = `translateY(${window.pageYOffset-320}px)` 91 92 93 }) 94 95 // lotip bg i menu efekt dlia ministerstva 96 const logo = document.querySelectorAll('.left_sitebar .logo img') 97 const bg = document.querySelector('section.description') 98 const bg2 = document.querySelector('section.activity') 99 if (window.innerWidth > 1300) window.addEventListener('scroll', function() { 100 let top = window.pageYOffset 101 if (scroll_top) { 102 if (scroll_top.offsetTop+40 < top) scroll_top.classList.add('active') 103 else scroll_top.classList.remove('active') 104 }
105 if (bg) if (bg.offsetTop < top+120) bg.querySelector('.left_page .go_block .right .bg').style.transform = `translateY(-${(top-bg.offsetTop)/2}px)` 106 if (bg2) if (bg2.offsetTop < top+120) bg2.querySelector('.left_page .go_block .right .bg').style.transform = `translateY(-${(top-bg2.offsetTop)/2}px)` 107 if (logo) { 108 for (let i = 0; i < logo.length; i++) { 109 if (logo[i]/2==0) logo[i].style.transform = `rotate(${window.pageYOffset/10}deg)` 110 else logo[i].style.transform = `rotate(-${window.pageYOffset/10}deg)` 111 } 112 } 113 }) 114 jQuery('a[href$=".pdf"], a[href$=".PDF"], a[href$=".zip"], a[href$=".ZIP"], a[href$=".rar"], a[href$=".RAR"], a[href$=".jpeg"], a[href$=".jpg"], a[href$=".JPG"], .linck_').attr('target','_blank'); 115 116 const tabs = document.querySelectorAll('.tabs li'); 117 if (tabs) 118 tabs.forEach((tab, index) => { 119 tab.addEventListener('click', () => { 120 if (index % 2 == 0) { 121 tabs[index].nextElementSibling.classList.toggle('hidden'); 122 tabs[index].classList.toggle('open'); 123 } 124 }); 125}); 126}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.