Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 15.10.2015, 23:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Lemme
getBoundingClientRect().y
это что?
наверно надо сначала показать блок two потом этот блок проскролить к нужному li
Ответить с цитированием
  #12 (permalink)  
Старый 15.10.2015, 23:24
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Цитата:
наверно надо сначала показать блок two.
предполагается, что блок two видим. Поэтому скролил его

p.s Из за этого Вы посчитали код бредом?

Последний раз редактировалось Lemme, 15.10.2015 в 23:27.
Ответить с цитированием
  #13 (permalink)  
Старый 15.10.2015, 23:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Lemme,
я непонимаю как вы его скролите и что такое getBoundingClientRect().y
Ответить с цитированием
  #14 (permalink)  
Старый 15.10.2015, 23:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
        body{
          height: 1500px;
        }

		#two {
		    margin-top: 445px;
			width: 100%;
			height: 150px;
			overflow: auto;
		}
		li {
			display: block;
			height: 150px;
			color: #fff;
			text-align: center;
		}
	</style>
</head>
<body>
	<div id="two">
   	 	<ul>
     	   		<li style="background-color: tomato">1</li>
     	   		<li style="background-color: purple">2</li>
     	   		<li style="background-color: blue">3</li>
   	 	</ul>
	</div>
	<script>
		function showItem(x) {
			var two = document.getElementById('two'),
		        item = two.querySelectorAll('li')[x-1];
                item && item.scrollIntoView()
		}
		showItem(3);
	</script>
</body>
</html>
Ответить с цитированием
  #15 (permalink)  
Старый 15.10.2015, 23:37
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

рони, позиция элемента - аля offsetTop
Цитата:
scrollIntoView()
Спасибо, про этот метод не знал, может когда-нибудь пригодится
Ответить с цитированием
  #16 (permalink)  
Старый 15.10.2015, 23:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

или так
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
        body{
          height: 1500px;
        }

		#two {
		
		    margin-top: 445px;
			width: 100%;
			height: 150px;
			overflow: auto;
		}
		li {
			display: block;
			height: 150px;
			color: #fff;
			text-align: center;
		}
	</style>
</head>
<body>
	<div id="two">
   	 	<ul>
     	   		<li style="background-color: tomato">1</li>
     	   		<li style="background-color: purple">2</li>
     	   		<li style="background-color: blue">3</li>
   	 	</ul>
	</div>
	<script>
		function showItem(x) {
			var two = document.getElementById('two'),
		        item = two.querySelectorAll('li')[x-1];
                window.scrollTo(0,two.getBoundingClientRect().top)
                two.scrollTop =  item.getBoundingClientRect().top
		}
	  window.onload = function() {
      showItem(3);
}
	</script>
</body>
</html>

Последний раз редактировалось рони, 16.10.2015 в 00:44.
Ответить с цитированием
  #17 (permalink)  
Старый 15.10.2015, 23:50
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

рони, ну, ТС не уточнил, на счет видимости блока two, поэтому я не скроллил window.
Ответить с цитированием
  #18 (permalink)  
Старый 15.10.2015, 23:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Lemme,
вы так и не ответили что такое что такое getBoundingClientRect().y , на всякий случай: оба ваших варианта у меня не работают.
Ответить с цитированием
  #19 (permalink)  
Старый 16.10.2015, 00:05
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Цитата:
вы так и не ответили что такое что такое getBoundingClientRect().y
Ответил.
Цитата:
рони, позиция элемента - аля offsetTop
Цитата:
у меня не работают
Ага, проверил в хроме, там нет свойст x, y.... А в лисе есть.

DOMRect { x: 48, y: 174, width: 608, height: 500, top: 174, right: 656, bottom: 674, left: 48 }
Ответить с цитированием
  #20 (permalink)  
Старый 16.10.2015, 00:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Lemme,
ок
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск текста в блоке и добавление ему класса Venegrad Events/DOM/Window 2 08.02.2014 09:37
Поиск текста в блоке со скроллингом lukingnu Элементы интерфейса 0 05.08.2010 22:54