Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
Начитался про setTimeOut и setInterval - голова идёт кругом, а толку никакого :( Подскажите, как в чистом JS выполнить появление внутренних элементов заданного DIV'а с некоторой задержкой? Я пробовал вот такую конструкцию изобразить для этого: Код: javascript 1. 2. 3. 4. 5. Подскажите, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 03:19 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
neznajka, попробуй промисы, возможно помогут иначе ни как.... я не смог добиться такого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 07:59 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадяneznajka, попробуй промисы, возможно помогут иначе ни как.... я не смог добиться такого Эх, а писал, что какую-то там базу знаешь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 09:49 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
neznajka, вот Вам пример, где элементы по очереди показываются: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. http://plnkr.co/edit/UfUohJH7GROpJI79Eexx?p=preview Если уберёте из кода выделенный множитель (q + 1) , то все разом покажутся через 0.3 сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 09:55 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
neznajka, а вот через setInterval: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. http://plnkr.co/edit/jq4W5vCYqjP1oPiVvI0T?p=preview ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 10:14 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
skyANA, а ты путаешь понятия вывод в цикле и setTimeOut и setInterval . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 11:49 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадяskyANA, а ты путаешь понятия вывод в цикле и setTimeOut и setInterval . Не понимаю. Какую ты задачу себе придумал и не можешь решить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 11:56 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
skyANA, когда у тебя происходит работа в цикле и результат необходимо выводить на каждом шаге этого цикла. проблема в том, что если в цикле поставить cjnsole.log('ля-ля') то это л-я-ля будет появляться на каждом шаге а если вывести на экран изменение какого-либо параметра изменение фона дивов по очереди, то этого не увидишь - измениея будут не на каждом шаге, а через непонятно какое время, и по скольку... если дебажить код - то всё произойдет как надо. js изменит отображаемое состояние dom, но это изменение не прорисуется на экране. поток выполнения js имеетбольший приоритет перед отображением . у меня есть реальный пример - загрузка нескольких картинок с локального диска - работа идет в цикле , на загрузку картинки требуется около секунды, но отображаются они произвольным образом, видимо во время когда система кэширует загруженное на диск. и setTimeOut и setInterval не помогает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 12:09 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадяу меня есть реальный пример - загрузка нескольких картинок с локального диска - работа идет в цикле , на загрузку картинки требуется около секунды, но отображаются они произвольным образом, видимо во время когда система кэширует загруженное на диск. и setTimeOut и setInterval не помогает а ты обрабатываешь событие окончания загрузки картинки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 12:15 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадяskyANA, когда у тебя происходит работа в цикле и результат необходимо выводить на каждом шаге этого цикла. проблема в том, что если в цикле поставить cjnsole.log('ля-ля') то это л-я-ля будет появляться на каждом шаге а если вывести на экран изменение какого-либо параметра изменение фона дивов по очереди, то этого не увидишь - измениея будут не на каждом шаге, а через непонятно какое время, и по скольку... если дебажить код - то всё произойдет как надо. js изменит отображаемое состояние dom, но это изменение не прорисуется на экране. поток выполнения js имеетбольший приоритет перед отображением . у меня есть реальный пример - загрузка нескольких картинок с локального диска - работа идет в цикле , на загрузку картинки требуется около секунды, но отображаются они произвольным образом, видимо во время когда система кэширует загруженное на диск. и setTimeOut и setInterval не помогает. Мда, давай ты не будешь мне рассказывать про поток выполнения, цикл событий (event loop) и прочее... Выше я привёл два рабочих примера со ссылками на plnkr.co, где можно посмотреть как появляются элементы. Какие конкретно проблемы ты видишь в моём коде? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 12:20 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
skyANA, а давай ты не будешь городить тут ерунду. сравни время выполнения твоего цикла и время появления на экране. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 12:25 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадяskyANA, а давай ты не будешь городить тут ерунду. сравни время выполнения твоего цикла и время появления на экране. А давай не будем переходить на личности. Есть задача, сформулированная ТС-ом, есть два решения от меня. Давай их и обсудим. Какие конкретно проблемы ты видишь в моих решениях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 12:32 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
Возможно ты прочитал лишь заголовок темы: "и снова про паузу в цикле". И рассуждаешь про себя как сделать паузу. Да? А я прочитал и первое сообщение, где ТС уточняет свою проблему: "Подскажите, как в чистом JS выполнить появление внутренних элементов заданного DIV'а с некоторой задержкой?". Вот появление элементов с задержкой я и показал на примерах выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 12:38 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
skyANA, ТС надо в цикле поставить задержку. а не выполнить что-то отдельно , как это делают setTimeOut и setInterval. в твоих вариантах цикл пролетел, а потом начали выполняться setTimeOut и setInterval ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 12:40 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадяskyANA, ТС надо в цикле поставить задержку. а не выполнить что-то отдельно , как это делают setTimeOut и setInterval. в твоих вариантах цикл пролетел, а потом начали выполняться setTimeOut и setInterval Прости, но ты используешь странную терминологию. Что значит выполнить что-то отдельно? Отдельно от чего? Что значит в цикле поставить задержку? Ты таки хочешь поставить выполнение на паузу, то есть "усыпить" поток выполнения? Давай обратимся к документации, где я выделю одно слово несколько раз красным: WindowTimers.setTimeout() Краткое изложение Вызов функции или выполнение фрагмента кода после указанной задержки . Синтаксис Код: javascript 1. 2. где timeoutID - это числовой ID, который может быть использован позже с window.clearTimeout(). func - это функция, которую требуется вызвать после delay миллисекунд. code - в альтернативном варианте применения это строка, содержащая код, который вы хотите выполнить после delay миллисекунд (использовать этот метод не рекомендуется по тем же причинам, что и eval()) delay - задержка в миллисекундах (тысячных долях секунды), после которой будет выполнен вызов функции. Реальная задержка может быть больше; см. Notes ниже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 12:54 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадя, надеюсь ты прочитал вышенаписанное мной сообщение. И давай теперь обратимся к первому посту ТС-а: neznajka Начитался про setTimeOut и setInterval - голова идёт кругом, а толку никакого :( Подскажите, как в чистом JS выполнить появление внутренних элементов заданного DIV'а с некоторой задержкой ? И подумаем над тем, что возможно автор просто пытается сделать упражнение на использование setTimeout и setInterval :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 12:59 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
skyANA, обратимся к коду ТС Код: javascript 1. 2. 3. 4. вставить паузу в цикле, т.е. остановить на время паузы выполнение. первое что приходит в голову setTimeOut и setInterval. но они здесь не помогут. они не остановят цикл. они запустятся после окончания работы цикла. да твои варианты отобразят появление с задержкой, но это будет уже после того как цикл завершится. а это уже может нарушить остальную логиу работы, как , к примеру , у меня с загрузкой картинок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 13:11 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадяskyANA, обратимся к коду ТС Код: javascript 1. 2. 3. 4. вставить паузу в цикле, т.е. остановить на время паузы выполнение. первое что приходит в голову setTimeOut и setInterval. но они здесь не помогут. они не остановят цикл.А можешь объяснить зачем это нужно ТС-у? вадяда твои варианты отобразят появление с задержкойТо есть сделают ровно то, что нужно ТС-у. вадяно это будет уже после того как цикл завершится.У него в цикле что делается? Ровно одно: cel.children[q].style.display = 'block' . То есть именно эту строчку кода ТС хочет выполнить с задержкой. вадяа это уже может нарушить остальную логиу работы, как , к примеру , у меня с загрузкой картинок.Не стоит придумывать логику, которой нет. Но хорошо, третий вариант: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 13:25 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадяа это уже может нарушить остальную логиу работы, как , к примеру , у меня с загрузкой картинок. ты понадеялся на то,что картинки будут поступать в порядке выдачи запросов на загрузку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 13:45 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
skyANA, последний вариант ТС может и устроит. но это костыль. в данном случае подошла б команда sleep :) если б такая была. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 13:50 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
Ого, тут баталии разгорелись! Даже и не предполагал :) В любом случае - спасибо всем за участливое отношение. И простите, что задержался с ответом - отсыпался после ночных "поединков" с непостижимой логикой синтаксиса JS :) Да, мне пригодятся изложенные тут способы решения (отдельное спасибо skyANA), но правильно заметил и вадя: я не достаточно чётко изложил цель своего вопроса. Исправляюсь - прилагаю тестовый упрощённый вариант своих файлов: это древовидный раскрывающийся список значений, он работает именно так, как мне и нужно - в каждый момент времени может быть открытой лишь ОДНА подгруппа. Код за основу взял отсюда и усовершенствовал для отображения лишь одной подгруппы. Обозначу этот вариант дерева как вариант №1 . Я просто хочу его ещё усовершенствовать, чтобы каждая подгруппа открывалась плавно. Как в этом варианте №2 (ближе к середине страницы, где дерево с пунктами "Программирование", "Верстка", "Дизайн"...). Сам этот вариант №2 с последней ссылки мне не удалось поместить в свой DIV: этот DIV у меня изначально скрытый (display: none), а когда я включаю его видимость (display: block), то вложенное в него дерево из варианта №2 становится сразу раскрытым во всех узлах :( Поэтому я от варианта №2 отказался, и решил адаптировать под себя именно вариант №1. И мне осталось лишь снабдить его плавностью раскрытия-закрытия. Вот и вся преамбула к моему вопросу в начале темы. Извините, если слишком запутанно изложил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 13:50 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадяв данном случае подошла б команда sleep :) если б такая была. а ты догадываешься, почему её нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 13:54 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
Изопропилвадяа это уже может нарушить остальную логиу работы, как , к примеру , у меня с загрузкой картинок. ты понадеялся на то,что картинки будут поступать в порядке выдачи запросов на загрузку? мне надо чтоб при загрузке катринки отобразилась инфа о её загрузке. порядок не интересует. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 13:59 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
Изопропилвадяв данном случае подошла б команда sleep :) если б такая была. а ты догадываешься, почему её нет? дак я привел её только для пояснения логики..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 14:02 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадядак я привел её только для пояснения логики..... тогда почему - костыль? Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 14:15 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
Изопропил, потому как есть стандартный цикл логически понятный и обоснованный, а ему на замену предлагается искусственный цикл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 14:21 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
neznajkaОго, тут баталии разгорелись! Даже и не предполагал :) В любом случае - спасибо всем за участливое отношение. И простите, что задержался с ответом - отсыпался после ночных "поединков" с непостижимой логикой синтаксиса JS :) Да, мне пригодятся изложенные тут способы решения (отдельное спасибо skyANA), но правильно заметил и вадя: я не достаточно чётко изложил цель своего вопроса. Исправляюсь - прилагаю тестовый упрощённый вариант своих файлов: это древовидный раскрывающийся список значений, он работает именно так, как мне и нужно - в каждый момент времени может быть открытой лишь ОДНА подгруппа. Код за основу взял отсюда и усовершенствовал для отображения лишь одной подгруппы. Обозначу этот вариант дерева как вариант №1 . Я просто хочу его ещё усовершенствовать, чтобы каждая подгруппа открывалась плавно. Как в этом варианте №2 (ближе к середине страницы, где дерево с пунктами "Программирование", "Верстка", "Дизайн"...). Сам этот вариант №2 с последней ссылки мне не удалось поместить в свой DIV: этот DIV у меня изначально скрытый (display: none), а когда я включаю его видимость (display: block), то вложенное в него дерево из варианта №2 становится сразу раскрытым во всех узлах :( Поэтому я от варианта №2 отказался, и решил адаптировать под себя именно вариант №1. И мне осталось лишь снабдить его плавностью раскрытия-закрытия. Вот и вся преамбула к моему вопросу в начале темы. Извините, если слишком запутанно изложил. http://www.sql.ru/forum/actualfile.aspx?id=19887776] Приложенный файл (variant1.zip - 8Kb) Рассуждения вади вообще не об этом. Не путайтесь. По сути Ваша проблема сводится к тому, как реализовать простую анимацию. Вам сюда: https://learn.javascript.ru/animation Посмотрите там сначала на то, как сделать это средствами CSS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 14:51 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадяИзопропил, потому как есть стандартный цикл логически понятный и обоснованный, а ему на замену предлагается искусственный цикл. ну нарисуй без "костыля" ( хоть в вебе, хоть на десктопе) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 14:56 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадяИзопропил, потому как есть стандартный цикл логически понятный и обоснованный, а ему на замену предлагается искусственный цикл. Вот ты мне скажи, если ты изначально думал о sleep и при этом ты знаешь "базу", то зачем ты Promise предложил? Это же прост способ организации асинхронного кода. Внутри может быть как setTimeout, так и вызов сервера. Или другой асинхронный процесс. Разве что синхронный ajax запрос в него засунуть :) Но его можно и без Promise использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 15:15 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
neznajka, кстати можете ведь на исходники jQuery посмотреть: https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.js Поищите по slideDown и Generate parameters to create a standard animation . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 15:22 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
Изопропил ну нарисуй без "костыля" ( хоть в вебе, хоть на десктопе) дак в том и проблема, что это решается только этим костылём. авторВот ты мне скажи, если ты изначально думал о sleep и при этом ты знаешь "базу", то зачем ты Promise предложил? на stackoverflow был вопрос о загрузке картинок с локального диска на текущую страницу (не на сервер), но там стояла проблема несколько иначе - нужно было соотнести имя загружаемого файла и его содержимое. там решили именно через промисы. в моём коде нет такого соответствия, мне это и не требуется. я с промисами ещё не сталкивался, поэтому предложил ТС поробоать - и поделиться результатом. если есть опыт работы с промисами - поделись в применении к моей проблеме. авторЭто же прост способ организации асинхронного кода. Внутри может быть как setTimeout, так и вызов сервера. Или другой асинхронный процесс. Разве что синхронный ajax запрос в него засунуть :) Но его можно и без Promise использоват причём здесь база и ajax? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 16:05 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадяИзопропилну нарисуй без "костыля" ( хоть в вебе, хоть на десктопе) дак в том и проблема, что это решается только этим костылём. это не проблема, это решение, причём стандартное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 16:25 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
авторэто не проблема, это решение, причём стандартное. раз другого решения нет - переходит в "стандартное" :) но по сути: замена стандартного цикла на что-то его заменяющее... и, к сожалению, в моём случае это не подходит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 16:33 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадяавторВот ты мне скажи, если ты изначально думал о sleep и при этом ты знаешь "базу", то зачем ты Promise предложил? на stackoverflow был вопрос о загрузке картинок с локального диска на текущую страницу (не на сервер), но там стояла проблема несколько иначе - нужно было соотнести имя загружаемого файла и его содержимое. там решили именно через промисы. в моём коде нет такого соответствия, мне это и не требуется. я с промисами ещё не сталкивался, поэтому предложил ТС поробоать - и поделиться результатом. если есть опыт работы с промисами - поделись в применении к моей проблеме.То есть ты предложил попробовать Promise, потому как на Stackoverflow через них решили совершенно другую задачу, при этом сам их даже и не пробовал. Что тут сказать? Жжешь :) Я так могу Web Workers предложить. Недавно со мной поделились реальными кейсами их использования. Пусть и ТС попробует :) вадяавторЭто же прост способ организации асинхронного кода. Внутри может быть как setTimeout, так и вызов сервера. Или другой асинхронный процесс. Разве что синхронный ajax запрос в него засунуть :) Но его можно и без Promise использоват причём здесь база и ajax?Какая ещё база? Ты же захотел блокировать выполнение, верно? Вот синхронные запросы как раз это и делают. Не знал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 16:36 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадяавторэто не проблема, это решение, причём стандартное. раз другого решения нет - переходит в "стандартное" :) но по сути: замена стандартного цикла на что-то его заменяющее... и, к сожалению, в моём случае это не подходит...На мой взгляд было бы лучше, если бы ты оформил свою проблему отдельным топиком, где детально её описал. Вместо пустых рассуждений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 16:55 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
To skyANA: Спасибо за ссылки, но ранее предложенные Вами варианты мне подходят больше. Я с ними уже начал работать. Что же касается сути советов, то: 2) "Уразуметь" принцип устройства и работы JQ-функций - я и сам уже пытался (потому-то и сидел за компом до 3-х ночи, разбирая исходный код JQ 1.7.2) - нет, это мне не дано. Видать, даже в базовых вопросах JS я пока ещё не слишком "крутой перец" :) Просто все свои сознательные годы мне приходилось иметь дело с языками программирования, имеющими более "традиционный" синтаксис. Типа TupboPascal, FoxPro/VFP, VB/VBA. Потому очень уж трудно (в мои без малого 50:) перестроиться на понимание другого принципа синтаксического построения команд. Но я не сдаюсь - например, уже почти "допёр" почему в некоторых циклах JS нельзя обойтись без [неценз.] замыканий. Это для меня почти подвиг :) 1) Анимации CSS - я уже пробовал. Использую по мере необходимости. Но переключение display между none и block средствами CSS, по-моему, не осуществить. Или я ещё не всё об этом знаю. Правда, в моём случае, ещё можно было бы анимировать рост высоты раскрывающейся подгруппы дерева - тогда можно было бы, наверное, и средствами CSS обойтись - только тогда надо большие изменения вносить в структуру страницы, а это - нежелательно, т.к. в ней уже 90% содержания отлажено и работает должным образом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 17:02 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
neznajkaНо переключение display между none и block средствами CSS, по-моему, не осуществить Точнее, я имел ввиду "не осуществить его анимацию" средствами CSS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 17:11 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадяи, к сожалению, в моём случае это не подходит... случай - в студию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 17:18 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
Изопропилвадяи, к сожалению, в моём случае это не подходит... случай - в студию В отдельный топик! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 17:26 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вот 19888274 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2016, 17:38 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
skyANA, Помогите ещё разобраться, пожалуйста - я переделал свой js-файл, применив Вашу функцию loop, но узлы дерева раскрываются либо рывками, либо вообще НЕплавно :( Видимо, тут нужна какая-то строгая привязка к моменту времени запуска функции и измерение прошедшего с этого момента временного интервала перед каждой установкой display: block. Или я как-то коряво/неправильно применил предложенный Вами код. Посмотрите, пожалуйста. Файлы прилагаю (изменён лишь js-файл, остальные 2 - те же самые) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2016, 12:54 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
neznajkaskyANA, Помогите ещё разобраться, пожалуйста - я переделал свой js-файл, применив Вашу функцию loop, но узлы дерева раскрываются либо рывками, либо вообще НЕплавно :(Скорее всего ваша цель научиться самому реализовать меню? Если нет, то вот предлагаю /вообще готовых проектов реализующих меню очень много/ один из проектов /использую его/: http://livemenu.sourceforge.net https://sourceforge.net/projects/livemenu/files/LiveMenu-1.1.2/liveMenu-1.1.2.zip/download Чем меня привлек этот проект? Тем что меню на js с помощью него реализовать очень просто. Конечно замечания к проекту имеются, но в целом имеем а-ля Windows меню /типичное меню с использованием WIN API/. Как использую? В xml создают прообраз меню, а затем с помощью модуля на PHP генерирую js код. Все! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2016, 13:19 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
Владимир2012, Нет, меню уже у меня организовано. И даже работает :) Просто у меня на странице будет генериться 3d-модель резистора. Я хочу сделать так, чтоб его номинал можно было назначить не только с помощью маркировочных колец (это я уже сделал), но и путём выбора из ряда стандартных номиналов. Но, поскольку этот ряд достаточно "длинный" (ряд Е192, например, имеет более 205*3 значений), то ради удобства выбора я решил его сделать в виде дерева с раскрывающимися узлами - уже получилось довольно неплохо. Теперь хотелось бы обеспечить плавность раскрытия - приукрашка такая. :) Ну, а попутно - осваиваю JS. Так сказать - на конкретной задаче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2016, 15:19 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
neznajkaНу, а попутно - осваиваю JS. Так сказать - на конкретной задаче.Понятно. Еще немножко об предложенном проекте. В нем меню может быть представлено как по горизонтали так и по вертикали. Скорее всего вам нужно смотреть не в сторону меню, а реализации дерева. Ну а на него уже можете навесить всякие "игрушки" ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2016, 15:27 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
Владимир2012, Так я как раз деревом и занимаюсь, а не менюшкой. В принципе, если мне не удастся сделать его плавным - сойдёт и так. Но пока ещё я поборюсь - а вдруг получится? :) Всё-таки тут довольно дельные советы дают. Не то что на javascript.ru - там народ заносчивый и потому практически безучастный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2016, 15:52 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
neznajkaТак я как раз деревом и занимаюсь, а не менюшкой. https://habrahabr.ru/post/151239/ JsTree — деревья это так просто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2016, 17:06 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
neznajkaskyANA, Помогите ещё разобраться, пожалуйста - я переделал свой js-файл, применив Вашу функцию loop, но узлы дерева раскрываются либо рывками, либо вообще НЕплавно :( Видимо, тут нужна какая-то строгая привязка к моменту времени запуска функции и измерение прошедшего с этого момента временного интервала перед каждой установкой display: block. Или я как-то коряво/неправильно применил предложенный Вами код. Посмотрите, пожалуйста. Файлы прилагаю (изменён лишь js-файл, остальные 2 - те же самые) http://www.sql.ru/forum/actualfile.aspx?id=19890664] Приложенный файл (test_tree3.rar - 2Kb) Да уж, ну и код Вы навернули :) Я бы переписал на фиг, но... Вот поправил: http://plnkr.co/edit/sqd4FlnpvtyrVf8yunxz?p=preview ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2016, 21:07 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
вадя, Ждём ECMAScript 6. Не знаю есть ли в нём нужный функционал (неблокирующих задержек или что-то типа processMessages), но в нём точно будет yield (генераторы). С помощью этих генераторов и обычно setTimeoutможно будет приблизиться к тому, о чём ты говоришь. Можно будет это реализовать для функций верхнего уровня (например для функций, вызванных по некому событию). Да и я видел там будет async некая... Вот только я не понял будет ли это многопоточность реализована, или просто красивая реализация setTimeout :) В общем сейчас поддержка основными браузерами уже около 95% на десктопе. Так что совсем скоро... Жаль, конечно, андроид позади планеты всей. :( там самые новые версии всего на 25% поддержку включили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2016, 03:10 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
Програмёр, судя по http://caniuse.com андроид не слишком отстаёт, хром под ним вполне в ногу шагает, даже мозилла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2016, 05:40 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
ПрограмёрНе знаю есть ли в нём нужный функционал (неблокирующих задержек или что-то типа processMessages) спецификацию попробуй почитать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2016, 13:10 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
To Владимир2012: Большое спасибо за ссылки. А я знаю, что это просто. Потому и сделал уже само дерево. Хотел лишь привить ему плавное раскрытие. Но без JQ. Ибо я уже наступал на грабли с JQ (описал выше - JQ в моём DIV'е (переключаемом с display: none на display: block ) никак не хочет показать дерево сначала в свёрнутом виде и всегда его упорно разворачивает во всю высоту сразу после переключения DIV'а на display: block ), и потому взял вариант попроще и попослушней - без JQ. И кое-что уже получается. skyANA, Во! Самое то :) Спасибо огромное - попытаюсь разобраться на будущее. А насчёт неуклюжести кода - м-дя, есть такое дело. Но - "я не волшебник, я только учусь" (С) - такая отмазочка сойдёт на первый случай? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2016, 15:51 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
TO skyANA: Благодарю за помощь - действительно поучительно для меня оказалось! Оказывается, не везде в JS-циклы нужно втыкать замыкания :) Да и за анимацию сворачивания - отдельное спасибо: к ней я вообще не знал как подступиться, думал уже ограничиться лишь плавным разворачиванием. А Вы - бац! - и её так изящно победили :). Попутно я сравнил и взял на заметку некоторые приёмы оформления кода. А параметр 13 для функции loop Вы, наверное, выбрали исходя из желаемой задержки и максимального количества элементов в узле - Round(300/24), да? Это натолкнуло меня на мысль сделать его переменным - адаптируемым к количеству элементов в текущем (кликнутом) узле. Это попробую сделать сам. Ещё раз спасибо Вам, и всем откликнувшимся! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2016, 17:22 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
neznajkaЕщё раз спасибо Вам, и всем откликнувшимся!Скоро от нас отделаться хотите ... /если кто понимает о чем я. На всякий случай. Шучу!/ Сворачивать и разворачивать узлы казалось бы что еще нужно. Все так просто ... Просто для тех кто ни хочет думать ... У меня например в узлах дерева хранятся данные таблиц /если возможно то и вся таблица/ и при разворачивании узла открывается полноценный грид для редактирования данных .... PS: На сколько понял вашу задачу у вас дерево выполняет аналогичные задачи /отобразить и предоставить возможность изменять данные/. Так что у вас работа выполнена процентом на 5 /защита данных, котнтроль, хранение, ... ... ... .../. Все! С Богом! Для меня это не пустые слова ... Я не фанат. Фанатизм это скорее всего тяжелая болезнь /мне она хорошо известна. Ни кому не пожелаю ... Спаси Господи!/. Духовники ее именуют - "прелесть" /то бишь прельщенный .../ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2016, 19:11 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
Владимир2012У меня например в узлах дерева хранятся данные таблиц отделение модели от представления придумали какие-то странные люди ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2016, 20:28 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
ИзопропилВладимир2012У меня например в узлах дерева хранятся данные таблицотделение модели от представления придумали какие-то странные людиО ужас! Как вы такое обо мне могли подумать ... Руки мои крюки ... А люди действительно странные - в WWW умеют из мухи слона сделать ... /и много иного/. Пардон. Фразу Владимир2012У меня например в узлах дерева хранятся данные таблицнужно было понимать где-то так: При открытии узла дерева в зависимости от типа данных, создаются диалоговые формы для их просмотра и редактирования ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2016, 20:46 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
Владимир2012, авторПо радио читают Маяковского: "Мы говорим - Ленин, подразумеваем - партия..." - Ну да! - говорит Рабинович. - Вот уже пятьдесят лет говорим одно, а подразумеваем другое! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2016, 21:26 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
Изопропил, "Коль пошла такая пьянка ...". Часто и густо при общении людей наблюдается абсолютное не понимание друг друга. С виду соглашаются и вопросы задают друг другу, а по сути имеем: [spoiler] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2016, 21:51 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
Владимир2012, Нет, у меня задача попроще - не редактировать, а всего лишь предоставить возможность выбрать желаемое значение из стандартного ряда. Но поскольку ряд слишком длинный, то я решил его сгруппировать по первым цифрам - вышло довольно приемлемо и более-менее компактно. А благодаря skyANA - ещё и плавненько :) Теперь пытаюсь это ПРАВИЛЬНО запихнуть в свой DIV - пока не получается, но я ещё не готов сдаться и сформулировать вопрос по этому поводу: пока есть ещё с чем поэкспериментировать самому. Ну, а потом похвастаюсь здесь. Или - наоборот, пожалуюсь и подостаю всех новыми вопросами. Так что - я не "отделываюсь" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2016, 23:35 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
neznajkaИли - наоборот, пожалуюсь и подостаю всех новыми вопросами. Так что - я не "отделываюсь" :)Рад за вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2016, 00:14 |
|
||
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#18+
Владимир2012Изопропил, "Коль пошла такая пьянка ...". Часто и густо при общении людей наблюдается абсолютное не понимание друг друга. С виду соглашаются и вопросы задают друг другу, а по сути имеем: [spoiler] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2016, 09:46 |
|
||
|
|

start [/forum/topic.php?all=1&fid=22&tid=1444903]: |
0ms |
get settings: |
13ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
67ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
80ms |
get tp. blocked users: |
1ms |
| others: | 283ms |
| total: | 482ms |

| 0 / 0 |
