Отключить скролл мышкой во время анимации окна
Привет
Подскажите как сделать такую штуку как здесь: http://community.saucony.com/kinvara3/ а именно как сделать, что бы когда сработало событие после которого мы плавно передвигаемся к следующему сладу колесико мышки не работало, так сказать. Просто переход по слайдам сделать не сложно, но если во время анимации начать крутить колесико то все дергается, ужос в общем.) Подскажите пожалуйста.) |
<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>
|
devote,
клево, а как вернуть в обратное состояние что бы можно было прокручивать мышкой (жаль я не знаю английский надо бы выучить что бы спецификации читать) |
Цитата:
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' ) ); // разблокировать скролл
|
devote,
спасибо, а то я пишу и не выходит :lol:
if ( elem.removeEventListener ) {
elem.removeEventListener( "DOMMouseScroll", elem.onmousewheel = function( e ) {
e.preventDefault();
}, false );
} else {
elem.onmousewheel = function( e ) {
window.event.returnValue = false;
}
}
|
Спасибо.
А как сделать что бы эта функция вызывалась только тогда, когда прокрутка идет колесиком мыши, а когда тянут за скроллбар не вызывалась?. |
Вот, например, если я хочу что бы экран был всегда в самом верху сайта.
я пишу: var scrollHandler = function(e){ $(window).scrollTop('0px'); } $(window).scroll(scrollHandler); Окно не скроллиться, почти...происходит какой-то рывок, все "мигнуло", а потом окно понимает что не надо ни куда рыпаться.) Вот как избавиться от этого "мигания". |
ilya_,
А нахрена скриптом когда можно css position:fixed; плюс css анимацию? А стиль данного элемента подключать по необходимости уже скриптами ? |
Можно подробнее про то как position fixed может мне помочь?
|
ilya_,
тем может помочь что при прокрутке элемент не двигается
<style>
body{
height:1000px;
}
</style>
<div style='position:fixed'>блаблаблаблаблаблаблаблаблаблаблабла я див</div>
|
| Часовой пояс GMT +3, время: 13:44. |