Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.11.2013, 14:58
Кандидат Javascript-наук
Отправить личное сообщение для lammeR Посмотреть профиль Найти все сообщения от lammeR
 
Регистрация: 15.01.2010
Сообщений: 138

Как узнать длину самого скроллбара?
Привет всем.
Собственно вопрос в заголовке.
Уточню, мне необходимо узнать ширину самого ползунка, а не его прокручиваемой области. Помогите, плз. Можно jquery, кому как удобно.

HTML-код:
<div style="width:200px; overflow-x:scroll; white-space:nowrap;">
  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!!!!!!!!!!!!!!!!!!!!!!!!
</div><br />

<input type="button" value="Длина скроллбара" />
Изображения:
Тип файла: png scrollbar.png (4.0 Кб, 6 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 28.11.2013, 16:09
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

<div style="width:200px; overflow-x:scroll; white-space:nowrap;">
  	<div>
		AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!!!!!!!!!!!!!!!!!!!!!!!!
	</div>
</div>


И вам необходимо всего лишь узнать ширину блока который внутри.
__________________
.
Ответить с цитированием
  #3 (permalink)  
Старый 28.11.2013, 16:23
Кандидат Javascript-наук
Отправить личное сообщение для lammeR Посмотреть профиль Найти все сообщения от lammeR
 
Регистрация: 15.01.2010
Сообщений: 138

Skipp, offsetWidth дочернего дива выводит 200.
Ответить с цитированием
  #4 (permalink)  
Старый 28.11.2013, 17:15
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

var div = document.getElementById('myDiv');
alert( div.scrollWidth - parseFloat(div.style.width) );
Ответить с цитированием
  #5 (permalink)  
Старый 28.11.2013, 17:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

lammeR,
длину ползунка можно узнать у разработчиков браузеров а вот толщину вычислить можно ...
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">

  <title>datepicker demo</title>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
</head>
<body>
<div style="width:200px; overflow-x:scroll; white-space:nowrap; border: #FF0000 1px solid" id="test">
  <div style=" border: #0000FF 1px solid">
		AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!!!!!!!!!!!!!!!!!!!!!!!!
	</div>
</div><br />

<input type="button" value="Длина скроллбара"  />

<script>
alert($('#test').height()-$('#test div').outerHeight());
</script>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 28.11.2013, 17:45
Кандидат Javascript-наук
Отправить личное сообщение для lammeR Посмотреть профиль Найти все сообщения от lammeR
 
Регистрация: 15.01.2010
Сообщений: 138

Сие есть печалька.... . Тогда поменяю вопрос: как, не зная ширины скроллбара, можно выставить его строго по центру без использования мыши? Интересует теория, а не реализация.

Последний раз редактировалось lammeR, 28.11.2013 в 18:01.
Ответить с цитированием
  #7 (permalink)  
Старый 28.11.2013, 18:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

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

Сообщение от lammeR
Сие есть печалька....
Сообщение от lammeR
Тогда поменяю вопрос
Я бы поменял его на такой: Как прокрутить элемент на половину (чтобы середина содержимого оказалась в середине контейнера). А поцизионирование скроллбара - это всего лишь следствие.

<!DOCTYPE html>
<div style="width:200px; overflow-x:scroll; white-space:nowrap; border: #FF0000 1px solid" id="test">
  <div style=" border: #0000FF 1px solid">
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!!!!!!!!!!!!!!!!!!!!!!!!
    </div>
</div>
<script>
    var outer = document.querySelector('div');
    outer.scrollLeft = (outer.scrollWidth - outer.offsetWidth) / 2;
</script>
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #9 (permalink)  
Старый 28.11.2013, 20:59
Кандидат Javascript-наук
Отправить личное сообщение для lammeR Посмотреть профиль Найти все сообщения от lammeR
 
Регистрация: 15.01.2010
Сообщений: 138

danik.js, и действительно, я чего-то отделил скроллбар от содержимого при постановке вопроса. Спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по jquery - как узнать какой тэг? APL Общие вопросы Javascript 7 09.06.2016 15:22
Как узнать какой скрипт вызывается при клике по эленету (если это прямо не прописано) Dmitriy Komar Events/DOM/Window 4 08.12.2011 17:21
Массивы. Как узнать ключ, зная значение? jsuse Общие вопросы Javascript 4 24.11.2011 19:03
Как узнать подключен ли JavaScript у пользователя? frost18 Элементы интерфейса 1 26.10.2011 17:16
Как узнать о том, что флэш уже загрузился. Snipe Общие вопросы Javascript 4 29.01.2009 11:21