Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.06.2012, 13:18
Новичок на форуме
Отправить личное сообщение для ilya_ Посмотреть профиль Найти все сообщения от ilya_
 
Регистрация: 02.05.2012
Сообщений: 9

Отключить скролл мышкой во время анимации окна
Привет
Подскажите как сделать такую штуку как здесь:
http://community.saucony.com/kinvara3/
а именно как сделать, что бы когда сработало событие после которого мы плавно передвигаемся к следующему сладу колесико мышки не работало, так сказать. Просто переход по слайдам сделать не сложно, но если во время анимации начать крутить колесико то все дергается, ужос в общем.)
Подскажите пожалуйста.)
Ответить с цитированием
  #2 (permalink)  
Старый 27.06.2012, 13:35
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

<div id="mydiv" style="width: 100px; height: 100px; overflow: auto">
    <div>Много данных</br>
        Много данных</br>
        Много данных</br>
        Много данных</br>
        Много данных</br>
        Много данных</br>
        Много данных</br>
        Много данных</br>
    </div>
</div>
<script type="text/javascript">

var elem = document.getElementById( 'mydiv' ); // элемент у которого нужно заблокировать скролл

if ( elem.addEventListener ) {
    elem.addEventListener( "DOMMouseScroll", elem.onmousewheel = function( e ) {
       e.preventDefault();
    }, false );
} else {
    elem.onmousewheel = function( e ) {
       window.event.returnValue = false;
    }
}
</script>
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 27.06.2012, 17:13
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

devote,
клево, а как вернуть в обратное состояние что бы можно было прокручивать мышкой (жаль я не знаю английский надо бы выучить что бы спецификации читать)
Ответить с цитированием
  #4 (permalink)  
Старый 27.06.2012, 17:36
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Dim@
а как вернуть в обратное состояние что бы можно было прокручивать мышкой
ну можно написать спец функции типа:
function lockScroll( elem ) {
    if ( elem.addEventListener ) {
        elem.addEventListener( "DOMMouseScroll", elem.onmousewheel = function( e ) {
            e.preventDefault();
        }, false );
    } else {
        elem.onmousewheel = function( e ) {
           window.event.returnValue = false;
        }
    }
}

function unlockScroll( elem ) {
    if ( elem.removeEventListener ) {
        elem.removeEventListener( "DOMMouseScroll", elem.onmousewheel, false );
        elem.onmousewheel = null;
    } else {
        elem.onmousewheel = null;
    }
}

lockScroll( document.getElementById( 'mydiv' ) ); // заблокировать скролл
unlockScroll( document.getElementById( 'mydiv' ) ); // разблокировать скролл
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 27.06.2012, 17:52
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

devote,
спасибо, а то я пишу и не выходит
if ( elem.removeEventListener ) {
   elem.removeEventListener( "DOMMouseScroll", elem.onmousewheel = function( e ) {
    e.preventDefault();
   }, false );
  } else {
   elem.onmousewheel = function( e ) {
    window.event.returnValue = false;
   }
  }
Ответить с цитированием
  #6 (permalink)  
Старый 10.07.2012, 14:24
Новичок на форуме
Отправить личное сообщение для ilya_ Посмотреть профиль Найти все сообщения от ilya_
 
Регистрация: 02.05.2012
Сообщений: 9

Спасибо.
А как сделать что бы эта функция вызывалась только тогда, когда прокрутка идет колесиком мыши, а когда тянут за скроллбар не вызывалась?.
Ответить с цитированием
  #7 (permalink)  
Старый 10.07.2012, 14:59
Новичок на форуме
Отправить личное сообщение для ilya_ Посмотреть профиль Найти все сообщения от ilya_
 
Регистрация: 02.05.2012
Сообщений: 9

Вот, например, если я хочу что бы экран был всегда в самом верху сайта.
я пишу:

var scrollHandler = function(e){
$(window).scrollTop('0px');
}

$(window).scroll(scrollHandler);

Окно не скроллиться, почти...происходит какой-то рывок, все "мигнуло", а потом окно понимает что не надо ни куда рыпаться.) Вот как избавиться от этого "мигания".
Ответить с цитированием
  #8 (permalink)  
Старый 10.07.2012, 15:12
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

ilya_,
А нахрена скриптом когда можно css position:fixed; плюс css анимацию?

А стиль данного элемента подключать по необходимости уже скриптами ?
Ответить с цитированием
  #9 (permalink)  
Старый 10.07.2012, 15:22
Новичок на форуме
Отправить личное сообщение для ilya_ Посмотреть профиль Найти все сообщения от ilya_
 
Регистрация: 02.05.2012
Сообщений: 9

Можно подробнее про то как position fixed может мне помочь?
Ответить с цитированием
  #10 (permalink)  
Старый 10.07.2012, 15:51
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

ilya_,
тем может помочь что при прокрутке элемент не двигается
<style>
body{
 height:1000px;
}
</style>
<div style='position:fixed'>блаблаблаблаблаблаблаблаблаблаблабла я див</div>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отмена действия события во время выполнения анимации gunsoy Общие вопросы Javascript 2 12.06.2012 13:27
JQuery плагин lightbox: На время отключить срабатывание senseysensor jQuery 2 23.12.2010 10:28
время загрузки window.open окна Oiron Events/DOM/Window 2 17.09.2010 14:10
Как сделать? При выходе мышкой за пределы окна браузера, начинает грузится другая стр alb Events/DOM/Window 13 01.09.2010 12:19
Скролл окна при добавлении контента "сверху"" yaneblog Events/DOM/Window 0 22.01.2010 23:00