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



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


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


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




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)



-----
Болтовня ничего не стоит. Покажите мне код.
-Linus Torvalds
 
 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



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


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


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




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

Не заморачивался, скопировал строку на скорую руку Улыбка


-----
Болтовня ничего не стоит. Покажите мне код.
-Linus Torvalds
 
 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



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


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


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




Ан-нет, прикрутил к реальному сайту, всё прыгает и скачет.
Вернул свой способ, с анимацией.


-----
Болтовня ничего не стоит. Покажите мне код.
-Linus Torvalds
 
 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



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


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


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




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

И не подумаю.
Я уже высказался относительно него.
Ни чего нового он мне не предоставит.
И примеров я выкладывать не буду, не до этого.
Не кому ничего не навязываю.
Делайте, как посчитаете нужным.
Тем более что есть 2 варианта.


-----
Болтовня ничего не стоит. Покажите мне код.
-Linus Torvalds
 
 Top
tuareg
Отправлено: 25 Июня, 2013 - 15:45:23
Post Id


Участник


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


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




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



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


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


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




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

Событие одно, называется по разному в зависимости от браузера.
MozMousePixelScroll и DOMMouseScroll для Firefox,
и mousewheel для остальных.


-----
Болтовня ничего не стоит. Покажите мне код.
-Linus Torvalds
 
 Top
tuareg
Отправлено: 25 Июня, 2013 - 15:56:42
Post Id


Участник


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


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




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



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


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


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




Всё это одно и тоже событие.
wheel более новое, и в нём есть дополнительные свойства: deltaX, deltaZ -
количество прокрученных пикселей по горизонтали и вертикали.


-----
Болтовня ничего не стоит. Покажите мне код.
-Linus Torvalds
 
 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



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


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


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




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

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


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB