Старый 09.04.2016, 00:12   #1
телочка на авке клевая?
 
Аватар для 10012003
 
Регистрация: 14.09.2008
Адрес: Замкадье.
Сообщений: 1,522
Вес репутации: 212
10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее
По умолчанию помогите с 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});
});
});
}

Последний раз редактировалось 10012003; 09.04.2016 в 00:12. Причина: Добавлено сообщение
10012003 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Javascript+flash помогите решить проблему, пожалуйста. valu0808 Разработка и сопровождение сайтов 3 23.09.2015 02:15
Помогите с javascript (jquery) BMG Разработка и сопровождение сайтов 0 28.01.2012 00:51
Помогите с баннерокрутилкой на javascript Красавчег Курилка 9 28.01.2011 14:04
Кто знает JavaScript - помогите пожалуйста. Robingoodd Разработка и сопровождение сайтов 16 17.06.2009 13:06
Код на JavaScript agent007 Вопросы по работе системы 1 15.09.2007 02:30


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