November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Monday, February 22nd, 2010 04:55 pm

Отдельной рубрики про верстальщиков у меня нет, и вообще я не настоящий сварщик, поэтому пусть будет в задачках для сисадминов.

Сегодня один товарищ в одном совершенно непрофильном сообществе задал интересный вопрос: как сделать, чтобы колёсико мышки осуществляло  на широком сайте _горизонтальный_ скроллинг?

Я немножко погуглил и сделал так. Может, это как-то проще делается?

На фотографии можно внимания не обращать, я взял первые попавшиеся.

Оригинал этой записи. Комментировать можно тут или там.

Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме

Monday, February 22nd, 2010 04:09 pm (UTC)
две немаленькие библиотеки для одного-единственного действия. перебор, по-моему.

а фотографии - это 31 декабря, трудолюбивые ирландцы спешат на работу.
Monday, February 22nd, 2010 04:20 pm (UTC)
две немаленькие библиотеки для одного-единственного действия. перебор, по-моему.
Но зачем бибилиотеки-то?! То, что ты сделал с помощью этих библиотек пишется не в одну, но в три строчки, без библиотек вообще.
Monday, February 22nd, 2010 04:22 pm (UTC)
вот я и спрашиваю: как?
Monday, February 22nd, 2010 04:29 pm (UTC)
Ну, почитай про DOM уже наконец :)
Примерно так (давно не брал в руки шашек, могу наврать в тонких деталях):

var b = document.getElementByName('body');
if(b.attachEvent) { // Bloody IE
 b.attachEvent(
   'onmousewheel'
   function(ev, data) {
    b.scrollLeft -= data * 30;
    ev.preventDefault();
   }
 );
);
} else if(b.addEventListener) { // Saint w3c
 b.addEventListener(
   'mousewheel', 
   function(ev, data) {
    this.scrollLeft -= data * 30;
    ev.preventDefault();
   },
   false
 );
} else { // Something strange and old
 b.onmousewheel = function(ev, data) {
  b.scrollLeft -= data * 30;
  ev.preventDefault();
 };
}


Во всех случаях кроме W3C приходится делать замыкание, так как this ни в IE ни в Legacy правиьно в обработчикх сообщений не работает.
Monday, February 22nd, 2010 04:30 pm (UTC)
Возражение что это не 3 строчки не принимается, так как у меня форматирование красивее чем у тебя :)
Monday, February 22nd, 2010 04:33 pm (UTC)
А, я таки нарвал с data в mousewheel-евенте, там таки хитрее. Но не сильно:

http://adomas.org/javascript-mouse-wheel/

Вот тут всё написано.
Monday, February 22nd, 2010 04:34 pm (UTC)
спасибо. я просто не знал, по каким ключевым словам правильно искать, я же не настоящий сварщик :)
Monday, February 22nd, 2010 04:38 pm (UTC)
Это ссылка из заголовка использованной тобой библиотеки :)
Я полез код читать и увидел сразу. И, да, оказывается тонкостей между бразерами таки больше (в данном конкретном случае) чем я думал. Про разную обраюботку сообщений я помнил, а вот про разную реализацию этого самого маусвила — нет.