Время чтения: 2 мин. 10 августа 2016 в 10:34 CSS
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5
Загрузка...

Подсветка активного пункта меню на одностраничных сайтах

JS

[php]

$(‘a[href^="#"]’).click(function(event) {
var id = $(this).attr("href");
var target = $(id).offset().top;
$(‘html, body’).animate({scrollTop:target}, 500);
event.preventDefault();
});

function getTargetTop(elem){
var id = elem.attr("href");
var offset = 50;
return $(id).offset().top — offset;
}

$(window).scroll(function(e){
isSelected($(window).scrollTop())
});

var sections = $(‘a[href^="#"]’);

function isSelected(scrolledTo){

var threshold = 100;
var i;

for (i = 0; i < sections.length; i++) {
var section = $(sections[i]);
var target = getTargetTop(section);

if (scrolledTo > target — threshold && scrolledTo < target + threshold) {
sections.removeClass("active");
section.addClass("active");
}

};
}
[/php]

HTML
[php]

<ul class="flexnav">
<li><a href="#home" onclick="scrollPageToId(‘home’);">Home</a></li>
<li><a href="#what-we-do" onclick="scrollPageToId(‘what-we-do’);">What we do</a></li>
<li><a href="#reviews" onclick="scrollPageToId(‘reviews’);">Reviews</a></li>
</ul>

<section class="home" id="home">
<div class="container">
</div>
</div>

<section class="home" id="what-we-do">
<div class="container">
</div>
</div>

<section class="home" id="reviews">
<div class="container">
</div>
</div>

[/php]

CSS

[php]
ul.flexnav li a.active {
border-bottom: 1px solid #000;
}
[/php]

Похожие статьи

Заказать обратный звонок

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Получить коммерческое предложение

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Какая услуга Вас интересует? *

Допонительные услуги

Комментарий

Получить коммерческое предложение

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Какая услуга Вас интересует? *

Допонительные услуги

Комментарий

Получить консультацию

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Комментарий

Получить консультацию

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Комментарий

[contact-form-7 404 "Not Found"]
[contact-form-7 404 "Not Found"]
Начать сотрудничество
Заполните поля ниже. Я лично перезвоню Вам в течении 15 минут для обсуждения деталей.

Введите ваше имя *

Введите контактный телефон *

Введите контактный Email для отправки точной стоимости

или позвоните мне по телефону
+7-499-70-300-44
Получить консультацию

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Комментарий

[contact-form-7 404 "Not Found"]
Заказать услугу
Я свяжусь с Вами в течении 15 минут в рабочее время для обсуждения деталей

Введите контактный телефон *

Введите контактный e-mail *

Комментарий

Получить коммерческое предложение

Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.

Введите ваше имя *

Введите контактный телефон *

Введите контактный e-mail *

Какая услуга Вас интересует? *

Допонительные услуги

Комментарий

Заказать услугу
Я свяжусь с Вами в течении 15 минут в рабочее время для обсуждения деталей

Введите контактный телефон *

Введите контактный e-mail *

Комментарий

Запись на бесплатный урок
Введите ваше имя, телефон и Skype логин и email.
Я свяжусь с Вами для уточнения времени прохождения урока.

Введите контактный телефон *

Введите ваше Skype логин *

Введите контактный E-mail *

Выберите программу

Введите ваше имя *

Введите контактный email *

Сообщение

Заказать сайт
Первые 14 дней бесплатно. Оставьте номер email и контактный телефон. Я лично перезвоню Вам в течении 10 минут, для обсуждения деталей.


Ваш email

Введите контактный телефон

Комментарий или вопрос