Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.03.2012, 14:04
Новичок на форуме
Отправить личное сообщение для alexmark Посмотреть профиль Найти все сообщения от alexmark
 
Регистрация: 09.03.2012
Сообщений: 2

Прокрутка колесом горизонтального скролла
Добрый день!
Есть скроллбокс. Реализован без наворотов: div-"вложение" помещен в div-"контейнер". Ширина "вложения" превышает ширину "контейнера". Таким образом браузер автоматически возвращает горизонтальный скролл в "контейнере".
По дефолту горизонтальная прокрутка работает при shift+колесо.
Задача: убить shift и оставить только колесо.

Собственные нубовские соображения:
1. Программно имитировать зажатую клавишу shift.
либо
2. Перехватить событие колеса и заставить его прокручивать горизонтальный скролл.
либо
3. Переопределить дефолтный вертикальный скролл на горизонтальный.

Помогите перейти от теоретических соображений к практическим.
Ответить с цитированием
  #2 (permalink)  
Старый 09.03.2012, 14:11
Аватар для Amphiluke
   ☽
Отправить личное сообщение для Amphiluke Посмотреть профиль Найти все сообщения от Amphiluke
 
Регистрация: 07.01.2011
Сообщений: 254

Где-то уже было (или не на этом форуме), поищите по ключевому слову DOMMouseScroll.
Примерно реализация такая:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
    var wDelta = 120;
    function scrollDoc(e) {
        if (!e) e = event;
        if (e.preventDefault) { e.preventDefault(); } else { e.returnValue = false; }
        var __delta = e.wheelDelta || -e.detail;
        __delta /= Math.abs(__delta);
        document.documentElement.scrollLeft -= __delta * wDelta; // FF, Opera, IE
        if (this.attachEvent) return false;
        document.body.scrollLeft -= __delta * wDelta; // Chrome
    }
    window.onload = function() {
        var html = document.documentElement;
        if (html.attachEvent) {
            html.attachEvent("onmousewheel", scrollDoc); // IE and Opera
        } else {
            html.addEventListener("DOMMouseScroll", scrollDoc, false); // FF
            html.addEventListener("mousewheel", scrollDoc, false); // Chrome
        }
    }
</script>
</head>

<body>
    <div style="width:2500px; background:red; height:2500px;"></div>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 09.03.2012, 14:21
Новичок на форуме
Отправить личное сообщение для alexmark Посмотреть профиль Найти все сообщения от alexmark
 
Регистрация: 09.03.2012
Сообщений: 2

Ооо. Спасибо, дружище! ТО что нужно! Премного благодарен.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка и использование значения сдвига горизонтального скролла LostSenSS Events/DOM/Window 5 05.09.2011 18:24
Прокрутка баннеров по времени TTongorovortoto Работа 3 22.04.2011 13:35
прокрутка изображений RGun jQuery 3 08.03.2010 10:03