Javascript.RU

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

Сообщение от JohnJohn
событие срабатывает на каждый индекс массива
только один элемент может быть всех ближе к верху окна, только предыдущему этого элемента (или следующему) будет скролл. в чём проблема?
Ответить с цитированием
  #12 (permalink)  
Старый 27.12.2017, 20:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от JohnJohn
var a = $("div").index(b[0]);
b[0] это всегда разный элемент, тот который ближе к верху, это происходит в результате сортировки.

если и куда-то можно втиснуть цикл, то это заменить сортировку циклом. так будет быстрее даже за счёт break.
Ответить с цитированием
  #13 (permalink)  
Старый 27.12.2017, 20:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

JohnJohn,
Задача №1. (по желанию)

<!DOCTYPE HTML>
<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  *{
    margin: 0;
    padding: 0;
  }

  div{width:100%}
  #d1{background:#00F;height:700px;border:1px solid}
  #d2{background:#FF0;height:500px;border:1px solid}
  #d3{background:#F0F;height:300px;border:1px solid}
  #d4{background:#F00;height:600px;border:1px solid}
  </style>
  <script>
window.addEventListener("DOMContentLoaded", function() {

  var b = document.querySelectorAll("div");
  document.addEventListener("keydown", function(e) {
  for (var i=0; i < b.length; i++)  {
     //ваша задача остановить цикл на элементе который всех ближе к верху окна
  }

  alert(i + 1);
  });
});
  </script>

</head>

<body>
<div id="d1" >1&uarr; &darr; </div>
<div id="d2" >2</div>
<div id="d3" >3</div>
<div id="d4" >4</div>

</body>

</html>
Ответить с цитированием
  #14 (permalink)  
Старый 28.12.2017, 02:29
Аспирант
Отправить личное сообщение для JohnJohn Посмотреть профиль Найти все сообщения от JohnJohn
 
Регистрация: 04.06.2017
Сообщений: 46

<!DOCTYPE HTML>
<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  *{
    margin: 0;
    padding: 0;
  }

  div{width:100%}
  #d1{background:#00F;height:700px;border:1px solid}
  #d2{background:#FF0;height:500px;border:1px solid}
  #d3{background:#F0F;height:300px;border:1px solid}
  #d4{background:#F00;height:600px;border:1px solid}
  </style>
  <script>
window.addEventListener("DOMContentLoaded", function() {

  var b = document.querySelectorAll("div");
  document.addEventListener("keydown", function(e) {
  for (var i=0; i < b.length; i++)  {
if (window.pageYOffset < (b[i].getBoundingClientRect().top + window.pageYOffset)) break;
     
  }

  alert(i);
  });
});
  </script>

</head>

<body>
<div id="d1" >1&uarr; &darr; </div>
<div id="d2" >2</div>
<div id="d3" >3</div>
<div id="d4" >4</div>

</body>

</html>
Ответить с цитированием
  #15 (permalink)  
Старый 28.12.2017, 02:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

JohnJohn,
Ответить с цитированием
  #16 (permalink)  
Старый 28.12.2017, 02:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

JohnJohn,
только уберите лишнее из строки 25
Ответить с цитированием
  #17 (permalink)  
Старый 28.12.2017, 03:06
Аспирант
Отправить личное сообщение для JohnJohn Посмотреть профиль Найти все сообщения от JohnJohn
 
Регистрация: 04.06.2017
Сообщений: 46

не могу понять, что лишнее) break на 26 перенести?)

Последний раз редактировалось JohnJohn, 28.12.2017 в 03:08.
Ответить с цитированием
  #18 (permalink)  
Старый 28.12.2017, 03:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

JohnJohn,
то что одинаково в сравнении, можно сократить, вычитанием из обоих частей сравнения.
Ответить с цитированием
  #19 (permalink)  
Старый 28.12.2017, 03:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

JohnJohn,
5 < y + 5 == 0 < y
Ответить с цитированием
  #20 (permalink)  
Старый 28.12.2017, 03:40
Аспирант
Отправить личное сообщение для JohnJohn Посмотреть профиль Найти все сообщения от JohnJohn
 
Регистрация: 04.06.2017
Сообщений: 46

рони,
понял) ну как все напишу, там обязательно уберу, а так пусть будет, что бы людей не путать) спасибо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена цвета/картинки фона при нажатии на элемент Webtest Элементы интерфейса 16 20.04.2017 22:36
Сохранение цвета рамки DIV при нажатии, и сброс при нажатии на другой DIV этого класа Webtest Элементы интерфейса 3 29.06.2014 22:13
SyntaxHighlighter подсветка при нажатии faraday Общие вопросы Javascript 3 31.03.2012 23:43
Скролл вверх при клике ie6/7/8 dr_gluk jQuery 0 21.03.2012 11:12
Поменять элемент матрицы при нажатии кнопки в другом фрейме Alexiy Общие вопросы Javascript 1 09.11.2011 11:49