Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Фиксируется блок при прокрутке экрана
Александр801  
 ۩     Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 32
Пользователь №: 40770
На форуме: 1 год, 10 месяцев, 22 дня
Карма: -1




хочу сделать, чтобы корзина фиксировалась при прокрутке экрана
нашел простой скрипт

var h_hght = 720; // высота шапки
var h_mrg = 0;    // отступ когда шапка уже не видна
               
$(function(){

   var elem = $('.right');
   var top = $(this).scrollTop();
   
   if(top > h_hght){
       elem.css('top', h_mrg);
   }          
   
   $(window).scroll(function(){
       top = $(this).scrollTop();
       
       if (top+h_mrg < h_hght) {
           elem.css('top', (h_hght-top));
       } else {
           elem.css('top', h_mrg);
       }
   });

});


то есть при прокрутке экрана на 720px блок с классом "right" должен зафиксироваться в позиции top=0, но не получается
ошибка "Uncaught TypeError: $(...).scrollTop is not a function"

Подскажите, что не так?

сайт foodcity-24.ru/ovoshchi-zelen/zelen.html
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 720
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 10 дней
Карма: 21




Похоже на то, что jquery еще не подгрузился, а Вы уже вызываете функцию.
Может быть так надо сделать?

$(document).ready(function(){
var elem = $('.right');
var top = $(this).scrollTop();

if(top > h_hght){
elem.css('top', h_mrg);
}

$(window).scroll(function(){
top = $(this).scrollTop();

if (top+h_mrg < h_hght) {
elem.css('top', (h_hght-top));
} else {
elem.css('top', h_mrg);
}
}
);
});


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14973
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев
Карма: 443




Во-первых, сделай точку останова в этой строке и посмотри, что у тебя там с переменными и объектами творится.
А во-вторых, если ты хочешь просто зафиксировать объект, то почему бы просто не сделать ему стиль "position:fixed; top:0"?

ПыСы.
Цитата (arbuzmaster @ 13.09.2016 - 22:23)
Может быть так надо сделать?

Он так и сделал ;) Это две разные формы записи https://learn.jquery.com/using-jquery-core/document-ready/
Другой вопрос в том, что если есть еще какая-нибудь библиотека JS, которая задействует знак доллара, то могут быть прикольные хреновины. Недавно попросили помочь разобраться, что в начале jQuery работает, а потом перестает. Оказалось, что на каком-то этапе работы скрипта надо было использовать полный формат вызова
jQuery(....)
// вместо короткого формата
$(....)


Это сообщение отредактировал sergeiss - 13.09.2016 - 22:36


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    2   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Александр801  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 32
Пользователь №: 40770
На форуме: 1 год, 10 месяцев, 22 дня
Карма: -1




Цитата (sergeiss @ 13.09.2016 - 22:32)
Во-первых, сделай точку останова в этой строке и посмотри, что у тебя там с переменными и объектами творится.
А во-вторых, если ты хочешь просто зафиксировать объект, то почему бы просто не сделать ему стиль "position:fixed; top:0"?

ПыСы.
Цитата (arbuzmaster @ 13.09.2016 - 22:23)
Может быть так надо сделать?

Он так и сделал ;) Это две разные формы записи https://learn.jquery.com/using-jquery-core/document-ready/
Другой вопрос в том, что если есть еще какая-нибудь библиотека JS, которая задействует знак доллара, то могут быть прикольные хреновины. Недавно попросили помочь разобраться, что в начале jQuery работает, а потом перестает. Оказалось, что на каком-то этапе работы скрипта надо было использовать полный формат вызова
jQuery(....)
// вместо короткого формата
$(....)

Спасибо, sergeiss!
помогло это
jQuery(....)
// вместо короткого формата
$(....)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса