powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / и снова про паузу в цикле :(
25 сообщений из 60, страница 2 из 3
и снова про паузу в цикле :(
    #39346370
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
потому как есть стандартный цикл
логически понятный и обоснованный, а ему на замену предлагается искусственный цикл.
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346378
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346381
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИзопропил,
потому как есть стандартный цикл
логически понятный и обоснованный, а ему на замену предлагается искусственный цикл.
ну нарисуй без "костыля" ( хоть в вебе, хоть на десктопе)
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346386
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИзопропил,
потому как есть стандартный цикл
логически понятный и обоснованный, а ему на замену предлагается искусственный цикл.
Вот ты мне скажи, если ты изначально думал о sleep и при этом ты знаешь "базу", то зачем ты Promise предложил?
Это же прост способ организации асинхронного кода.
Внутри может быть как setTimeout, так и вызов сервера. Или другой асинхронный процесс.

Разве что синхронный ajax запрос в него засунуть :) Но его можно и без Promise использовать.
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346388
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajka, кстати можете ведь на исходники jQuery посмотреть: https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.js

Поищите по slideDown и Generate parameters to create a standard animation .
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346403
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил ну нарисуй без "костыля" ( хоть в вебе, хоть на десктопе)
дак в том и проблема, что это решается только этим костылём.

авторВот ты мне скажи, если ты изначально думал о sleep и при этом ты знаешь "базу", то зачем ты Promise предложил?
на stackoverflow был вопрос о загрузке картинок с локального диска на текущую страницу (не на сервер), но там стояла проблема несколько иначе - нужно было соотнести имя загружаемого файла и его содержимое. там решили именно через промисы.
в моём коде нет такого соответствия, мне это и не требуется. я с промисами ещё не сталкивался, поэтому предложил ТС поробоать - и поделиться результатом.
если есть опыт работы с промисами - поделись в применении к моей проблеме.
авторЭто же прост способ организации асинхронного кода.
Внутри может быть как setTimeout, так и вызов сервера. Или другой асинхронный процесс.

Разве что синхронный ajax запрос в него засунуть :) Но его можно и без Promise использоват
причём здесь база и ajax?
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346406
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяИзопропилну нарисуй без "костыля" ( хоть в вебе, хоть на десктопе)
дак в том и проблема, что это решается только этим костылём.
это не проблема, это решение, причём стандартное.
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346407
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторэто не проблема, это решение, причём стандартное.
раз другого решения нет - переходит в "стандартное" :)
но по сути: замена стандартного цикла на что-то его заменяющее...
и, к сожалению, в моём случае это не подходит...
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346409
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторВот ты мне скажи, если ты изначально думал о sleep и при этом ты знаешь "базу", то зачем ты Promise предложил?
на stackoverflow был вопрос о загрузке картинок с локального диска на текущую страницу (не на сервер), но там стояла проблема несколько иначе - нужно было соотнести имя загружаемого файла и его содержимое. там решили именно через промисы.
в моём коде нет такого соответствия, мне это и не требуется. я с промисами ещё не сталкивался, поэтому предложил ТС поробоать - и поделиться результатом.
если есть опыт работы с промисами - поделись в применении к моей проблеме.То есть ты предложил попробовать Promise, потому как на Stackoverflow через них решили совершенно другую задачу, при этом сам их даже и не пробовал.
Что тут сказать? Жжешь :)

Я так могу Web Workers предложить. Недавно со мной поделились реальными кейсами их использования. Пусть и ТС попробует :)

вадяавторЭто же прост способ организации асинхронного кода.
Внутри может быть как setTimeout, так и вызов сервера. Или другой асинхронный процесс.

Разве что синхронный ajax запрос в него засунуть :) Но его можно и без Promise использоват
причём здесь база и ajax?Какая ещё база? Ты же захотел блокировать выполнение, верно? Вот синхронные запросы как раз это и делают. Не знал?
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346411
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторэто не проблема, это решение, причём стандартное.
раз другого решения нет - переходит в "стандартное" :)
но по сути: замена стандартного цикла на что-то его заменяющее...
и, к сожалению, в моём случае это не подходит...На мой взгляд было бы лучше, если бы ты оформил свою проблему отдельным топиком, где детально её описал. Вместо пустых рассуждений.
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346415
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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% содержания отлажено и работает должным образом.
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346420
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajkaНо переключение display между none и block средствами CSS, по-моему, не осуществить
Точнее, я имел ввиду "не осуществить его анимацию" средствами CSS.
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346424
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяи, к сожалению, в моём случае это не подходит...
случай - в студию
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346428
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилвадяи, к сожалению, в моём случае это не подходит...
случай - в студию
В отдельный топик! :)
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346432
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот 19888274
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346783
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Помогите ещё разобраться, пожалуйста - я переделал свой js-файл, применив Вашу функцию loop, но узлы дерева раскрываются либо рывками, либо вообще НЕплавно :(
Видимо, тут нужна какая-то строгая привязка к моменту времени запуска функции и измерение прошедшего с этого момента временного интервала перед каждой установкой display: block.
Или я как-то коряво/неправильно применил предложенный Вами код. Посмотрите, пожалуйста. Файлы прилагаю (изменён лишь js-файл, остальные 2 - те же самые)
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346799
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 код.
Все!
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346913
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,
Нет, меню уже у меня организовано. И даже работает :)
Просто у меня на странице будет генериться 3d-модель резистора. Я хочу сделать так, чтоб его номинал можно было назначить не только с помощью маркировочных колец (это я уже сделал), но и путём выбора из ряда стандартных номиналов. Но, поскольку этот ряд достаточно "длинный" (ряд Е192, например, имеет более 205*3 значений), то ради удобства выбора я решил его сделать в виде дерева с раскрывающимися узлами - уже получилось довольно неплохо. Теперь хотелось бы обеспечить плавность раскрытия - приукрашка такая. :)
Ну, а попутно - осваиваю JS. Так сказать - на конкретной задаче.
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346919
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajkaНу, а попутно - осваиваю JS. Так сказать - на конкретной задаче.Понятно.
Еще немножко об предложенном проекте.
В нем меню может быть представлено как по горизонтали так и по вертикали.
Скорее всего вам нужно смотреть не в сторону меню, а реализации дерева.
Ну а на него уже можете навесить всякие "игрушки" ...
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39346950
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,
Так я как раз деревом и занимаюсь, а не менюшкой.
В принципе, если мне не удастся сделать его плавным - сойдёт и так. Но пока ещё я поборюсь - а вдруг получится? :)
Всё-таки тут довольно дельные советы дают. Не то что на javascript.ru - там народ заносчивый и потому практически безучастный.
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39347017
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajkaТак я как раз деревом и занимаюсь, а не менюшкой. https://habrahabr.ru/post/151239/ JsTree — деревья это так просто
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39347120
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39347193
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Ждём ECMAScript 6. Не знаю есть ли в нём нужный функционал (неблокирующих задержек или что-то типа processMessages), но в нём точно будет yield (генераторы). С помощью этих генераторов и обычно setTimeoutможно будет приблизиться к тому, о чём ты говоришь. Можно будет это реализовать для функций верхнего уровня (например для функций, вызванных по некому событию).

Да и я видел там будет async некая... Вот только я не понял будет ли это многопоточность реализована, или просто красивая реализация setTimeout :)

В общем сейчас поддержка основными браузерами уже около 95% на десктопе. Так что совсем скоро... Жаль, конечно, андроид позади планеты всей. :( там самые новые версии всего на 25% поддержку включили.
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39347205
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,
судя по http://caniuse.com андроид не слишком отстаёт, хром под ним вполне в ногу шагает, даже мозилла.
...
Рейтинг: 0 / 0
и снова про паузу в цикле :(
    #39347462
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрНе знаю есть ли в нём нужный функционал (неблокирующих задержек или что-то типа processMessages)
спецификацию попробуй почитать
...
Рейтинг: 0 / 0
25 сообщений из 60, страница 2 из 3
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / и снова про паузу в цикле :(
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]