<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>iT-CALLBACK</title><author><name>iT-CALLBACK</name></author><id>https://teletype.in/atom/it-callback</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/it-callback?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@it-callback?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=it-callback"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/it-callback?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-04-06T07:13:37.074Z</updated><entry><id>it-callback:js-events</id><link rel="alternate" type="text/html" href="https://teletype.in/@it-callback/js-events?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=it-callback"></link><title>Обработка событий в JavaScript</title><published>2024-06-29T10:49:06.302Z</published><updated>2024-06-29T10:53:46.965Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/74/2f/742f43aa-f3fd-41c8-a681-98a4a63af8e7.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/62/e1/62e1e71a-07ec-4c21-b381-e2ee06428e85.gif&quot;&gt;В этом уроке мы рассмотрим, как работать с событиями в JavaScript. События позволяют вашим веб-приложениям реагировать на действия пользователя, такие как нажатия кнопок, ввод текста и многое другое.</summary><content type="html">
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;L0FC&quot;&gt;В этом уроке мы рассмотрим, как работать с событиями в JavaScript. События позволяют вашим веб-приложениям реагировать на действия пользователя, такие как нажатия кнопок, ввод текста и многое другое.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;l6HG&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;Fe2K&quot;&gt;1. Назначение обработчиков событий&lt;/h3&gt;
  &lt;p id=&quot;YidI&quot;&gt;Обработчики событий могут быть назначены несколькими способами. Рассмотрим два основных.&lt;/p&gt;
  &lt;h4 id=&quot;tmLN&quot;&gt;1.1. Использование атрибутов HTML&lt;/h4&gt;
  &lt;p id=&quot;kP3k&quot;&gt;Вы можете назначить обработчик события непосредственно в HTML-коде:&lt;/p&gt;
  &lt;pre id=&quot;tfyr&quot; data-lang=&quot;html&quot;&gt;&amp;lt;button type=&amp;quot;button&amp;quot; onclick=&amp;quot;alert(&amp;#x27;Button clicked!&amp;#x27;)&amp;quot;&amp;gt;Click me&amp;lt;/button&amp;gt;&lt;/pre&gt;
  &lt;figure id=&quot;Cskb&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/62/e1/62e1e71a-07ec-4c21-b381-e2ee06428e85.gif&quot; width=&quot;1138&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;A7IB&quot;&gt;Это простой способ, но не рекомендуется для больших проектов из-за плохой читабельности и поддержки.&lt;/p&gt;
  &lt;h4 id=&quot;XLrG&quot;&gt;1.2. Использование метода &lt;code&gt;addEventListener&lt;/code&gt;&lt;/h4&gt;
  &lt;p id=&quot;bmrJ&quot;&gt;Метод &lt;code&gt;addEventListener&lt;/code&gt; предоставляет более гибкий и современный способ назначения обработчиков событий:&lt;/p&gt;
  &lt;pre id=&quot;uvqH&quot; data-lang=&quot;javascript&quot;&gt;const button = document.querySelector(&amp;#x27;button&amp;#x27;);
button.addEventListener(&amp;#x27;click&amp;#x27;, function() {
  alert(&amp;#x27;Button clicked!&amp;#x27;);
});&lt;/pre&gt;
  &lt;p id=&quot;jvJ4&quot;&gt;2. Основные типы событий&lt;/p&gt;
  &lt;p id=&quot;zAwo&quot;&gt;События бывают разных типов. Вот некоторые из них:&lt;/p&gt;
  &lt;ul id=&quot;GjZC&quot;&gt;
    &lt;li id=&quot;Bpnc&quot;&gt;&lt;strong&gt;События мыши&lt;/strong&gt;: &lt;code&gt;click&lt;/code&gt;, &lt;code&gt;dblclick&lt;/code&gt;, &lt;code&gt;mousedown&lt;/code&gt;, &lt;code&gt;mouseup&lt;/code&gt;, &lt;code&gt;mousemove&lt;/code&gt;, &lt;code&gt;mouseover&lt;/code&gt;, &lt;code&gt;mouseout&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;lMPO&quot;&gt;&lt;strong&gt;События клавиатуры&lt;/strong&gt;: &lt;code&gt;keydown&lt;/code&gt;, &lt;code&gt;keypress&lt;/code&gt;, &lt;code&gt;keyup&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;67Ra&quot;&gt;&lt;strong&gt;События формы&lt;/strong&gt;: &lt;code&gt;submit&lt;/code&gt;, &lt;code&gt;change&lt;/code&gt;, &lt;code&gt;focus&lt;/code&gt;, &lt;code&gt;blur&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;ybtz&quot;&gt;&lt;strong&gt;События документа&lt;/strong&gt;: &lt;code&gt;DOMContentLoaded&lt;/code&gt;, &lt;code&gt;load&lt;/code&gt;, &lt;code&gt;unload&lt;/code&gt;, &lt;code&gt;resize&lt;/code&gt;, &lt;code&gt;scroll&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;oaLP&quot;&gt;&lt;strong&gt;События касания&lt;/strong&gt;: &lt;code&gt;touchstart&lt;/code&gt;, &lt;code&gt;touchmove&lt;/code&gt;, &lt;code&gt;touchend&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;QUey&quot;&gt;3. Использование объекта события&lt;/h3&gt;
  &lt;p id=&quot;KHfx&quot;&gt;Когда происходит событие, создается объект события, который передается в обработчик. Он содержит информацию о событии:&lt;/p&gt;
  &lt;pre id=&quot;1ZNO&quot; data-lang=&quot;javascript&quot;&gt;button.addEventListener(&amp;#x27;click&amp;#x27;, function(event) {
  console.log(event.type); // &amp;#x27;click&amp;#x27;
  console.log(event.target); // элемент, на который было нажато
});&lt;/pre&gt;
  &lt;figure id=&quot;AhiI&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f3/16/f316c91b-ab7b-4220-96a5-3b9a279c2adc.gif&quot; width=&quot;1138&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;wRan&quot;&gt;4. Всплытие и перехват событий&lt;/h3&gt;
  &lt;p id=&quot;Got2&quot;&gt;События могут распространяться по DOM-дереву двумя способами:&lt;/p&gt;
  &lt;ul id=&quot;P6Jn&quot;&gt;
    &lt;li id=&quot;58wx&quot;&gt;&lt;strong&gt;Всплытие (bubbling)&lt;/strong&gt;: Событие обрабатывается сначала самым внутренним элементом и поднимается вверх к родительским элементам.&lt;/li&gt;
    &lt;li id=&quot;mrYH&quot;&gt;&lt;strong&gt;Перехват (capturing)&lt;/strong&gt;: Событие обрабатывается сначала самыми внешними элементами и идет вниз к целевому элементу.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;oMHZ&quot;&gt;Пример кода:&lt;/p&gt;
  &lt;pre id=&quot;UN4U&quot; data-lang=&quot;javascript&quot;&gt;const parent = document.querySelector(&amp;#x27;.parent&amp;#x27;);
const child = document.querySelector(&amp;#x27;.child&amp;#x27;);

parent.addEventListener(&amp;#x27;click&amp;#x27;, function() {
  console.log(&amp;#x27;Parent clicked&amp;#x27;);
}, true); // true означает использовать перехват

child.addEventListener(&amp;#x27;click&amp;#x27;, function() {
  console.log(&amp;#x27;Child clicked&amp;#x27;);
});&lt;/pre&gt;
  &lt;figure id=&quot;ygha&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/54/ac/54acc63b-ae0e-41a4-87ba-6d3b2d2bccbe.gif&quot; width=&quot;1138&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;66F4&quot;&gt;5. Остановка распространения и отмена действия по умолчанию&lt;/h3&gt;
  &lt;h4 id=&quot;IpJo&quot;&gt;5.1. Остановка распространения события&lt;/h4&gt;
  &lt;p id=&quot;24Dn&quot;&gt;Чтобы предотвратить дальнейшее распространение события, используйте &lt;code&gt;event.stopPropagation()&lt;/code&gt;:&lt;/p&gt;
  &lt;pre id=&quot;bEcg&quot; data-lang=&quot;javascript&quot;&gt;child.addEventListener(&amp;#x27;click&amp;#x27;, function(event) {
  event.stopPropagation();
  console.log(&amp;#x27;Child clicked&amp;#x27;);
});&lt;/pre&gt;
  &lt;h4 id=&quot;ZLWd&quot;&gt;5.2. Отмена действия по умолчанию&lt;/h4&gt;
  &lt;p id=&quot;rjp8&quot;&gt;Чтобы отменить действие по умолчанию браузера (например, переход по ссылке), используйте &lt;code&gt;event.preventDefault()&lt;/code&gt;:&lt;/p&gt;
  &lt;pre id=&quot;k8xq&quot; data-lang=&quot;javascript&quot;&gt;const link = document.querySelector(&amp;#x27;a&amp;#x27;);
link.addEventListener(&amp;#x27;click&amp;#x27;, function(event) {
  event.preventDefault();
  console.log(&amp;#x27;Link click prevented&amp;#x27;);
});&lt;/pre&gt;
  &lt;h3 id=&quot;aEfU&quot;&gt;Пример объединения всех техник&lt;/h3&gt;
  &lt;pre id=&quot;pOxp&quot; data-lang=&quot;html&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;
    &amp;lt;head&amp;gt;    
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;    
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt; 
    &amp;lt;title&amp;gt;Document&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;    
    &amp;lt;div class=&amp;quot;parent&amp;quot;&amp;gt;        
        &amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;child&amp;quot;&amp;gt;Click me&amp;lt;/button&amp;gt;    
    &amp;lt;/div&amp;gt;    
    &amp;lt;script&amp;gt;        
        const parent = document.querySelector(&amp;#x27;.parent&amp;#x27;);        
        const button = document.querySelector(&amp;#x27;.child&amp;#x27;);            
        
        parent.addEventListener(&amp;#x27;click&amp;#x27;, function() {            
            console.log(&amp;#x27;Parent clicked&amp;#x27;);        
        }, true); // Используем перехват            
        
        button.addEventListener(&amp;#x27;click&amp;#x27;, function(event) {            
            event.stopPropagation(); // Останавливаем всплытие            
            console.log(&amp;#x27;Button clicked&amp;#x27;);        
        });    
    &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;VbRa&quot;&gt;В нашем &lt;a href=&quot;https://t.me/iTCALLBACK&quot; target=&quot;_blank&quot;&gt;телеграмм канале&lt;/a&gt; вы можете предложить тему для следующего мини урока&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>it-callback:animate</id><link rel="alternate" type="text/html" href="https://teletype.in/@it-callback/animate?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=it-callback"></link><title>Введение в CSS-анимации </title><published>2024-06-22T11:38:49.050Z</published><updated>2024-06-22T12:09:04.095Z</updated><category term="css" label="css"></category><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/5a/a3/5aa3ad0d-9d2e-4ea4-862b-adc14d849ef3.gif&quot;&gt;CSS-анимации позволяют добавить интерактивные и динамические элементы на веб-страницу, улучшая пользовательский опыт и визуальное восприятие.</summary><content type="html">
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;gfFu&quot;&gt;CSS-анимации позволяют добавить интерактивные и динамические элементы на веб-страницу, улучшая пользовательский опыт и визуальное восприятие. С помощью CSS-анимаций можно создавать плавные переходы между состояниями элементов, перемещения, изменения цвета и многие другие эффекты. Давайте рассмотрим основные концепции и примеры.&lt;/p&gt;
  &lt;/section&gt;
  &lt;h4 id=&quot;bzxs&quot;&gt;Основные понятия&lt;/h4&gt;
  &lt;ol id=&quot;EQoq&quot;&gt;
    &lt;li id=&quot;dys0&quot;&gt;&lt;strong&gt;Переходы (Transitions)&lt;/strong&gt;:&lt;/li&gt;
    &lt;ul id=&quot;C51U&quot;&gt;
      &lt;li id=&quot;iHEJ&quot;&gt;&lt;strong&gt;Transition Property&lt;/strong&gt;: определяет, какие свойства будут анимированы.&lt;/li&gt;
      &lt;li id=&quot;mJJi&quot;&gt;&lt;strong&gt;Transition Duration&lt;/strong&gt;: задает продолжительность анимации.&lt;/li&gt;
      &lt;li id=&quot;NnRo&quot;&gt;&lt;strong&gt;Transition Timing Function&lt;/strong&gt;: определяет, как анимация будет изменяться во времени.&lt;/li&gt;
      &lt;li id=&quot;4F3D&quot;&gt;&lt;strong&gt;Transition Delay&lt;/strong&gt;: задает задержку перед началом анимации.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;HHAM&quot;&gt;&lt;strong&gt;Ключевые кадры (Keyframes)&lt;/strong&gt;:&lt;/li&gt;
    &lt;ul id=&quot;GFHk&quot;&gt;
      &lt;li id=&quot;Qlmv&quot;&gt;Используются для создания более сложных анимаций.&lt;/li&gt;
      &lt;li id=&quot;qyRu&quot;&gt;Позволяют определять промежуточные состояния анимации.&lt;/li&gt;
      &lt;li id=&quot;jg4q&quot;&gt;Используются с правилом &lt;code&gt;@keyframes&lt;/code&gt;.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;TagH&quot;&gt;&lt;strong&gt;Анимации (Animations)&lt;/strong&gt;:&lt;/li&gt;
    &lt;ul id=&quot;nS1g&quot;&gt;
      &lt;li id=&quot;FTQ0&quot;&gt;&lt;strong&gt;Animation Name&lt;/strong&gt;: имя, заданное для анимации с ключевыми кадрами.&lt;/li&gt;
      &lt;li id=&quot;WFcs&quot;&gt;&lt;strong&gt;Animation Duration&lt;/strong&gt;: продолжительность выполнения анимации.&lt;/li&gt;
      &lt;li id=&quot;aVTw&quot;&gt;&lt;strong&gt;Animation Timing Function&lt;/strong&gt;: определяет, как анимация будет изменяться во времени.&lt;/li&gt;
      &lt;li id=&quot;hEHp&quot;&gt;&lt;strong&gt;Animation Delay&lt;/strong&gt;: задержка перед началом анимации.&lt;/li&gt;
      &lt;li id=&quot;mSqA&quot;&gt;&lt;strong&gt;Animation Iteration Count&lt;/strong&gt;: количество повторений анимации.&lt;/li&gt;
      &lt;li id=&quot;PQaJ&quot;&gt;&lt;strong&gt;Animation Direction&lt;/strong&gt;: направление выполнения анимации.&lt;/li&gt;
      &lt;li id=&quot;hKG8&quot;&gt;&lt;strong&gt;Animation Fill Mode&lt;/strong&gt;: определяет, будет ли элемент сохранять стили после завершения анимации.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ol&gt;
  &lt;h4 id=&quot;9cpa&quot;&gt;Примеры&lt;/h4&gt;
  &lt;ol id=&quot;abch&quot;&gt;
    &lt;li id=&quot;P7wY&quot;&gt;&lt;strong&gt;Простой переход&lt;/strong&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;ka9A&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&amp;quot;ru&amp;quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;
    &amp;lt;title&amp;gt;CSS Переходы&amp;lt;/title&amp;gt;
    &amp;lt;style&amp;gt;
        body { 
            display: flex; 
            justify-content: center; 
            align-items: center; 
            height: 100vh; 
        }    

        .box {
            width: 100px;
            height: 100px;
            background-color: blue;
            transition: background-color 0.5s ease, transform 0.5s ease;
        }

        .box:hover {
            background-color: red;
            transform: rotate(45deg);
        }
    &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;div class=&amp;quot;box&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;
  &lt;figure id=&quot;zY8R&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/5a/a3/5aa3ad0d-9d2e-4ea4-862b-adc14d849ef3.gif&quot; width=&quot;1138&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;MeR6&quot;&gt;В этом примере &lt;code&gt;background-color&lt;/code&gt; и &lt;code&gt;transform&lt;/code&gt; меняются при наведении курсора на элемент &lt;code&gt;.box&lt;/code&gt;.&lt;/p&gt;
  &lt;/section&gt;
  &lt;ol id=&quot;rYKw&quot;&gt;
    &lt;li id=&quot;USFe&quot;&gt;&lt;strong&gt;Анимация с ключевыми кадрами&lt;/strong&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;GmUN&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&amp;quot;ru&amp;quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&amp;gt;
    &amp;lt;title&amp;gt;CSS Анимация&amp;lt;/title&amp;gt;
    &amp;lt;style&amp;gt;
        body {
            display: flex;            
            justify-content: center;            
            align-items: center;            
            height: 100vh;        
        }
        
        .animated-box {
            width: 100px;
            height: 100px;
            background-color: green;
            animation: moveAndRotate 2s infinite;
        }

        @keyframes moveAndRotate {
            0% {
                transform: translateX(0) rotate(0deg);
                background-color: green;
            }
            50% {
                transform: translateX(100px) rotate(180deg);
                background-color: yellow;
            }
            100% {
                transform: translateX(0) rotate(360deg);
                background-color: green;
            }
        }
    &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;div class=&amp;quot;animated-box&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;
  &lt;figure id=&quot;BCor&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/38/4f/384ffb3c-291e-488a-b8de-6813d2c08b12.gif&quot; width=&quot;1138&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Gf0X&quot;&gt;Здесь используется правило &lt;code&gt;@keyframes&lt;/code&gt;, чтобы создать анимацию, в которой элемент &lt;code&gt;.animated-box&lt;/code&gt; перемещается и вращается, меняя цвет.&lt;/p&gt;
  &lt;/section&gt;
  &lt;h4 id=&quot;ZzfW&quot;&gt;Полезные советы&lt;/h4&gt;
  &lt;ul id=&quot;EUo7&quot;&gt;
    &lt;li id=&quot;TP6X&quot;&gt;&lt;strong&gt;Плавность&lt;/strong&gt;: используйте функцию плавности (&lt;code&gt;ease&lt;/code&gt;, &lt;code&gt;ease-in&lt;/code&gt;, &lt;code&gt;ease-out&lt;/code&gt; и т.д.) для естественного эффекта.&lt;/li&gt;
    &lt;li id=&quot;5l1D&quot;&gt;&lt;strong&gt;Совместимость&lt;/strong&gt;: убедитесь, что анимации корректно работают в разных браузерах.&lt;/li&gt;
    &lt;li id=&quot;sGT2&quot;&gt;&lt;strong&gt;Производительность&lt;/strong&gt;: избегайте сложных анимаций, которые могут сильно нагружать процессор.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;3bJo&quot;&gt;В нашем &lt;a href=&quot;https://t.me/iTCALLBACK&quot; target=&quot;_blank&quot;&gt;телеграмм канале&lt;/a&gt; вы можете предложить тему для следующего мини урока&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>it-callback:drop-downMenu</id><link rel="alternate" type="text/html" href="https://teletype.in/@it-callback/drop-downMenu?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=it-callback"></link><title>Создание выпадающего меню с помощью HTML, CSS и JavaScript</title><published>2024-06-13T23:12:23.050Z</published><updated>2024-06-15T11:32:04.095Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/50/14/501479a4-b7f9-48d6-b596-b6fb5a8166ce.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/81/6d/816da3d8-67f1-4bfb-969f-3f858b16ebb9.gif&quot;&gt;В этом уроке мы рассмотрим, как создать простое выпадающее меню, используя HTML, CSS и JavaScript. Следуя пошаговым инструкциям, вы сможете легко повторить это на своем компьютере.</summary><content type="html">
  &lt;p id=&quot;4JkY&quot;&gt;В этом уроке мы рассмотрим, как создать простое выпадающее меню, используя HTML, CSS и JavaScript. Следуя пошаговым инструкциям, вы сможете легко повторить это на своем компьютере.&lt;/p&gt;
  &lt;p id=&quot;UEqy&quot;&gt;Для начала  мы должны понять что такое выпадающее меню, давайте разберемся&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;blockquote id=&quot;ioPo&quot;&gt;&lt;em&gt;&lt;strong&gt;Выпадающее меню (или dropdown menu) &lt;/strong&gt;— это элемент пользовательского интерфейса, который позволяет пользователю выбирать один вариант из списка. Список скрыт до тех пор, пока пользователь не кликнет на заголовок меню. Когда меню открыто, пользователю предоставляется несколько вариантов для выбора.&lt;/em&gt;&lt;/blockquote&gt;
  &lt;/section&gt;
  &lt;p id=&quot;nivU&quot;&gt;Выпадающие меню часто используются в навигационных панелях веб-сайтов, чтобы сохранить компактность интерфейса и облегчить доступ к различным разделам сайта.&lt;/p&gt;
  &lt;h4 id=&quot;GBwj&quot;&gt;Пример выпадающего меню:&lt;/h4&gt;
  &lt;p id=&quot;2jJR&quot;&gt;В типичном выпадающем меню будет кнопка или заголовок, который при клике открывает список пунктов меню:&lt;/p&gt;
  &lt;figure id=&quot;NzfQ&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/81/6d/816da3d8-67f1-4bfb-969f-3f858b16ebb9.gif&quot; width=&quot;690&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;mkrF&quot;&gt;Теперь, давайте перейдем к созданию такого меню.&lt;/p&gt;
  &lt;h2 id=&quot;4ml9&quot;&gt;Создание HTML-разметки&lt;/h2&gt;
  &lt;p id=&quot;e6DE&quot;&gt;Для начала создадим базовую структуру нашего выпадающего меню.&lt;/p&gt;
  &lt;figure id=&quot;fRLA&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3c/df/3cdff7b7-36bf-4baa-ba59-09dc3ecc24d0.png&quot; width=&quot;850&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;D5pY&quot;&gt;В этом примере:&lt;/p&gt;
    &lt;ul id=&quot;1oAe&quot;&gt;
      &lt;li id=&quot;TBkz&quot;&gt;Мы создаем контейнер &lt;code&gt;div&lt;/code&gt; с классом &lt;code&gt;dropdown&lt;/code&gt;.&lt;/li&gt;
      &lt;li id=&quot;fTF8&quot;&gt;Внутри контейнера находится кнопка &lt;code&gt;button&lt;/code&gt; с классом &lt;code&gt;dropbtn&lt;/code&gt;, которая служит заголовком меню.&lt;/li&gt;
      &lt;li id=&quot;lJ5D&quot;&gt;Также внутри контейнера &lt;code&gt;div&lt;/code&gt; с классом &lt;code&gt;dropdown-content&lt;/code&gt;, содержащий ссылки (&lt;code&gt;a&lt;/code&gt;) — это элементы нашего &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;Hldh&quot;&gt;Стилизация меню с помощью CSS&lt;/h2&gt;
  &lt;p id=&quot;ZHts&quot;&gt;Добавим стили, чтобы наше меню выглядело красиво и было функциональным. Создадим файл &lt;code&gt;style.css&lt;/code&gt; и добавим в него следующий код:&lt;/p&gt;
  &lt;figure id=&quot;6nDA&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/66/5b/665b03db-d5ae-45ca-bfa6-7be22181dfd9.png&quot; width=&quot;581&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;agRx&quot;&gt;Добавление JavaScript для интерактивности&lt;/h2&gt;
  &lt;p id=&quot;qZAx&quot;&gt;В этом примере JavaScript не требуется, так как мы использовали CSS для показа/скрытия меню при наведении. Но для демонстрации, давайте добавим JavaScript, чтобы меню открывалось при клике на кнопку.&lt;/p&gt;
  &lt;p id=&quot;6ppZ&quot;&gt;Создадим файл &lt;code&gt;script.js&lt;/code&gt; и добавим следующий код:&lt;/p&gt;
  &lt;figure id=&quot;NqGO&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/21/b6/21b67558-ec4c-405c-8c1c-bb3853c74086.png&quot; width=&quot;976&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;l7KQ&quot;&gt;В этом коде:&lt;/p&gt;
    &lt;ul id=&quot;7gZS&quot;&gt;
      &lt;li id=&quot;nRS5&quot;&gt;Мы добавляем обработчик событий для кнопки, чтобы при клике меню показывалось или скрывалось.&lt;/li&gt;
      &lt;li id=&quot;6kqV&quot;&gt;Мы также добавляем функцию для закрытия меню, если пользователь кликает вне его области.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/section&gt;
  &lt;p id=&quot;jOBn&quot;&gt;Теперь у вас есть простое выпадающее меню, созданное с использованием HTML, CSS и JavaScript. Вы можете адаптировать и расширять его по своему усмотрению, добавляя дополнительные стили и функциональность.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;CukM&quot;&gt;Полный код вы можете получить &lt;a href=&quot;https://t.me/iTCALLBACK&quot; target=&quot;_blank&quot;&gt;на нашем канале&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;pYna&quot;&gt;Попробуйте запустить этот код у себя на компьютере и поэкспериментируйте с ним, чтобы лучше понять, как работает выпадающее меню.&lt;/p&gt;

</content></entry></feed>