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 :: Плагин jQuery.capScroll [5]

 PHP.SU

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


 Страниц (8): « 1 2 3 4 [5] 6 7 8 »   

> Описание: Захват скролла целевого объекта.
nerv
Отправлено: 25 Июня, 2013 - 00:22:02
Post Id



Посетитель


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


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




вариант http://jsfiddle[dot]net/35v38/1/ Закатив глазки
и еще один как настоящий жукверист http://jsfiddle[dot]net/35v38/2/ Ха-ха

armancho7777777 пишет:
nerv, да думаешь, мне охота было писать всё это, заняться нечем.

а что такого? получилась замечательная демагогия беседа Улыбка

(Отредактировано автором: 25 Июня, 2013 - 00:25:53)



-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
armancho7777777 Супермодератор
Отправлено: 25 Июня, 2013 - 09:12:25
Post Id



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


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


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




tuareg, вот почему у меня глючил этот вариант Радость
tuareg пишет:
Тут ошибка есть delta иногда бывает больше 1 и меньше -1 т.е правильный вариант

Надо было просто проверять на соответствие меньше, или больше нуля, а я проверял на равенство -1 и 1 Радость
Я дельту алертом выводил, а надо было в console.log().
То есть всё что надо было, это написать:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. elements.on('mousewheel DOMMouseScroll', function(e){
  3.                                
  4.         e.stopPropagation();
  5.         delta = (e.originalEvent.wheelDelta) ? e.originalEvent.wheelDelta / 120 : e.originalEvent.detail / -3;
  6.        
  7.         return !(delta < 0 ? this.scrollHeight - this.scrollTop - this.offsetHeight <= 0 : this.scrollTop === 0);
  8.                
  9. });
  10.  


И плагин mousewheel не нужен.
Свой плагинчик переписал тоже.
Пусть будет такой метод в наличии.
http://jquery[dot]ar-site[dot]ru/plugins/capScroll/

(Отредактировано автором: 25 Июня, 2013 - 10:03:26)

 
 Top
nerv
Отправлено: 25 Июня, 2013 - 10:22:58
Post Id



Посетитель


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


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




как обычно я на ночь глядя ерунду сморозил (только ли на ночь? Ниндзя ):
armancho7777777 пишет:
CODE (javascript):
скопировать код в буфер обмена
  1. return !(delta < 0 ? this.scrollHeight - this.scrollTop - this.offsetHeight <= 0 : this.scrollTop === 0);

можно еще проще:
CODE (javascript):
скопировать код в буфер обмена
  1. return delta < 0 ? this.scrollHeight - this.scrollTop - this.offsetHeight > 0 : this.scrollTop !== 0;


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
armancho7777777 Супермодератор
Отправлено: 25 Июня, 2013 - 10:25:21
Post Id



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


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


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




nerv пишет:
можно еще проще:

Не заморачивался, скопировал строку на скорую руку Улыбка
 
 Top
tuareg
Отправлено: 25 Июня, 2013 - 10:44:11
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




Я рад что всем все стало понятно. На счет решения без плагина.
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. elements.on('mousewheel DOMMouseScroll', function(e){
  3.                                
  4.         e.stopPropagation();
  5.         delta = (e.originalEvent.wheelDelta) ? e.originalEvent.wheelDelta / 120 : e.originalEvent.detail / -3;
  6.        
  7.         return !(delta < 0 ? this.scrollHeight - this.scrollTop - this.offsetHeight <= 0 : this.scrollTop === 0);
  8. });
  9.  

Не знаю, честно. Я приводил ссылку на javascript.ru Там как раз про это событие. Так же если глянуть исходники плагина видно, что он отлавливает еще несколько событий. Плюс дает вариант узнать какой скролл произошел deltaX/deltaY . Так что решать каждому надо самому.
 
 Top
armancho7777777 Супермодератор
Отправлено: 25 Июня, 2013 - 12:51:07
Post Id



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


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


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




Ан-нет, прикрутил к реальному сайту, всё прыгает и скачет.
Вернул свой способ, с анимацией.
 
 Top
tuareg
Отправлено: 25 Июня, 2013 - 13:59:33
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




Пример. Можно глянуть? Попробуй, с плагином.
 
 Top
nerv
Отправлено: 25 Июня, 2013 - 14:53:16
Post Id



Посетитель


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


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




tuareg пишет:
Пример. Можно глянуть?

присоединяюсь

tuareg пишет:
Я рад что всем все стало понятно

вообще-то я об этом с самого начала говорил )

tuareg пишет:
Так же если глянуть исходники плагина видно, что он отлавливает еще несколько событий

вообще-то я об этом с самого начала говорил )

tuareg пишет:
Я рад что всем все стало понятно

мое мнение в том, что не надо велосипедить, а подключать плагин и на основе этого плагина уже писать

(Отредактировано автором: 25 Июня, 2013 - 14:55:22)



-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
armancho7777777 Супермодератор
Отправлено: 25 Июня, 2013 - 15:35:07
Post Id



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


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


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




tuareg пишет:
Попробуй, с плагином.

И не подумаю.
Я уже высказался относительно него.
Ни чего нового он мне не предоставит.
И примеров я выкладывать не буду, не до этого.
Не кому ничего не навязываю.
Делайте, как посчитаете нужным.
Тем более что есть 2 варианта.
 
 Top
tuareg
Отправлено: 25 Июня, 2013 - 15:45:23
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




Так не интересно. Улыбка На счет попробовать с плагином, там писать то ничего не надо. Просто его загрузить на страницу. Однако Надо конечно пример смотреть.
 
 Top
armancho7777777 Супермодератор
Отправлено: 25 Июня, 2013 - 15:50:30
Post Id



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


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


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




tuareg пишет:
Так же если глянуть исходники плагина видно, что он отлавливает еще несколько событий.

Событие одно, называется по разному в зависимости от браузера.
MozMousePixelScroll и DOMMouseScroll для Firefox,
и mousewheel для остальных.
 
 Top
tuareg
Отправлено: 25 Июня, 2013 - 15:56:42
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




armancho7777777 так то есть еще и просто "wheel" Но это так к слову.
 
 Top
armancho7777777 Супермодератор
Отправлено: 25 Июня, 2013 - 16:11:43
Post Id



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


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


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




Всё это одно и тоже событие.
wheel более новое, и в нём есть дополнительные свойства: deltaX, deltaZ -
количество прокрученных пикселей по горизонтали и вертикали.
 
 Top
tuareg
Отправлено: 25 Июня, 2013 - 16:14:41
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




Я не спорю, что оно одно. Но что отлавливает jquery через on('mousewheel DOMMouseScroll')
Может ему чего то не хватает.
 
 Top
armancho7777777 Супермодератор
Отправлено: 25 Июня, 2013 - 16:20:32
Post Id



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


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


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




tuareg пишет:
Может ему чего то не хватает.

В данном случае хватает.
Отрицательная и положительная дельта в зависимости от направления прокрутки.
 
 Top
Страниц (8): « 1 2 3 4 [5] 6 7 8 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранилище функций на JavaScript »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB