Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос про якорь (https://javascript.ru/forum/misc/43627-vopros-pro-yakor.html)

grisha2217 14.12.2013 16:55

Вопрос про якорь
 
Всем привет. Начал использовать якорь.

Имеется скрипт:
$(document).ready(function(){
   $('a[href*=#]').bind("click", function(e){
      var anchor = $(this);
      $('html, body').stop().animate({
         scrollTop: $(anchor.attr('href')).offset().top
      }, 1000);
      e.preventDefault();
   });
   return false;
});


Задача:
Прокручивать страницу почти до якоря (якорь и top:-50px)


Думаю, вы меня поняли

danik.js 14.12.2013 17:14

ну добавь -50px. Или какие-то проблемы?

grisha2217 14.12.2013 17:34

danik.js, как это сделать то?

Дело в том, что у меня есть фиксированное меню, и получается так, что это меню перекрывает див.

danik.js 14.12.2013 17:42

Цитата:

Сообщение от grisha2217
Задача:
Прокручивать страницу почти до якоря (якорь и top:-50px)

scrollTop: $(anchor.attr('href')).offset().top - 50px

grisha2217 14.12.2013 23:00

danik.js, не работает.

danik.js 15.12.2013 03:20

ыы. убери px

grisha2217 15.12.2013 15:03

Цитата:

Сообщение от danik.js (Сообщение 286644)
ыы. убери px

Работает. Спасибо)

---

Есть еще один вопрос.

Есть код:
$(function(){
    $(window).scroll(function() {
        var top = $(document).scrollTop();
        if (top < 100) $("#menu").css({top: '0', position: 'relative'});
        else $("#menu").css({top: '0', position: 'fixed'});
		$(".navtabs").css({background: '#21333F'});
    });
});


Если top > 100, то меняется css у id'a menu и класса navtabs, а как мне сделать, чтобы обратно возвращалось. Т.е. когда top < 100 у id'a меню css меняется, а мне нужно, чтобы еще и у класса navtabs менялось.


Пробовал так:
$(function(){
    $(window).scroll(function() {
        var top = $(document).scrollTop();
        if (top < 100) $("#menu").css({top: '0', position: 'relative'});
		               $(".navtabs").css({background: '#1A1A1A'});
        else $("#menu").css({top: '0', position: 'fixed'});
		$(".navtabs").css({background: '#21333F'});
    });
});


Вообще перестает работать.

grisha2217 15.12.2013 17:06

Ап

danik.js 15.12.2013 17:45

if () {
    a;
    b;
} else {
    c;
    d;
}


И вобще, меняй не css, а css-классы. И стили уже в css-файле прописывай.

danik.js 15.12.2013 17:45

if () {
    a;
    b;
} else {
    c;
    d;
}


И вобще, меняй не css, а css-классы. И стили уже в css-файле прописывай.


Часовой пояс GMT +3, время: 18:13.