Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Разработка и сопровождение сайтов (http://forum.sape.ru/forumdisplay.php?f=29)
-   -   помогите с javascript (http://forum.sape.ru/showthread.php?t=96455)

10012003 09.04.2016 00:12

помогите с javascript
 
код такой
function my_scroll(id){
$(document).ready(function(){
if(!$(id)) {return false;}
var def = $(id).offset().top;
$(document).scroll(function(){
if($(this).scrollTop() >= def){
$(id).css({'position':'fixed', 'top':0, 'left':$(id).offset().left, 'z-index':1000});
} else $(id).css({'position':'relative', 'left': 0});
});
});

}

делает следующее
при скроле страницы ниже объекта меняются его css параметры на fixed, нужно для того чтобы
1 не нагружать браузер постоянным пересчетом
2 нет никакой тряски
в противном случае возврат к исходному

проблема к возврату к исходным значениям, в данном случае дефолтные css задаются жестко, что в принципе работает в моем конкретном случае, но совсем нет универсальности
добавить класс и потом его удалить не подходит, так как объект может содержать свои классы, да и как задать динамический отступ в css файле я не знаю.
при создании переменной с дефолтным css ее значения перезаписываются на новые, даже если разрешать запись только при отсутствии данной переменной
констант нет, может быть существует способ передать значения не по ссылке?

Бьюсь 2-ой день, может есть у кого какие-нибудь соображения, кроме создания глобальных переменных?

Добавлено через 42 минуты
нашел ошибку
вот так всегда пока не спросишь совета не доходит
если кому надо код такой
function my_scroll(id){
$(document).ready(function(){
if(!$(id)) {return false;}
var def = $(id).offset().top;
var myScrolCss={};
if(!myScrolCss.position){
myScrolCss.position = $(id).css('position');
myScrolCss.positionLeft = $(id).css('left');
myScrolCss.styleZindex = $(id).css('z-index');
}
$(document).scroll(function(){
if($(this).scrollTop() >= def){
$(id).css({'position':'fixed', 'top':0, 'left':$(id).offset().left, 'z-index':1000});
} else $(id).css({'position':myScrolCss.position, 'left': myScrolCss.positionLeft, 'z-index':myScrolCss.styleZindex});
});
});
}


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

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.