<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https://mediawiki.zina.run/index.php?action=history&amp;feed=atom&amp;title=Modal</id>
	<title>Modal - Історія редагувань</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zina.run/index.php?action=history&amp;feed=atom&amp;title=Modal"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zina.run/index.php?title=Modal&amp;action=history"/>
	<updated>2026-10-12T11:41:49Z</updated>
	<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://mediawiki.zina.run/index.php?title=Modal&amp;diff=978&amp;oldid=prev</id>
		<title>&gt;Zina в 08:45, 9 березня 2023</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zina.run/index.php?title=Modal&amp;diff=978&amp;oldid=prev"/>
		<updated>2023-03-09T08:45:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Vue Modal Window ==&lt;br /&gt;
&lt;br /&gt;
Состоит из:&lt;br /&gt;
&lt;br /&gt;
* JS — в котором определяется имя компонента, ID шаблона, инициализация Vue:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
  // register modal component&lt;br /&gt;
  Vue.component(&amp;quot;modal-name&amp;quot;, {&lt;br /&gt;
    template: &amp;quot;#modal-template&amp;quot;&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  // start app&lt;br /&gt;
  new Vue({&lt;br /&gt;
    el: &amp;quot;#app&amp;quot;,&lt;br /&gt;
    data: {&lt;br /&gt;
      showModal: false&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* HTML — разметка &amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt; и кнопки, и модального окна:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/x-template&amp;quot; id=&amp;quot;modal-template&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;transition name=&amp;quot;modal&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;modal-mask&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;modal-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;modal-container&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/transition&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В HTML коде страницы шаблон должен быть размещен выше вызова скрипта.&lt;br /&gt;
&lt;br /&gt;
* HTML — вставка тэга компонента с параметрами в нужную часть HTML:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;modal-name v-if=&amp;quot;showModal&amp;quot; @close=&amp;quot;showModal = false&amp;quot;&amp;gt;&amp;lt;/modal-name&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Минимальный набор классов:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.modal-container {&lt;br /&gt;
  /* @apply fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2; */&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  top: 50%;&lt;br /&gt;
  left: 50%;&lt;br /&gt;
  transform: translate(-50%, -50%);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Анимации */&lt;br /&gt;
.modal-enter {&lt;br /&gt;
  opacity: 0;&lt;br /&gt;
}&lt;br /&gt;
.modal-leave-active {&lt;br /&gt;
  opacity: 0;&lt;br /&gt;
}&lt;br /&gt;
.modal-enter .modal-container,&lt;br /&gt;
.modal-leave-active .modal-container {&lt;br /&gt;
  transform: scale(1.1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== См. также ===&lt;br /&gt;
&lt;br /&gt;
Про $emit:&lt;br /&gt;
&lt;br /&gt;
* https://stackoverflow.com/questions/54417764/vue-js-modal-how-can-i-get-response-from-modal&lt;br /&gt;
* [https://vuejsexamples.com/build-a-custom-modal-component-in-vue-js/ Build A Custom Modal Component In Vue.js]&lt;br /&gt;
** https://github.com/Emodot/Creating-Modal-Components/blob/main/pages/index.vue&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&lt;br /&gt;
* https://codepen.io/chriscoyier/embed/BajXKRW — простой, с учетом overflow&lt;br /&gt;
&lt;br /&gt;
=== Morphing Modal Window ===&lt;br /&gt;
&lt;br /&gt;
* https://codepen.io/J3rome/pen/YEoXJq — Fancybox 3 (jQuery), наиболее хороший пример ([https://fancyapps.com/fancybox/3/ офсайт])&lt;br /&gt;
* https://codepen.io/codyhouse/pen/vEVjJg — аналог на jQuery и Velocity ([https://codyhouse.co/gem/morphing-modal-window статья], [https://codyhouse.co/demo/morphing-modal-window/index.html демо])&lt;br /&gt;
** https://webdevtrick.com/morphing-modal-window/ — другая статья про ту же технику ([https://webdevtrick.com/demos/morphing-modal-window/ демо])&lt;br /&gt;
* https://codepen.io/gregh/pen/rjbmXb — UI: Button morphing into form (Vue 2)&lt;br /&gt;
* https://codepen.io/ettrics/pen/Jdjdzp — красивые, кажется, на чистом JS&lt;br /&gt;
* https://codepen.io/toastal/pen/QyJeOB — наиболее навороченный, на React&lt;br /&gt;
&lt;br /&gt;
=== Анимации появления ===&lt;br /&gt;
&lt;br /&gt;
* [https://codepen.io/rppld/pen/vOvdyQ Modal]&lt;br /&gt;
* [https://codepen.io/knyttneve/pen/dgoWyE login modal]&lt;br /&gt;
* [https://codepen.io/lassediercks/pen/rPxbYM Css Only toggle]&lt;/div&gt;</summary>
		<author><name>&gt;Zina</name></author>
	</entry>
</feed>