[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Фиксируется блок при прокрутке экрана
Александр801
хочу сделать, чтобы корзина фиксировалась при прокрутке экрана
нашел простой скрипт

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
arbuzmaster
Похоже на то, что 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);
}
}
);
});


_____________
Мой первый сайтик

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

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

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


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

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

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

user posted image
Александр801
Цитата (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(....)
// вместо короткого формата
$(....)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.