Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Горизонтальная прокрутка


Автор: manson 13.1.2011, 13:15
Добрый день! Может у кого есть ссылка на готовый пример для гаризонтальной прокрутки колесом мыши?
Погуглил, но пока не могу решить проблему... заранее благодарен...

Автор: neoks 13.1.2011, 18:18
В css пишеш overflof:auto, но тут появляются горизонтальные и вертикальный полосы прокрутки.
Если тебе не подходит, значит толь ка скрипт.
Хотя и не обязательно скрипт, все можно решить и в css, недавно я себе делал такое и обошелся без скрипта. smile 

Автор: Amphiluke 13.1.2011, 20:36
neoks, ИМХО, вы невнимательно прочли сообщение ТС. Он хочет прокручивать страницу колесом мыши по горизонтали. CSS-ом тут не отделаешься.

Вот пример.
Код

<!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">
    window.onload = function() {
        var html = document.documentElement;
        if (html.attachEvent) {
            html.attachEvent("onmousewheel", function() { event.returnValue = false; html.scrollLeft -= event.wheelDelta; });
        } else {
            html.addEventListener("DOMMouseScroll", function(e) { e.preventDefault(); html.scrollLeft += e.detail; }, false);
        }
    }
</script>
</head>

<body>
    <div style="width:2500px; background:red; height:75px;"></div>
</body>
</html>

Автор: neoks 13.1.2011, 22:21
Упс не увидел, бывает  smile 

Автор: manson 17.1.2011, 15:33
Amphiluke, спасибо, толковый пример. Вот только с кроссбраузерностью непонятно пока выходит. В осле, опере - работает класно. В мозиле - скролится очень медленно (то есть нужно долго крутить чтоб хоть чутть здвинуться). А вот в хроме походу ваще не работает.

Автор: Amphiluke 17.1.2011, 21:19
Вот вам типа кроссбраузерный вариант. smile 
Код

<!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>

Автор: manson 18.1.2011, 13:28
да, реально кроссбраузерный. Amphiluke, спасибо. По сравнению с тем что выдает гугл, ваш вариант на голову выше...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)