Событие только для горизонтального скрола
Подскажите пожалуйста как прописать условие только для горизонтального скролла?
Т.е. мне нужно добавить класс для div только в том случае если я меняю горизонтальный скролл но никак не вертикальный P.S ВСЕМ ПОМОГАЮЩИМ ПОДНИМАЮ КАРМУ -) |
<!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=windows-1251" /> <title>Документ без названия</title> <style type="text/css"> .scroll { background: #222; color: #DDD; height: 100px; overflow: auto; width: 100px; } </style> </head> <body> <div class="scroll"> JavaScript является объектно-ориентированным языком, но используемое в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными класс-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания — что придаёт языку дополнительную гибкость. </div> <script type="text/javascript"> window.onload = function() { var elem = document.querySelector('.scroll') || document.getElementsByClassName('scroll')[0], scroll = 0; elem.onscroll = function() { if(this.scrollLeft != scroll) { scroll = this.scrollLeft; alert('Scroll'); } } } </script> </body> </html> |
Отлично. То что нужно. Огромное спасибо!
|
Цитата:
|
Яростный Меч, querySelector есть в таком старичке как IE8. Этого вполне достаточно для 99% сайтов.
Ruslan_xDD, назови мне браузер где есть getElementsByClassName но нету querySelector |
Еще вопрос... Как прописать правильно, если позиция вертикального скролла от нижней границы меньше 100px?
|
danik.js, ну, а вдруг :) Перестраховаться никогда не помешает. :)
Яростный Меч, точно. document.querySelector ? document.querySelector('.scroll') : document.getElementsByClassName('scroll'); Хотя мне кажется, что document.getElementsByClassName должна работать быстрее, чем query. |
<!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=windows-1251" /> <title>Документ без названия</title> <style type="text/css"> .scroll { background: #222; color: #DDD; height: 100px; overflow: auto; width: 100px; } </style> </head> <body> <div class="scroll"> JavaScript является объектно-ориентированным языком, но используемое в языке прототипирование обуславливает отличия в работе с объектами по сравнению с традиционными класс-ориентированными языками. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания — что придаёт языку дополнительную гибкость. </div> <script type="text/javascript"> window.onload = function() { var elem = document.getElementsByClassName('scroll')[0], scroll = 0; elem.onscroll = function() { if(this.scrollLeft != scroll) { scroll = this.scrollLeft; alert('Scroll'); } else if(this.scrollTop > this.scrollHeight - 100) { alert('Scroll Bottom < 100px'); } } } </script> </body> </html> |
Поправил код, ошибся кое-где.
|
Цитата:
Цитата:
Цитата:
И где ты берешь такие допотопные шаблоны? Доктайп полу-квиркнутый, какое то подобие XHTML, с кучей лишнего хлама (неймспейс, обязательные атрибуты, хотя их дефолтные значения очевидны донельзя), win1251 кодировка. Мне бы было стыдно это постить :) |
Часовой пояс GMT +3, время: 17:25. |