Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
и снова про паузу в цикле :(
|
|||
|---|---|---|---|
|
#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 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=39347205&tid=1444903]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 269ms |
| total: | 436ms |

| 0 / 0 |
