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
Форумы портала PHP.SU :: Версия для печати :: как сохранить позицию вертикального скролла...
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » как сохранить позицию вертикального скролла...

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

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

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

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

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

Она обновляет указанный объект (это DIV) посредством AJAX.
4. DeepVarvar - 21 Сентября, 2011 - 08:31:03 - перейти к сообщению
DeepVarvar пишет:
return false;
5. armancho7777777 - 21 Сентября, 2011 - 08:38:05 - перейти к сообщению
Да я понял в первый раз уже.
Но так отключается весь дальнейший функцонал.
А ведь дальше идёт подгрузка ajax-ом.
А если false указать после подгрузки, то изменений никаких.
Одним словом,- return false не вариант.
6. DeepVarvar - 21 Сентября, 2011 - 09:02:15 - перейти к сообщению
...
7. illy - 21 Сентября, 2011 - 09:10:15 - перейти к сообщению
можно через аякс подгрузить нужный текст страницы в div
8. armancho7777777 - 21 Сентября, 2011 - 09:14:09 - перейти к сообщению
illy пишет:
можно через аякс подгрузить нужный текст страницы в div

Я так и делаю)
Суть проблемы в том, что при обновлении страница скачет вверх, так как изменяется высота контейнера (дива) в силу разного объёма подгружаемого контента, и потому я хочу зафиксировать вертикальный скролл. Т.е. до клика записать положение вертикального скролла в куки, ну и так далее. Просто не знаю как это реализовать на практике. Как получить значение скролла? И как его изменить?
9. DeepVarvar - 21 Сентября, 2011 - 09:59:26 - перейти к сообщению
DeepVarvar пишет:
return false;

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

Единственный верный вариант: return false;
И если он у вас не работает, ищите ошибку.
Или выложите код сюда.
10. armancho7777777 - 21 Сентября, 2011 - 10:01:48 - перейти к сообщению
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.  
11. Viper - 21 Сентября, 2011 - 10:47:59 - перейти к сообщению
armancho7777777 scrollTo(), offset() вам в помощь
12. DeepVarvar - 21 Сентября, 2011 - 12:18:48 - перейти к сообщению
Viper да ладно? Между строками 39 и 40 пишем return false; и все.
(Добавление)
armancho7777777 пишет:
event.preventDefault()
Тогда и эта конструкция не нужна.
13. armancho7777777 - 21 Сентября, 2011 - 12:22:57 - перейти к сообщению
DeepVarvar пишет:
Viper да ладно? Между строками 39 и 40 пишем return false; и все.
Я так уже делал)
Viper прав. Но таким способом я пытался реализовать ещё вчера, и не смог. Потому сюда написал.
14. DeepVarvar - 21 Сентября, 2011 - 12:37:53 - перейти к сообщению
Не может быть чтобы эта конструкция не сработала.
Как это может быть чтобы return не сработал?
Да ну на... Теперь костылять костылями на костылях?
15. Viper - 21 Сентября, 2011 - 13:18:49 - перейти к сообщению
DeepVarvar это если якорная ссылка.

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

 

Powered by ExBB FM 1.0 RC1