letehaha
@letehaha
Вникаю вo front-end

Как сделать подобное?

Здравствуйте
При переходе по ссылке на Brown, нужно что бы на ней подсвечивался этот пункт меню. Т.е., делать подсветку текущего пункта на странице. Как такое реализовывать? Желательно native JS. Голова чот не варит вообще, а нужно срочно на завтра)
f946cd26c3a04648a4dfcbdb00db8fcc.pngUPD: Рабочий вариант (нужным ссылкам задать класс link):
var links = document.getElementsByClassName('link');
var linksArr = Array.prototype.slice.call(links);

linksArr.forEach(function(item, linksArr) {
  var location = window.location.href;
	var link = item.href;
	var result = location.match(link);

	if(result != null) {
	  item.classList.add('active');
	}

});
  • Вопрос задан
  • 255 просмотров
Решения вопроса 2
archakov06
@archakov06
Frontend-разработчик (ReactJS)
$('header .top .profile ul li a[href*="'+location.pathname+'"]').addClass('active');


Это решение не займет лишнего пространства и использовать window.location.href, не есть правильно. Так как во многих сайтах, в качестве адреса используется путь без указа протокола и домена, то есть только путь к разделу. Можно этой одной строчкой решить весь ваш вопрос и код @Huf

location.pathname = "/q/373607" - возвращает только путь к определенному разделу, без протокола и домена.

location.href = "https://toster.ru/q/373607" - возвращает полный адрес.

И правильней, использовать проверку на наличие пути, а не всего адреса.

Вам остается просто создать для ul.menu li a, отдельный класс .active и уже настраивать по вашему желанию.
Ответ написан
<script type="text/javascript">
							 $(function () {                             
								$('header .top .profile ul li a').each(function () {     
									var location = window.location.href 
									var link = this.href               
									var result = location.match(link);  
							 
									if(result != null) {                
										$(this).addClass('active');    
									}
								});
							});
</script>


header .top ul.menu li a.active{color:#ffd111}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы