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 :: Связать якорь тега [A] и [SELECT]

 PHP.SU

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


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

> Описание: Необходимо чтобы при скроллинге, менялось значение в SELECT
dima_si
Отправлено: 29 Августа, 2016 - 14:13:58
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Март 2013  


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




Уважаемые форумчане, уверен, что кто-то из вас уже сталкивался с подобной задачей. На странице имеется список SELECT, который в свою очередь содержит все якоря, которые раскиданы по странице. При выборе селекта настроен переход на нужный якорь. Необходимо настроить обратное взаимодействие, когда при скроллинге будет меняться значение SELECT'a в соответствии с проходящем якорем. Использую JQuery, т.ч. можно и на нем. Кто в теме пожалуйста подскажите, как это можно реализовать.
Прикреплено изображение (Нажмите для увеличения)
select-jakor.jpg
 
 Top
OrmaJever
Отправлено: 29 Августа, 2016 - 17:05:52
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




CODE (javascript):
скопировать код в буфер обмена
  1. $(document).on('scroll', function(e) {
  2.   var s = $(document).scrollTop();
  3.   if( s > $('a[name=jakor3]').offsetTop() ) {
  4.      $('option[value=jakor3]').attr('selected', 'selected');
  5.   } else if( s > $('a[name=jakor2]').offsetTop() ) {
  6.      $('option[value=jakor2]').attr('selected', 'selected');
  7.   } else if( s > $('a[name=jakor1]').offsetTop() ) {
  8.      $('option[value=jakor1]').attr('selected', 'selected');
  9.   }
  10. })

Я не проверял, мог даже ошибиться с названиями методов jQuery, но логикая я думаю понятна

(Отредактировано автором: 29 Августа, 2016 - 17:06:58)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
armancho7777777 Супермодератор
Отправлено: 29 Августа, 2016 - 18:53:39
Post Id



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


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


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




OrmaJever пишет:
мог даже ошибиться с названиями методов jQuery
OrmaJever пишет:
offsetTop()

offset().top
 
 Top
dima_si
Отправлено: 31 Августа, 2016 - 09:57:11
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Март 2013  


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




armancho7777777, OrmaJever спасибо за пинок в нужном направлении, готовый вариант кода выглядит следующим образом (возможно кому-то и пригодится):

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.         var olds=$(document).scrollTop();
  3.         $(document).on('scroll', function(e) {
  4.                 $('#scrl').html('');
  5.                 var s = $(document).scrollTop();                                       
  6.                 var name='';
  7.                 if(olds<s){
  8.                         $("a[name]").each(function(){
  9.                                 if(s>=$(this).offset().top) {name=$(this).attr('name');}
  10.                                
  11.                                 });
  12.                 }
  13.                 else{
  14.                         var DelaemIveriyu = $("a[name]").get().reverse();
  15.                         $(DelaemIveriyu).each(function(){
  16.                                 if(s<=$(this).offset().top){name=$(this).attr('name');}
  17.                         });
  18.                 }
  19.                 $('SELECT option').each(function(){
  20.                         if($(this).attr('value')=='#'+name)this.selected=true;
  21.                         else this.selected=false;                      
  22.                 });
  23.                 olds=s;
  24.         });
  25.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 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