LINUX.ORG.RU

Делюсь велосипедом

 


0

1

По мотивам JS. Разыскивается библиотека всплывающих окон. Создал библиотеку (на чистом JS) для работы с модальными окнами под свои нужды. Подумал что кому-нибудь это может быть полезно.

В отличии от nanoModal, у меня не только окна перекрываются, но и оверлеи. В будущем планирую добавить фиксирование оверлея и другие плюшки.

https://github.com/Razip/ModalWindow

★★

Последнее исправление: Razip (всего исправлений: 1)

Ещё можно взять готовый полифилл для <dialog>.

Deleted
()

Осильте gh-pages и readme, чтобы можно было не напрягаясь прочитать о чем речь и посмотреть демку.

Vit ★★★★★
()
Ответ на: комментарий от dib2

Я прекрасно знаю что такое прототип. Вы имеете ввиду что нужно сделать поля хранящие DOM-элементы и вынести методы show, destroy и т.д в прототип, где обращение к ним идет через контекст?

anonymous
()
Ответ на: комментарий от anonymous

Вы имеете ввиду что нужно сделать поля хранящие DOM-элементы в прототип
Я прекрасно знаю что такое прототип.

false

Вы имеете ввиду что нужно вынести методы show, destroy в прототип

true

dib2 ★★★★★
()
Ответ на: комментарий от dib2

Я не говорил прямо что хочу хранить DOM-элементы в объекте-прототипе (ибо это бред, т.к. у каждого объекта типа ModalWindow свои уникальные элементы). Перечитайте мое сообщение.

anonymous
()
Ответ на: комментарий от dib2

Готово. Общие методы для всех потомков-объектов вынесены в прототип. «приватные» методы и свойства стали публичными. Все это я сделал лишь из-за производительности, т.к. урезать инкапсуляцию не хотелось.

P.S. надеюсь что в JS появится директива protected или что-то подобное, что позволит создать внутренний интерфейс. (=

Razip ★★
() автор топика
Ответ на: комментарий от Razip

Готово. Общие методы для всех потомков-объектов вынесены в прототип.

Ъ

«приватные» методы и свойства стали публичными. Все это я сделал лишь из-за производительности, т.к. урезать инкапсуляцию не хотелось.

тут есть несколько подходов к решению (правда ни одного нормального)

P.S. надеюсь что в JS появится директива protected или что-то подобное, что позволит создать внутренний интерфейс

мы с typescript балдеем )

dib2 ★★★★★
()
Ответ на: комментарий от bvn13

В принципе могу реализовать в свободное время.

Razip ★★
() автор топика
Ответ на: комментарий от AndreyKl

Я не сильный знаток английского. Спасибо.

Razip ★★
() автор топика

Работает хорошо.

Но мне кажется для большинства юзеров проще дать возможность показывать их див, ты можешь принимать то что отдаёт jquery, или dom element или селектор или идентификатор.

Т.е. я имею ввиду что я хочу красивую рамочку (на взгляд моего дизайнера красивую), картинку и текст. Кажется было бы просто и понятно если бы я оформил див с текстами, картинками и плюшками, поставил бы ему display:none, а потом передал бы id дива твоему конструктору.

как нибудь так

<div class="pluski nodisplay" id="dialog">
  <img src="myimage.png" class="cool image">
  Needed text, looks cool, man!<br>
  enter amount <input type="text" value="1">
  <button>OK</button>
</div>

<script type="text/javascript">
  var modal = new ModalWindow('#dialog');
//  var modal = new ModalWindow($('#dialog'));
//  var modal = new ModalWindow($('#dialog')[0]);
</script>

Мне кажется в том виде что у тебя сейчас варианты использования довольно ограничены. Но может быть именно простота (в том числе и ограниченность юз кейсов) является главным отличительным моментом твоей библиотеки...

AndreyKl ★★★★★
()
Ответ на: комментарий от AndreyKl

Я не вижу необходимости использовать мою библиотеку в связке с jQuery, т.к. под нее есть Vex и подобные.

Если хочешь сделать свой дизайн - можешь получить доступ к DOM-элементам окна и присвоить им нужные тебе CSS-классы вместо стандартных (или вовсе убрать). Это не устраивает?

Razip ★★
() автор топика
Ответ на: комментарий от Razip

тебе CSS-классы вместо стандартных (или вовсе убрать). Это не устраивает?

Нудно. Поведение по умолчанию хорошее на мой взгляд. Но как мне кажется нужен какой-то способ простой кастомизации по возможности. Но это в порядке общих мыслей, может оно тебе и не нужно, я просто на себя примеряю, если показать что-то чуть более сложное чем строку сообщения, то сейчас нужно делать много телодвижений. Передать объект или айдишник было бы удобнее, на мой взгляд.

AndreyKl ★★★★★
()
Ответ на: комментарий от AndreyKl

Можно передать HTML-код строкой или уже готовый DOM-объект (но он будет вставлен в тело окошка).

Razip ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.