Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как сохранить позицию вертикального скролла...

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
armancho7777777 Супермодератор
Отправлено: 20 Сентября, 2011 - 02:42:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Всем привет!
Подскажите пожалуйста, как сохранить позицию вертикального скролла после клика по ссылке? Чтобы страница вниз не "улетала" после клика. Весь google уже обшарил: не нашёл путёвого решения. Содни строк кода, к тому же толку никаго.
 
 Top
DeepVarvar Супермодератор
Отправлено: 20 Сентября, 2011 - 03:27:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




armancho7777777 пишет:
Содни строк кода

armancho7777777 пишет:
Весь google уже обшарил

CODE (html):
скопировать код в буфер обмена
  1. <a href="#" onclick="return false;">Ыть</a>

Иногда бывает жостко... Радость
 
 Top
armancho7777777 Супермодератор
Отправлено: 21 Сентября, 2011 - 00:49:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Блин, точнее, чтобы страница не "улетала" в верх )
Одним словом, если объект страница, находящийся по середине страницы,
был до клика в верху окна, то надо чтобы он там и оставался после клика.
Данная ссылка уже изначально отключена:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('#liMenuA').click(function(event){       
  3.     event.preventDefault();
  4. });
  5.  

Она обновляет указанный объект (это DIV) посредством AJAX.

(Отредактировано автором: 21 Сентября, 2011 - 03:42:17)

 
 Top
DeepVarvar Супермодератор
Отправлено: 21 Сентября, 2011 - 08:31:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




DeepVarvar пишет:
return false;
 
 Top
armancho7777777 Супермодератор
Отправлено: 21 Сентября, 2011 - 08:38:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Да я понял в первый раз уже.
Но так отключается весь дальнейший функцонал.
А ведь дальше идёт подгрузка ajax-ом.
А если false указать после подгрузки, то изменений никаких.
Одним словом,- return false не вариант.

(Отредактировано автором: 21 Сентября, 2011 - 08:38:40)

 
 Top
DeepVarvar Супермодератор
Отправлено: 21 Сентября, 2011 - 09:02:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




...
 
 Top
illy
Отправлено: 21 Сентября, 2011 - 09:10:15
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




можно через аякс подгрузить нужный текст страницы в div


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
armancho7777777 Супермодератор
Отправлено: 21 Сентября, 2011 - 09:14:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




illy пишет:
можно через аякс подгрузить нужный текст страницы в div

Я так и делаю)
Суть проблемы в том, что при обновлении страница скачет вверх, так как изменяется высота контейнера (дива) в силу разного объёма подгружаемого контента, и потому я хочу зафиксировать вертикальный скролл. Т.е. до клика записать положение вертикального скролла в куки, ну и так далее. Просто не знаю как это реализовать на практике. Как получить значение скролла? И как его изменить?

(Отредактировано автором: 21 Сентября, 2011 - 09:59:42)

 
 Top
DeepVarvar Супермодератор
Отправлено: 21 Сентября, 2011 - 09:59:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




DeepVarvar пишет:
return false;

И ничего запоминать не надо. Он останется на месте.
armancho7777777 пишет:
Одним словом

Единственный верный вариант: return false;
И если он у вас не работает, ищите ошибку.
Или выложите код сюда.
 
 Top
armancho7777777 Супермодератор
Отправлено: 21 Сентября, 2011 - 10:01:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.  
  3.  
  4. $('#liMenuA').click(function(event){
  5.    
  6. event.preventDefault();
  7.  
  8. var liMenuA = $(this);
  9.  
  10.         $('#liMenu UL').each(function(){
  11.                
  12.                 var liMenuUL = $(this);
  13.  
  14.                 if($(this).is(':hidden')){
  15.                        
  16.                  $(this).slideDown();
  17.                        
  18.                  liMenuA.css({'background-image':'url(/images/menu_filter_bg_hvr.png)'});
  19.                                                                    
  20.                 $(this).find('a').click(function(event){
  21.                                                        
  22.                    event.preventDefault();
  23.                    
  24.                    var cvet = $(this).attr('title');
  25.                    
  26.                    liMenuA.text(cvet.toUpperCase()+' ЦВЕТ');
  27.                    
  28.                    liMenuUL.slideUp(0);
  29.  
  30.                           $.get('/pages/katalog/katalog_ajax.php',{cvet:cvet},function(data){                                                  
  31.                                  
  32.                                   $('#divLoadKatalog').fadeOut(700,function(){
  33.                                          
  34.                                           $(this).html(data).fadeIn(700);
  35.                                          
  36.                                   });
  37.                          
  38.                           });
  39.                                                                                    
  40.                 });                                              
  41.                                          
  42.                                          
  43.                                            
  44.                 } else {
  45.                        
  46.                 $(this).slideUp();
  47.                 liMenuA.css({'background-image':'url(/images/menu_filter_bg.png)'});
  48.                                          
  49.                           }
  50.                
  51.            });
  52.        
  53.  });     
  54.                  
  55.            
  56.  

(Отредактировано автором: 21 Сентября, 2011 - 10:10:23)

 
 Top
Viper
Отправлено: 21 Сентября, 2011 - 10:47:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




armancho7777777 scrollTo(), offset() вам в помощь


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
DeepVarvar Супермодератор
Отправлено: 21 Сентября, 2011 - 12:18:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Viper да ладно? Между строками 39 и 40 пишем return false; и все.
(Добавление)
armancho7777777 пишет:
event.preventDefault()
Тогда и эта конструкция не нужна.
 
 Top
armancho7777777 Супермодератор
Отправлено: 21 Сентября, 2011 - 12:22:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




DeepVarvar пишет:
Viper да ладно? Между строками 39 и 40 пишем return false; и все.
Я так уже делал)
Viper прав. Но таким способом я пытался реализовать ещё вчера, и не смог. Потому сюда написал.
 
 Top
DeepVarvar Супермодератор
Отправлено: 21 Сентября, 2011 - 12:37:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Не может быть чтобы эта конструкция не сработала.
Как это может быть чтобы return не сработал?
Да ну на... Теперь костылять костылями на костылях?
 
 Top
Viper
Отправлено: 21 Сентября, 2011 - 13:18:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




DeepVarvar это если якорная ссылка.

armancho7777777 приведите структуру документа дабы понять где у вас затык, либо ссылку где можно глянуть вашу наработку. А то мы сейчас гадаем на кофейной гуще.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB