Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.10.2014, 18:01
Аспирант
Отправить личное сообщение для Georrg Посмотреть профиль Найти все сообщения от Georrg
 
Регистрация: 06.08.2014
Сообщений: 58

определить что scroll закончился
Как определить, что горизонтальный скролл дошел до упора правой или левой границы?
Ответить с цитированием
  #2 (permalink)  
Старый 28.10.2014, 18:14
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

левая - window.scrollX == 0
правая - window.document.body.clientWidth - window.scrollX - window.innerWidth == 0

в старых браузерах чуть иначе.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 28.10.2014, 18:23
Аспирант
Отправить личное сообщение для Georrg Посмотреть профиль Найти все сообщения от Georrg
 
Регистрация: 06.08.2014
Сообщений: 58

Спасибо большое, попробовал, не помогло. Забыл уточнить, что скролл вложенные, то есть, существует определенный контент:

там, я нашел вот такой вот код:
dhtmlxEvent(this.$scroll_hor, "scroll", function() {
        if (gantt._touch_scroll_active) return;
        var left = gantt.$scroll_hor.scrollLeft;
        console.log(left);
        gantt.scrollTo(left);
    });

Вызывается данный обработчик при любом перетаскивании горизонтального скролла. Левая граница left =0, правая left = 910. Однако константные выражения использовать я бы не стал. Может еще что подскажите?
Ответить с цитированием
  #4 (permalink)  
Старый 28.10.2014, 18:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109


<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

 div{
   position: fixed;
   display: inline-block;
 }
 body, html{
 min-width: 2000px;
 position: relative;

 }
  </style>

</head>

<body>
<div>?</div>
<script>
 window.onscroll = function ()
{
var div = document.querySelector('div'),
scrollWidth = document.documentElement.scrollWidth,
clientWidth = document.documentElement.clientWidth,
maxScroll = Math.max(scrollWidth, clientWidth) - document.documentElement.clientWidth,
scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;
div.innerHTML =(scrollLeft == 0 || scrollLeft == maxScroll) ?   scrollLeft ? 'max' : 'min' : scrollLeft;
}
</script>
</body>

</html>
Ответить с цитированием
  #5 (permalink)  
Старый 28.10.2014, 19:10
Аспирант
Отправить личное сообщение для Georrg Посмотреть профиль Найти все сообщения от Georrg
 
Регистрация: 06.08.2014
Сообщений: 58

Спасибо, что привели пример, но у меня(google chrome) он работает верно, только при минимуме, а максимум, так и остается 1119.
Ответить с цитированием
  #6 (permalink)  
Старый 28.10.2014, 19:22
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Georrg
Может еще что подскажите?
Принцип тот же, только вместо scrollX будет element.scrollLeft, вместо document.body.clientWidth будет element.scrollWidth, вместо window.innerWidth будет element.offsetWidth
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить что input в фокусе? BorodinKO Общие вопросы Javascript 5 11.01.2013 23:51
Определить что скролят страницу? PAMAC Общие вопросы Javascript 2 23.02.2011 16:59
Как определить что страница загружена не полностью? PAMAC Общие вопросы Javascript 2 22.02.2011 17:59
Как (эффективно) изучать JavaScript? JSTalker Общие вопросы Javascript 33 23.12.2010 03:13
Zend и Pear для нуба mycoding Серверные языки и технологии 52 13.12.2010 18:32