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 :: Версия для печати :: Плагин jQuery.capScroll [5]
Форумы портала PHP.SU » » Хранилище функций на JavaScript » Плагин jQuery.capScroll

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

61. nerv - 25 Июня, 2013 - 00:22:02 - перейти к сообщению
вариант http://jsfiddle[dot]net/35v38/1/ Закатив глазки
и еще один как настоящий жукверист http://jsfiddle[dot]net/35v38/2/ Ха-ха

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

а что такого? получилась замечательная демагогия беседа Улыбка
62. armancho7777777 - 25 Июня, 2013 - 09:12:25 - перейти к сообщению
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/
63. nerv - 25 Июня, 2013 - 10:22:58 - перейти к сообщению
как обычно я на ночь глядя ерунду сморозил (только ли на ночь? Ниндзя ):
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;
64. armancho7777777 - 25 Июня, 2013 - 10:25:21 - перейти к сообщению
nerv пишет:
можно еще проще:

Не заморачивался, скопировал строку на скорую руку Улыбка
65. tuareg - 25 Июня, 2013 - 10:44:11 - перейти к сообщению
Я рад что всем все стало понятно. На счет решения без плагина.
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 . Так что решать каждому надо самому.
66. armancho7777777 - 25 Июня, 2013 - 12:51:07 - перейти к сообщению
Ан-нет, прикрутил к реальному сайту, всё прыгает и скачет.
Вернул свой способ, с анимацией.
67. tuareg - 25 Июня, 2013 - 13:59:33 - перейти к сообщению
Пример. Можно глянуть? Попробуй, с плагином.
68. nerv - 25 Июня, 2013 - 14:53:16 - перейти к сообщению
tuareg пишет:
Пример. Можно глянуть?

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

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

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

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

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

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

мое мнение в том, что не надо велосипедить, а подключать плагин и на основе этого плагина уже писать
69. armancho7777777 - 25 Июня, 2013 - 15:35:07 - перейти к сообщению
tuareg пишет:
Попробуй, с плагином.

И не подумаю.
Я уже высказался относительно него.
Ни чего нового он мне не предоставит.
И примеров я выкладывать не буду, не до этого.
Не кому ничего не навязываю.
Делайте, как посчитаете нужным.
Тем более что есть 2 варианта.
70. tuareg - 25 Июня, 2013 - 15:45:23 - перейти к сообщению
Так не интересно. Улыбка На счет попробовать с плагином, там писать то ничего не надо. Просто его загрузить на страницу. Однако Надо конечно пример смотреть.
71. armancho7777777 - 25 Июня, 2013 - 15:50:30 - перейти к сообщению
tuareg пишет:
Так же если глянуть исходники плагина видно, что он отлавливает еще несколько событий.

Событие одно, называется по разному в зависимости от браузера.
MozMousePixelScroll и DOMMouseScroll для Firefox,
и mousewheel для остальных.
72. tuareg - 25 Июня, 2013 - 15:56:42 - перейти к сообщению
armancho7777777 так то есть еще и просто "wheel" Но это так к слову.
73. armancho7777777 - 25 Июня, 2013 - 16:11:43 - перейти к сообщению
Всё это одно и тоже событие.
wheel более новое, и в нём есть дополнительные свойства: deltaX, deltaZ -
количество прокрученных пикселей по горизонтали и вертикали.
74. tuareg - 25 Июня, 2013 - 16:14:41 - перейти к сообщению
Я не спорю, что оно одно. Но что отлавливает jquery через on('mousewheel DOMMouseScroll')
Может ему чего то не хватает.
75. armancho7777777 - 25 Июня, 2013 - 16:20:32 - перейти к сообщению
tuareg пишет:
Может ему чего то не хватает.

В данном случае хватает.
Отрицательная и положительная дельта в зависимости от направления прокрутки.

 

Powered by ExBB FM 1.0 RC1