v2.5.2
Giriş yap

JavaScript Kodum Daha Temiz Yazılabilir mi?

kaymakli
297 defa görüntülendi

Merhaba, Bir Web Tasarımı Hazırlıyorum.
JavaScript'i yeni öğrenmeye başladım. Daha önceden hep hazır kodlar ile çalışıyordum.
Aşağıda Paylaşmış olduğum kodu kendim hazırladım. Sorunsuz çalışmakta. Fakat Kullanımı Doğrumu pek emin değilim.
Bu şekilde kullanmamın bana ileride bir problemi olurmu? veya daha temiz yazılabilirmi sizlere danışmak istedim

const selectBody			= document.querySelector('#body'),
	    selectTopbar		= document.querySelector('#topbar'),
 	    selectHeader		= document.querySelector('#header'),
 		selectButton		= document.querySelector('.menu-btn'),
		selectBack			= document.querySelector('.backdrop'),
 		selectMenu			= document.querySelector('.menu'),
		selectNextEl 		= selectHeader.nextElementSibling;
let 	topbarHeight		= selectTopbar.offsetHeight;

selectButton.onclick = () => {
	selectBody.classList.toggle('overflow-hidden');
	selectBack.classList.toggle('active');
	selectMenu.classList.toggle('active');
};

let headerScrolled = () => {
	if( window.scrollY > selectTopbar.offsetHeight ) {
		selectHeader.classList.add('scrolled');
		selectNextEl.style = 'margin-top: '+ (selectHeader.offsetHeight + 30) +'px;';
		topbarHeight = 0;
		styleUpdate();
	} else {
		selectHeader.classList.remove('scrolled');
		selectNextEl.style = 'margin-top: 30px;';
		topbarHeight = selectTopbar.offsetHeight;
		styleUpdate();
	}
}
addEventListener('scroll', headerScrolled);

function styleUpdate() {
	if( document.body.clientWidth < 769 ) {
		let top = topbarHeight + selectHeader.offsetHeight;
		selectBack.style = 'top: '+top+'px;';
		selectMenu.style = 'top: '+top+'px;';
	}
};

addEventListener('resize', styleUpdate);

styleUpdate();

Şimdiden yardımcı olabilecek arkadaşlara çok teşekkür ederim.

aykhan
463 gün önce
const select = (selector) => document.querySelector(selector);
const selectAll = (selector) => document.querySelectorAll(selector);

const selectBody = select('#body'),
      selectTopbar = select('#topbar'),
      selectHeader = select('#header'),
      selectButton = select('.menu-btn'),
      selectBack = select('.backdrop'),
      selectMenu = select('.menu'),
      selectNextEl = selectHeader.nextElementSibling;

let topbarHeight = selectTopbar.offsetHeight;

selectButton.onclick = () => {
  selectBody.classList.toggle('overflow-hidden');
  selectBack.classList.toggle('active');
  selectMenu.classList.toggle('active');
};

const headerScrolled = () => {
  const scrollY = window.scrollY;
  const scrolled = scrollY > selectTopbar.offsetHeight;
  
  selectHeader.classList.toggle('scrolled', scrolled);
  selectNextEl.style.marginTop = scrolled ? `${selectHeader.offsetHeight + 30}px` : '30px';
  topbarHeight = scrolled ? 0 : selectTopbar.offsetHeight;
  styleUpdate();
};

addEventListener('scroll', headerScrolled);

const styleUpdate = () => {
  if (document.body.clientWidth < 769) {
    const top = topbarHeight + selectHeader.offsetHeight;
    selectBack.style.top = `${top}px`;
    selectMenu.style.top = `${top}px`;
  }
};

addEventListener('resize', styleUpdate);
styleUpdate();

Böyle bişey