Решил я сделать HTML-страницу, на которой пользователь смог бы самостоятельно перемещать объекты. Стал я это реализовывать с помощью атрибутов ondragenter, ondragover, ondrop, draggable, ondragstart, ondragend. И все вроде бы хорошо, да вот незадача: объекты позиционируются друг за дружкой, а когда начинаешь двигать объект, то его сосед тут же становится на освободившееся место. Хочется, чтобы объекты на странице сами не прыгали и можно было бы перемещать объект на любое свободное место на странице.
Сразу скажу, что двигал я картинки и соответственно в тег <img> прописал атрибуты draggable, ondragstart, ondragend. Мои объекты изначально были внутри блоков <div> и перемещал я их на странице в область других блоков <div>. Каждому из этих блоков я прописал в тег атрибуты ondragenter, ondragover, ondrop.
Блоки, где были объекты до перемещения, я сделал размером с объекты. Для каждого объекта - свой блок.
Простой способ быстро написать длинный однообразный текст программы, например, определение кучи однотипных переменных, задание порядковых номеров, словом, любой алготитмизуемый текст в текстовом формате.
Однажды мне понадобилось задать несколько десятков однотипных переменных. Думаю, ладно, один раз всего надо, сделаю вручную. Попыхтел, покопировал кусками, замены сделал, готово. Через какое-то время понял, надо по-другому делать, а снова всю эту мутотень вводить неохота. Что делать? Вспомнил, что когда-то писал обработчики на JavaScript и скрипты эти позволяют любой текст записать в текстовый файл. Получилась простая программка на JavaScript, которую я потом много раз переделывал под разные задачи.
Подробнее: Как быстро написать длинный однообразный текст программы
Известно, что в Javascript параметры функции передаются только по значению, нельзя передать параметр простого типа по ссылке.
О чем это мы? В программировании существует два способа передачи параметров функции: по ссылке и по значению. Когда параметр передается по значению, то функция только использует это значение, значение фактической переменной изменить она не в силах, даже если в функции переменной присваивается новое значение, как только функция закончит работу, значение нашей переменной станет прежним, каким оно было до работы функции. Когда параметр передается по ссылке, то изменение значения переменной внутри функции происходит реально и на выходе из функции наша переменная уже имеет новое значение. Это очень нужная штука, а в Javascript она не работает.
Однажды делел я проект с бооольшим количеством однотипных объектов и прогнозировать изменение переменных было невозможно, путь был один: заставить сценарий изменить значение входной переменной и вот, как я это реализовал.
Подробнее: Как обойти запрет изменения значений переменных, передаваемых функции по ссылке
Javascript для изменения координат областей графической карты. Координаты меняются для областей прямоугольной формы.
Была у меня такая задача: пользователь кнопкой на странице изменяет размер объекта, объектом является графическая карта. Соответственно пришлось написать сценарий на JavaScript, который меняет координаты графической карты. Вот как я это сделал.
Подробнее: Как запрограммировать изменение координат областей графической карты