Рубрика: Java script

  • Урок 7. Перетаскивание и всплывающие подсказки

    Светофор

    МЕТОДЫ,  АТРИБУТЫ и СОБЫТИЯ

    preventDefault() метод,  отменяет это событие, если оно отменяемое, а это означает, что действие по умолчанию, которое принадлежит к событию, не произойдет.

    Например, это может быть полезно, когда:

    • При нажатии на кнопку «Отправить», не допустить его отправки формы
    • При нажатии на ссылку, предотвратить ссылку от следования URL

    dataTransfer.setData () Метод, задает тип данных и значение перетаскиваемом данных.

    ondragstart атрибут вызывает функцию перетаскивания (событие), которое определяет, какие данные тащиться.

    AppendChild () Метод, добавляет узел в качестве последнего дочернего узла.

    getElementById () Метод, возвращает элемент, который имеет атрибут ID с указанным значением.

    Этот метод является одним из наиболее распространенных методов в HTML DOM, и используется почти каждый раз, когда вы хотите управлять, или получить информацию из, элемента на документе.

    Возвращает NULL , если никакие элементы с указанным идентификатором не существует.

    ID должно быть уникальным в пределах страницы. Тем не менее, если существует более одного элемента с указанным идентификатором, метод getElementById () возвращает первый элемент в исходном коде.

    OnDrop Событие происходит, когда перетаскиваемый элемент или текст выбор падает на цель перетаскивания.

    Перетаскивание является очень распространенной особенностью в HTML5. Это когда вы «захватываете» объект и перетащить его в другое место.

    OnDragOver Событие происходит, когда перетаскиваемый элемент или выделение текста перетаскивается над целевым объектом перетаскивания.

    По умолчанию данные / элементы могут не быть удалены в других элементах. Чтобы разрешить падение, мы должны предотвратить обработку по умолчанию элемента. Это делается путем вызова метода event.preventDefault () для события OnDragOver.

    Draggable — для того, чтобы сделать элемент перетаскиваемым, установите перетаскиваемым элементам атрибут со значением истина.

    OnMouseOver Событие, происходит, когда указатель мыши перемещается на элемент, или на одного из своих детей.

    onmouseout Событие, происходит, когда указатель мыши перемещается из элемента, или из одного из своих детей.

    relatedTarget Свойство, возвращает элемент, связанный с элементом, вызвавшего событие мыши.

    Свойство relatedTargert можно использовать с событием наведения мыши, чтобы указать элемент с которого курсор только что вышел, или с событием MouseOut для указания элемента курсора только что навведенного.

    Примечание: Это свойство только для чтения.

    КОД

    Html

    <p>Перетащите цвета так чтоб получился светофор:</p>
    
    <div id="div1" style="border-radius: 20px 20px 0 0;" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    <div id="text1">Красный</div>
    <div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    <div id="text2">Желтый</div>
    <div id="div3" style="border-radius: 0 0 20px 20px;" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    <div id="text3">Зеленый</div>
    
    <img id="drag1" src="1.png" draggable="true" ondragstart="drag(event)">
    <img id="drag2" src="2.png" draggable="true" ondragstart="drag(event)">
    <img id="drag3" src="3.png" draggable="true" ondragstart="drag(event)">
    

    Style

    #div1 {    
      width: 100px;
        height: 100px;
        padding: 10px;
        margin: 5px;
        border: 1px solid #aaaaaa;
        background: #000;
    }
    #div2 {    
      width: 100px;
        height: 100px;
        padding: 10px;
        margin: 5px;
        border: 1px solid #aaaaaa;
        background: #000;
    }
    #div3 {    
      width: 100px;
        height: 100px;
        padding: 10px;
        margin: 5px;
        border: 1px solid #aaaaaa;
        background: #000;
    }
    
    #text1 {
      color: #fff;
        display: none;
        background-image: url("6.png");
        position: absolute;
        margin-top: -115px;
        margin-left: 150px;
        width: 100px;
        height: 65px;
        text-align: center;
        padding-top: 25px;
    }
    
    #text2 {
      color: #fff;
        display: none;
        background-image: url("7.png");
        position: absolute;
        margin-top: -115px;
        margin-left: 150px;
        width: 100px;
        height: 65px;
        text-align: center;
        padding-top: 25px;
    }
    
    #text3 {
      color: #fff;
        display: none;
        background-image: url("8.png");
        position: absolute;
        margin-top: -115px;
        margin-left: 150px;
        width: 100px;
        height: 65px;
        text-align: center;
        padding-top: 25px;
    }
    

    Script для перетаскивания

    <script>
    function allowDrop(ev) {
        ev.preventDefault();
    }
    function drag(ev) {
        ev.dataTransfer.setData("text", ev.target.id);
    }
    function drop(ev) {
        ev.preventDefault();
        var data = ev.dataTransfer.getData("text");
        ev.target.appendChild(document.getElementById(data));
    }
    </script>
    

    Script для всплывающих подсказок

    <script>
        var catlink     = document.getElementById("div1"),
        catlink1     = document.getElementById("div2"),
        catlink2     = document.getElementById("div3"),
            catblock    = document.getElementById("text1"),
        catblock1    = document.getElementById("text2");
        catblock2    = document.getElementById("text3");
     
        catlink.onmouseover = function(){
            catblock.style.display="block";
        
        };
      catlink1.onmouseover = function(){
            catblock1.style.display="block";
        
        };
      catlink2.onmouseover = function(){
            catblock2.style.display="block";
        
        };
        catblock.onmouseout = function(e){
            var evt = e||window.event,
                rel = evt.relatedTarget || evt.toElement;
            if (rel.id !== "div1") {
                catblock.style.display="none";
            }
        };
      catblock1.onmouseout = function(e){
            var evt = e||window.event,
                rel = evt.relatedTarget || evt.toElement;
            if (rel.id !== "div2") {
                catblock1.style.display="none";
            }
        };
      catblock2.onmouseout = function(e){
            var evt = e||window.event,
                rel = evt.relatedTarget || evt.toElement;
            if (rel.id !== "div3") {
                catblock2.style.display="none";
            }
        };
    </script>
    

    КАРТИНКИ

    1 2 3 6 7 8

  • Урок 6. Примеры на Onkeyup, onkeydown и focus

    Пример №1

    Скрипт меняющий строчные буквы на заглавные

    СОБЫТИЯ и МЕТОДЫ

    OnKeyUp Событие, происходит, когда пользователь отпускает клавишу (на клавиатуре).

    toUpperCase () Метод, преобразует строку заглавными буквами.

    КОД

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
    </head>
    <body>
    <p>Функция запускается, когда пользователь отпускает клавишу в поле ввода, меняет буквы срочные на заглавные </p>
    Введите текст: <input type="text" id="fname" onkeyup="myFunction()">
    <script>
    function myFunction() {
        var x = document.getElementById("fname");
        x.value = x.value.toUpperCase();
    }
    </script>
    </body>
    </html>
    

    Пример № 2

    Меняющийся цвет фона <input> при вводе с клавиатуры

    СВОЙСТВА

    BackgroundColor возвращает цвет фона элемента.

    OnKeyDown Событие, происходит, когда пользователь делает нажатие клавиши (на клавиатуре).

    КОД

    <p>Нажмите и удерживайте нажатой клавишу внутри текстового поля , чтобы установить красный цвет фона . Отпустите кнопку , чтобы установить зеленый цвет фона.</p>
    <input type="text" id="demo" onkeydown="keydownFunction()" onkeyup="keyupFunction()">
    <script>
    function keydownFunction() {
        document.getElementById("demo").style.backgroundColor = "red";
    }
    function keyupFunction() {
        document.getElementById("demo").style.backgroundColor = "green";
    }
    </script>
    

    Пример №3

    Мышонок

    СОБЫТИЯ, МЕТОДЫ и ФУНКЦИИ

    OnClick событие, выполнение JavaScript при щелчке по кнопкеЮ

    Element.getBoundingClientRect() Метод, возвращает в px координаты элемента относительно верхнего левого угла области просмотра окна браузера.

    ParseInt () Функция, разбирает строку и возвращает целое число.

    offsetWidth Свойство, свойство возвращает видимую ширину элемента в пикселях, в том числе отступа, границы и скроллинга, но не на полях.

    offsetHeight Свойство, свойство возвращает видимую высоту элемента в пикселях, в том числе отступа, границы и скроллинга, но не на полях.

    КОД

    <!DOCTYPE HTML>
    <html>
    <head>
      <meta charset="utf-8">
      <style>
        #mouse {
          display: inline-block;
          cursor: pointer;
          margin: 0;
        }
        
        #mouse:focus {
          outline: 1px dashed black;
        }
      </style>
    </head>
    <body>
      <p>Кликните на мышонка и передвигайте его, нажимая клавиши со стрелками.</p>
      <pre id="mouse" tabindex="0">
     _   _
    (q\_/p)
     /. .\
    =\_t_/=   __
     /   \   (
    ((   ))   )
    /\) (/\  /
    \  Y  /-'
     nn^nn
    </pre>
      <script>
        document.getElementById('mouse').onclick = function() {
          this.style.left = this.getBoundingClientRect().left + 'px';
          this.style.top = this.getBoundingClientRect().top + 'px';
    
          this.style.position = 'fixed';
        };
        document.getElementById('mouse').onkeydown = function(e) {
          switch (e.keyCode) {
            case 37: // влево
              this.style.left = parseInt(this.style.left) - this.offsetWidth + 'px';
              return false;
            case 38: // вверх
              this.style.top = parseInt(this.style.top) - this.offsetHeight + 'px';
              return false;
            case 39: // вправо
              this.style.left = parseInt(this.style.left) + this.offsetWidth + 'px';
              return false;
            case 40: // вниз
              this.style.top = parseInt(this.style.top) + this.offsetHeight + 'px';
              return false;
          }
        };
      </script>
    </body>
    </html>
    

     

    Виртуальные коды клавиш для javascript (event.keyCode)

    Клавиша
    Обозначение
    10-ный код
    16-ный код
    забой DOM_VK_BACK_SPACE 8 0x08
    Tab DOM_VK_TAB 9 0x09
    Enter DOM_VK_ENTER 13 0x0D
    Shift DOM_VK_SHIFT 16 0x10
    Ctrl DOM_VK_CONTROL 17 0x11
    Alt DOM_VK_ALT 18 0x12
    Pause DOM_VK_PAUSE 19 0x13
    CapsLock DOM_VK_CAPS_LOCK 20 0x14
    Esc DOM_VK_ESCAPE 27 0x1B
    пробел DOM_VK_SPACE 32 0x20
    PageUp DOM_VK_PAGE_UP 33 0x21
    PageDown DOM_VK_PAGE_DOWN 34 0x22
    End DOM_VK_END 35 0x23
    Home DOM_VK_HOME 36 0x24
    стрелка влево DOM_VK_LEFT 37 0x25
    стрелка вверх DOM_VK_UP 38 0x26
    стрелка вправо DOM_VK_RIGHT 39 0x27
    стрелка вниз DOM_VK_DOWN 40 0x28
    Insert 45 0x2D
    Delete 46 0x2E
    0 48 0x30
    1 49 0x31
    2 50 0x32
    3 51 0x33
    4 52 0x34
    5 53 0x35
    6 54 0x36
    7 55 0x37
    8 56 0x38
    9 57 0x39
    A 65 0x41
    B 66 0x42
    C 67 0x43
    D 68 0x44
    E 69 0x45
    F 70 0x46
    G 71 0x47
    H 72 0x48
    I 73 0x49
    J 74 0x4A
    K 75 0x4B
    L 76 0x4C
    M 77 0x4D
    N 78 0x4E
    O 79 0x4F
    P 80 0x50
    Q 81 0x51
    R 82 0x52
    S 83 0x53
    T 84 0x54
    U 85 0x55
    V 86 0x56
    W 87 0x57
    X 88 0x58
    Y 89 0x59
    Z 90 0x5A
    левая клавиша Windows 91 0x5B
    правая клавиша Windows 92 0x5C
    клавиша Applications 93 0x5D
    NumPad 0 96 0x60
    NumPad 1 97 0x61
    NumPad 2 98 0x62
    NumPad 3 99 0x63
    NumPad 4 100 0x64
    NumPad 5 101 0x65
    NumPad 6 102 0x66
    NumPad 7 103 0x67
    NumPad 8 104 0x68
    NumPad 9 105 0x69
    NumPad * 106 0x6A
    NumPad + 107 0x6B
    NumPad — 109 0x6D
    NumPad . 110 0x6E
    NumPad / 111 0x6F
    F1 DOM_VK_F1 112 0x70
    F2 DOM_VK_F2 113 0x71
    F3 DOM_VK_F3 114 0x72
    F4 DOM_VK_F4 115 0x73
    F5 DOM_VK_F5 116 0x74
    F6 DOM_VK_F6 117 0x75
    F7 DOM_VK_F7 118 0x76
    F8 DOM_VK_F8 119
    0x77
    F9 DOM_VK_F9 120 0x78
    F10 DOM_VK_F10 121 0x79
    F11 DOM_VK_F11 122 0x7A
    F12 DOM_VK_F12 123 0x7B
    NumLock DOM_VK_NUM_LOCK 144 0x90
    ScrollLock DOM_VK_SCROLL_LOCK 145 0x91
    PrintScreen DOM_VK_PRINTSCREEN 154 0x9A
    Meta DOM_VK_META 157 0x9D
    ; 186 0xBA
    = 187 0xBB
    , 188 0xBC
    — 189 0xBD
    . 190 0xBE
    / 191 0xBF
    ~ 192 0xC0
    [ 219 0xDB
    \ 220 0xDC
    ] 221 0xDD
    ‘ 222 0xDE

  • Задание onclick и onscroll

    Задание

    1. Создать раскрывающееся меню при клике
    2. Сделайте так, чтобы при прокрутке ниже элемента #avatar (картинка с Винни-Пухом) – он продолжал показываться в левом-верхнем углу. При прокрутке вверх – должен возвращаться на обычное место.

    Решение

    1.

    <!DOCTYPE HTML>
    <html>
    <head>
      <meta charset="utf-8">
      <style>
        .menu ul {
          margin: 0;
          list-style: none;
          padding-left: 20px;
          display: none;
        }
        .menu .title {
          font-size: 18px;
          cursor: pointer;
        }
        .menu .title::before {
          content: '▶ ';
          font-size: 80%;
          color: green;
        }
        .menu.open .title::before {
          content: '▼ ';
        }
        .menu.open ul {
          display: block;
        }
      </style>
    </head>
    <body>
      <div id="sweeties" class="menu">
        <span class="title">Сладости (нажми меня)!</span>
        <ul>
          <li>Торт</li>
          <li>Пончик</li>
          <li>Пирожное</li>
        </ul>
      </div>
      <script>
        var menuElem = document.getElementById('sweeties');
        var titleElem = menuElem.querySelector('.title');
        titleElem.onclick = function() {
          menuElem.classList.toggle('open');
        };
      </script>
    </body>
    </html>
    

    2.

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <style>
        body,
        html {
          margin: 0;
          padding: 0;
        }
        .column-left {
          float: left;
          width: 30%;
          background: #aef;
        }
        .column-right {
          margin-left: 30%;
          width: 70%;
          background: tan;
          overflow: auto;
          /* расшириться вниз захватить float'ы */
        }
        .header {
          line-height: 60px;
          background: yellow;
        }
        .inner {
          margin: 1em;
          font-size: 130%;
        }
        #avatar {
          float: left;
          margin: 0 1em .5em 0;
          border: 1px solid black;
          text-align: center;
          background: white;
        }
        .fixed {
          position: fixed;
          top: 0;
          left: 0;
        }
      </style>
    </head>
    <body>
    
      <div class="header">Шапка</div>
      <div class="column-left">
        <div class="inner">
          <h3>Персонажи:</h3>
          <ul>
            <li>Винни-Пух</li>
            <li>Ослик Иа</li>
            <li>Сова</li>
            <li>Кролик</li>
          </ul>
        </div>
      </div>
      <div class="column-right">
        <div class="inner">
          <h3>Винни-Пух</h3>
          <div id="avatar">
            <img src="https://js.cx/clipart/winnie-mult.jpg" width="200" height="150">
            <div>Кадр из мультфильма</div>
          </div>
          <p>Ви́нни-Пу́х (англ. Winnie-the-Pooh) — плюшевый мишка, персонаж повестей и стихов Алана Александра Милна (цикл не имеет общего названия и обычно тоже называется «Винни-Пух», по первой книге). Один из самых известных героев детской литературы XX века.</p>
    
          <p>В 1960-е—1970-е годы, благодаря пересказу Бориса Заходера «Винни-Пух и все-все-все», а затем и фильмам студии «Союзмультфильм», где мишку озвучивал Евгений Леонов, Винни-Пух стал очень популярен и в Советском Союзе.</p>
    
          <p>Как и многие другие персонажи книги Милна, медвежонок Винни получил имя от одной из реальных игрушек Кристофера Робина (1920—1996), сына писателя. В свою очередь, плюшевый мишка Винни-Пух был назван по имени медведицы по кличке Виннипег (Винни),
            содержавшейся в 1920-х в Лондонском зоопарке.</p>
    
          <p>Медведица Виннипег (американский чёрный медведь) попала в Великобританию как живой талисман (маскот) Канадского армейского ветеринарного корпуса из Канады, а именно из окрестностей города Виннипега. Она оказалась в кавалерийском полку «Форт Гарри
            Хорс» 24 августа 1914 года ещё будучи медвежонком (её купил у канадского охотника-траппера за двадцать долларов 27-летний полковой ветеринар лейтенант Гарри Колборн, заботившийся о ней и в дальнейшем). Уже в октябре того же года медвежонок был
            привезён вместе с войсками в Британию, а так как полк должен был быть в ходе Первой мировой войны переправлен во Францию, то в декабре было принято решение оставить зверя до конца войны в Лондонском зоопарке. Медведица полюбилась лондонцам, и
            военные не стали возражать против того, чтобы не забирать её из зоопарка и после войны[1]. До конца дней (она умерла 12 мая 1934 года) медведица находилась на довольствии ветеринарного корпуса, о чём в 1919 году на её клетке сделали соответствующую
            надпись.
          </p>
    
          <p>«Винни-Пух» представляет собой дилогию, но каждая из двух книг Милна распадается на 10 рассказов (stories) с собственным сюжетом, которые могут читаться, экранизироваться и т. д. независимо друг от друга. В некоторых переводах деление на две части
            не сохранено, в других не переведена вторая («Дом на Пуховой опушке»). Иногда первая и вторая книги выполнены разными переводчиками. Такова необычная судьба немецкого Винни-Пуха: первая книга вышла в немецком переводе в 1928 году, а вторая лишь
            в 1954; между этими датами — ряд трагических событий германской истории.</p>
    
    
          <p>Действие книг о Пухе происходит в 500-акровом лесу Эшдаун близ купленной Милнами в 1925 году фермы Кочфорд в графстве Восточный Сассекс, Англия, представленном в книге как Стоакровый лес (англ. The Hundred Acre Wood, в пересказе Заходера — Чудесный
            лес). Реальными являются также Шесть сосен и ручеёк, у которого был найден Северный Полюс, а также упоминаемая в тексте растительность, в том числе колючий утёсник (gorse-bush, чертополох у Заходера), в который падает Пух[2]. Маленький Кристофер
            Робин любил забираться в дупла деревьев и играть там с Пухом, поэтому многие персонажи книг живут в дуплах, и значительная часть действия происходит в таких жилищах или на ветвях деревьев[2]. Алан Милн, Кристофер Робин и Винни-Пух. Фотография
            из Британской национальной портретной галереи</p>
    
          <p>Действие «Винни-Пуха» разворачивается одновременно в трёх планах — это мир игрушек в детской, мир зверей «на своей территории» в Стоакровом лесу и мир персонажей в рассказах отца сыну (это наиболее чётко показано в самом начале)[4]. В дальнейшем
            рассказчик исчезает из повествования, и сказочный мир начинает собственное существование, разрастаясь от главы к главе[6]. Отмечалось сходство пространства и мира персонажей «Винни-Пуха» с классическим античным и средневековым эпосом[6]. Многообещающие
            эпические начинания персонажей (путешествия, подвиги, охоты, игры) оказываются комически малозначительными, в то время как настоящие события происходят во внутреннем мире героев (помощь в беде, гостеприимство, дружба)[6].</p>
    
          <p>Книги Милна выросли из устных рассказов и игр с Кристофером Робином; устное происхождение характерно и для многих других знаменитых литературных сказок[6]. «Я, собственно, ничего не придумывал, мне оставалось только описывать», как говорил впоследствии
            Милн[5]. Реальными игрушками Кристофера Робина были также Пятачок (подарок соседей), Иа-Иа без хвоста (ранний подарок родителей), Кенга с Крошкой Ру в сумке и Тигра (куплены родителями впоследствии специально для развития сюжета вечерних рассказов
            сыну). В рассказах они появляются именно в таком порядке[2]. Сову и Кролика Милн придумал сам; на иллюстрациях Шепарда они выглядят не как игрушки, а как настоящие животные, Кролик говорит Сове: «Только у меня и тебя есть мозги. У остальных —
            опилки». В процессе игры все эти персонажи получили индивидуальные повадки, привычки и манеру разговора[6]. На созданный Милном мир животных повлияла повесть Кеннета Грэма «Ветер в ивах», которой он восхищался и которую ранее иллюстрировал Шепард[5],
            возможна также скрытая полемика с «Книгой джунглей» Киплинга[5]. Текст взят из Википедии.</p>
        </div>
      </div>
    
      <script>
        var avatarElem = document.getElementById('avatar');
        var avatarSourceBottom = avatarElem.getBoundingClientRect().bottom + window.pageYOffset;
        window.onscroll = function() {
          if (avatarElem.classList.contains('fixed') && window.pageYOffset < avatarSourceBottom) {
            avatarElem.classList.remove('fixed');
          } else if (window.pageYOffset > avatarSourceBottom) {
            avatarElem.classList.add('fixed');
          }
        };
      </script>
    </body>
    </html>
    

     

  • Урок 5. Примеры на OnClick и ScrollTop.

    Лампочка

    СОБЫТИЯ

    OnClick событие, выполнение JavaScript при щелчке по кнопке

    КОД

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
    </head>
    <body>
    <h1>ЛАМПОЧКА</h1>
    <button onclick="document.getElementById('myImage').src='pic_bulbon.gif'">включить</button>
    <img id="myImage" src="pic_bulboff.gif" style="width:100px">
    <button onclick="document.getElementById('myImage').src='pic_bulboff.gif'">выключить</button>
    </body>
    </html>
    

    КАРТИНКИ ДЛЯ ПРОГРАММЫ

    pic_bulboff   pic_bulbon

    Кнопка вверх для сайта

    Можно сделать плавающую кнопку «наверх» на чистом javascript без использования сторонних библиотек. Отличие в том, что она будет отображаться независимо от того, осуществлялась прокрутка страницы или нет. Скрипт и код копируем в любое место шаблона.

    СВОЙСТВА, СОБЫТИЯ и МЕТОДЫ

    scrollTop Свойство, возвращает количество пикселей содержимого элемента прокручивает по вертикали.

    scrollBy () Метод, прокручивает документ на указанное число пикселей.

    setTimeout () Метод, вызывает функцию или вычисляет выражение после определенного количества миллисекунд.

    КОД

    <script type="text/javascript" >
        var smoothJumpUp = function() {
            if (document.body.scrollTop>0 || document.documentElement.scrollTop>0) {
                window.scrollBy(0,-50);
                setTimeout(smoothJumpUp, 20);
            }
        }
    </script>
    
    <a id="upbutton" href="#" onclick="smoothJumpUp(); return false;">
        <img src="/images/up.png" alt="Top" border="none" title="Наверх">
    </a>
    

    ПРИМЕР КАРТИНКИ ДЛЯ ПРОГРАММЫ

    up1

    Треугольник

    МЕТОДЫ и СВОЙСТВА

    getTotalLength() Метод, используется  для вычисления длины .

    strokeDasharray  позволяет определить длину оказанной части линии,  длина зазора.

    StrokeDashoffset позволяет изменять , где точку начала dasharray.

    addEventListener () Метод, присоединяет обработчик событий к элементу без перезаписи существующих обработчиков событий.

    КОД

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <style>
    body {
      height: 3000px;
    }
    
    #mySVG {
      position: fixed;
      top: 30%;
      width: 400px;
      height: 210px;
    }
    </style>
    </head>
    <body>
    <h1>Треугольник</h1>
    <p>Прокручивая страницу вниз будет рисоваться треугольник</p>
    <svg id="mySVG">
      <path fill="none" stroke="red" stroke-width="3" id="triangle" d="M150 0 L75 200 L225 200 Z" />
      Sorry, your browser does not support inline SVG.
    </svg>
    <script>
    // Получить идентификатор элемента <path> и длину <path>
    var triangle = document.getElementById("triangle");
    var length = triangle.getTotalLength();
    // Начальная позиция чертежа
    triangle.style.strokeDasharray = length;
    // Скрыть треугольник. Удалите эту строку , чтобы показать треугольник во время прокрутки
    triangle.style.strokeDashoffset = length;
    // найти процент прокрутки и смещения
    window.addEventListener("scroll", myFunction);
    function myFunction() {
    var scrollpercent = (document.body.scrollTop + document.documentElement.scrollTop) / (document.documentElement.scrollHeight - document.documentElement.clientHeight);
      var draw = length * scrollpercent;
      // Обратный чертеж ( при прокрутке вверх)
      triangle.style.strokeDashoffset = length - draw;
    }
    </script>
    </body>
    

     

  • Селекторы в Jquery Урок 12

    <head>
    <meta charset='utf-8'>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <style>
    .red{
    background:red;
    }
    .green{
    background:green;
    }
    *{border:1px solid black;}
    .blue{
    background:blue;
    }
    .main
    {
    color:white;
    float:left;
    padding:20px;
    }
    </style>
    </head>
    <body>
    <div class='red main'>div Red</div>
    <div class='green main'>div Green</div>
    <div class='blue main'>div Blue</div>
    <p class='red main'>pRed</p>
    <p class='green main'>pGreen</p>
    <p class='blue main'>pBlue</p>
    <!--
    $("*") - Выбрать все элементы
    
    -->
    <nav>
    <div>
      <div class='red main'>div Red</div>
      <div class='green main'>div Green</div>
      <div class='blue main'>div Blue</div>
      <p class='red main'>pRed</p>
      <p class='green main'>pGreen</p>
      <p class='blue main'>pBlue</p>
    </div>
    </nav>
    <a href='index.html'>jhmjk</a>
    <script>
    //$(".class div ul li").clik();
    //$("#id").clik();
    //$("tag").clik();
    //$("[type]").show();
    //$("[href="index.html"]").clik();
    //$('селектор').функция(функцию что делать или переменная)
    $(document).ready(function(){
    $('[type="submit"]').hide();
    //по клику по тегу див скрыть все элементы за секунду
     $("div").click(function(){//селектор с именем тега выбирает все теги
     $("*").css("border","10px solid black");
     $("*").hide(1000);//селектор со * выбирает все элементы
     
     });
      $("div.green").mouseenter(function(){
      $("div.green").css("background","lime");});
    
      $("div.green").mouseleave(function(){
      $("div.green").css("background","green");});
    
      $(".blue").mouseenter(function(){
      $(".blue").css("background","lightblue");});
    
      $(".blue").mouseleave(function(){
      $(".blue").css("background","blue");});
     
      $("div div.red").mouseenter(function(){
      $("div div.red").html("div div enter");});
    
      $("div div.red").mouseleave(function(){
      $("div div.red").html("DIV DIV leave");});
      //focus
      
      $("#search").focus(
      function(){
      $('[type="submit"]').show(200);
      }
      );
      $("#search").blur(
      function(){
      $('[type="submit"]').hide(200);
      }
      );
      
      //blur
     });
    </script>
    <hr>
    <input id='search'><input type='submit'>
    </body>
    

     

  • Jquery Простые примеры. Урок 11

    Подключаем библиотеку Jquery

    <head>
    <meta charset='utf-8'>
    <script src=
    "https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"
    ></script>
    </head>
    <body>
    <div id='d1'>
    <div id='mydiv' style='height:200px;border:1px solid black;'>Привет мир</div>
    <button id='b1'>Спрятать надпись "Привет мир"</button>
    <button id='b2'>Показать надпись "Привет мир"</button>
    <button id='b3'>Переключить "Привет мир"</button>
    </div>
    <div id='d2' style='width:100px;height:100px;background:red;'>
    </div>
    <script>
    //$(".myclass");
    //$("div");
    $(document).ready(function(){
      $("#d2").hide();
      $("#b1").click(function(){
            $("#mydiv").slideUp(1000);
            });
      $("#b2").click(function(){
            $("#mydiv").slideDown(1000);
            });
      $("#b3").click(function(){
            $("#d1").toggle(1000);
            $("#d2").toggle(1000);
            });
      $("#d2").click(function(){
            $("#d1").toggle(1000);
            $("#d2").toggle(1000);
            });
            
            
    });
    </script>
    </body>
    
    

    Протестируйте простые функции

    fadeOut
    fadeIn
    fadeToggle

    slideUp
    slideDown
    slidetoggle

    hide
    show
    toggle

  • Урок 4 Javascript. onfocus onblur keyup keydown

    <script>
    function myFunction(id)
    {
    dd=document.getElementById(id);
    dd.style.border="1px solid green";
    }
    function blurFunction(id)
    {
    dd=document.getElementById(id);
    dd.style.border="1px solid red";
    }
    function mykeyup()
    {
    inp3=document.getElementById('test2');
    dd=document.getElementById('dd');
    len=20-inp3.value.length;
    dd.innerHTML="Осталось ввести "+len+" символов";
    }
    </script>
    
    <input onfocus="myFunction('test')" 
    onblur="blurFunction('test')" id='test'>
    <input onfocus="myFunction('test1')" 
    onblur="blurFunction('test1')" id='test1'>
    
    <input id='test2' onkeyup='mykeyup()'>
    <div id='dd'>Вам нужно ввести 20 символов.</div>

    Урок-4. Шаблон для подсказок

  • Урок 3. Событие Mousemove на javascript

    СОБЫТИЯ и МЕТОДЫ

    onmousemove — Событие onmousemove используется для определения перемещения курсора мыши в любом направлении экрана. Это событие применяется для создания различных эффектов, связанных с курсором мыши.

    Math.round () Метод, округляет число до ближайшего целого числа.

    Свойство clientX возвращает горизонтальную координату (в зависимости от клиентской области) указателя мыши, когда событие мыши сработает.

    Свойство clientY возвращает вертикальную координату (в зависимости от клиентской области) указателя мыши, когда событие мыши сработает.

    КОД

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
      <meta charset="utf-8">
        <style type="text/css">
        #obj{
            width: 100px;
            height: 100px;
        position: absolute;
        }
        </style>
        
      <script type="text/javascript">
            function UpdateFlyingObj (event) {
                var mouseX = Math.round (event.clientX);
                var mouseY = Math.round (event.clientY);
    
                var flyingObj = document.getElementById ("obj");
                flyingObj.style.left = mouseX + "px";
                flyingObj.style.top = mouseY + "px";
    
            }
        </script>
        
    </head>
    <body  onmousemove="UpdateFlyingObj (event);" style="position:absolute; top:0; left:0; bottom:0; right:0;">
    <div">
    <img id="obj" style="position : relative; left : 111px; top : 111px;" src="1.gif">
    </div>
    </body>
    </HTML>
    

    КАРТИНКА

    1

  • Javascript урок 2. Создание простого слайдера.

    <style>
    .slider
    {
    position:absolute;
    top:0;
    left:0;
    width:100%;
    }
    </style>
    
    <img src='1.jpg' class='slider' id='img1' onclick="hide('img1','img2',1)">
    <img src='2.jpg' class='slider' id='img2' onclick="hide('img2','img3',1)">
    <img src='3.jpg'  class='slider' id='img3' onclick="hide('img3','img4',1)">
    <img src='4.jpg' class='slider' id='img4' onclick="hide('img4','img5',1)">
    <img src='5.jpg' class='slider' id='img5' onclick="hide('img5','img1',1)">
    <script>
    function hide(name,name1,opacity)// скрываем картинку name и показываем name1
    {
    myimg=document.getElementById(name);// получаем объект картики по id name
    myimg1=document.getElementById(name1);// получаем объект картики по id name1
    
    if(opacity==1)//если прозрачность =1 то мы отображаем второй слайд.
      myimg1.style.display='block';
    myimg.style.opacity=opacity;// меняем прозрачность
    myimg1.style.opacity=1-opacity;//меняем прозрачность
    if(opacity-.01>=0)// пока прозрачность больше нуля
      setTimeout(function(){hide(name,name1,opacity-0.01)}, 10);//изменяем прозрачность
    else
      {
      myimg.style.display='none';//скрываем невидимую картинку
      }
    }
    sliden=4;
    function slide()
    {
    if(sliden==1)// если надо скрыть слайд 1 и показать слайд 2
      {
      hide('img1','img2',1);// скрывает вторую картинку и показывает первую
      sliden=2;// меняем номер слайда чтобы в следующий раз скрыть другой слайд
      return;//выходим из функции чтобы не выполнялись остальыне условия
      }
    if(sliden==2)
      {
      hide('img2','img3',1);
      sliden=3;
      return;
      }
    if(sliden==3)
      {
      hide('img3','img4',1);
      sliden=4;
      return;
      }
    if(sliden==4)
      {
      hide('img4','img5',1);
      sliden=5;
      return;
      }
    if(sliden==5)
      {
      hide('img5','img1',1);
      sliden=1;
      return;
      }
    }
    
    setInterval(slide,4000);// функция смены слайда будет выполняться каждые 4и секунды.
    </script>

    Вариант №2.

    СОБЫТИЯ

    window.onload, Событие происходит, когда объект был загружен, чаще всего используется в элементе <Body>, чтобы выполнить скрипт, как только веб-страница полностью загружена.

    setInterval () Метод, вызывает функцию или вычисляет выражение через определенные промежутки времени.

    OnClick событие, выполнение JavaScript при щелчке по кнопке.

    КОД

    <!DOCTYPE html>
    <html>
    <head>
      <title>Урок 6. Пример объектно-ориентированного подхода.</title>
      <meta charset="utf-8">
    </head>
    <style>
    #main {
      position:relative;
      margin: 100px auto;
      padding: 5px;
      width: 660px;
      height:360px;
      background-color: silver;
      border: 5px solid grey;
      border-radius:15px;
    }
    #scr {
      margin:20px auto;
      width: 600px;
      height: 320px;
      margin-top:20px;
      background-color: white;
      background-size:cover;
      border: 2px solid black;
      border-radius:10px;
    }
    button {
      position: absolute;
      top: 150px;
      width: 25px;
      height: 70px;
      font: 12pt arial,tahoma,sans-serif;
      text-align: center;
    }
    .left {
      left:5px;
    }
    .right {
      right:5px;
    }
    </style>
    <script>
    var slider = {
      slides:['1.jpg','2.jpg','3.jpg','4.jpg','5.jpg'],
      frame:0, // текущий кадр для отбражения - индекс картинки из массива
      set: function(image) { // установка нужного фона слайдеру
        document.getElementById("scr").style.backgroundImage = "url("+image+")";
      },
      init: function() { // запуск слайдера с картинкой с нулевым индексом
        this.set(this.slides[this.frame]);
      },
      left: function() { // крутим на один кадр влево
        this.frame--;
        if(this.frame < 0) this.frame = this.slides.length-1;
        this.set(this.slides[this.frame]);
      },
      right: function() { // крутим на один кадр вправо
        this.frame++;
        if(this.frame == this.slides.length) this.frame = 0;
        this.set(this.slides[this.frame]);		
      }
    };
    window.onload = function() { // запуск слайдера после загрузки документа
      slider.init();
      setInterval(function() { // ставим пятисекундный интервал для перелистывания картинок
        slider.right();
      },5000);
    };
    </script>
    <body>
    <div id="main">
      <button class="left" onclick="slider.left();"><</button>
      <div id="scr"></div>
      <button class="right" onclick="slider.right();">></button>
    </div>	
    </body>
    </html>

     

  • Javascript Урок 1

    Назначение обработчика onclick.

    Для того, чтобы скрипт реагировал на событие — нужно назначить хотя бы одну функцию-обработчик. Обычно обработчики называют «on+имя события», например: onclick.

    Существует несколько способов назначать обработчик на конкретное событие элемента. Все они представлены ниже. Обработчик события можно указать в виде inline-записи, прямо в атрибуте onсобытие. Например, для обработки события click на кнопке input, можно назначить обработчик onclick вот так:

    <input id="b1" value="Нажми Меня" onclick="alert('Спасибо!');" type="button"/>
    

    Второй вариант когда обработчик задается в виде функции:

    div class='box' onclick="boxclick('yellow')"> Кликни по мне</div>
    <script>
      function boxclick(color)
        {
        mybody=document.getElementById('b');
        mybody.style.backgroundColor=color;
        mybody.style.color='white';
        
    
        //alert("Вы кликнули по тегу Div");
        }
    </script>

    В этом случае скрипт может быть очень большим и не будет мешать восприятию HTML кода.

    Для того чтобы воздействовать на объекты и менять их в функциях нам необходимо назначить id для каждого элемента и в коде получить этот элемент используя функцию document.getElementById('myElement')

    и затем изменить нужный атрибут или стиль.

    mybody=document.getElementById('b');
        mybody.style.backgroundColor=color;
        mybody.style.color='white';

    Для выполнения последовательных действий в javascript используются таймеры. Для управления таймером необходимо выполнить функцию  setInterval(sec, 10) или setTimeout(sec,10). Первый параметр это имя функции которая запустится и второй параметр это интервал в миллисекундах. Функция setInterval задает интервал выполнения и будет выполнятся непрерывно, а setTimeout выполнит функцию одни раз через интервал указанный вторым параметром.

    setInterval(sec, 10);
    setTimeout(sec,10);
    <html>
    
    <head>
      <meta charset='utf-8'>
      <script>
      function boxclick(color)
        {
        mybody=document.getElementById('b');
        mybody.style.backgroundColor=color;
        mybody.style.color='white';
        
    
        //alert("Вы кликнули по тегу Div");
        }
      top1=400;
      left1=400;
      function up()
      {
      
      mode='up';
      }
      
      
      function sec()
      {
      if(mode=='up')
        {
        top1=top1-1;
        mydiv=document.getElementById('control');
        mydiv.style.top=top1+'px';
        }
      }
      
      setInterval(sec, 10);
      </script>
      <style>
      .box
        {
        width:100px;
        height:100px;
        background-color:yellow;
        }
      .box1
        {
        width:100px;
        height:100px;
        background-color:red;
        }
      .box2
        {
        width:100px;
        height:100px;
        background-color:green;
        }
      .box3
        {
        width:100px;
        height:100px;
        background-color:blue;
        }
        .up
        {
        position:absolute;
        top:0px;
        left:100px;
        width:100px;
        height:100px;
        background-color:yellow;
        }
        .down
        {
        position:absolute;
        top:200px;
        left:100px;
        width:100px;
        height:100px;
        background-color:yellow;
        }
        .left
        {
        position:absolute;
        top:100px;
        left:0px;
        width:100px;
        height:100px;
        background-color:yellow;
        }
      .right
        {
        position:absolute;
        top:100px;
        left:200px;
        width:100px;
        height:100px;
        background-color:yellow;
        }
      .control
        {
        position:absolute;
        top:400px;
        left:400px;
        width:100px;
        height:100px;
        background-color:red;
        }
    
      </style>
    </head>
    
    <body id='b'>
    Текст Текст Текст Текст Текст 
    
    <!--div class='box' onclick="boxclick('yellow')"> Кликни по мне</div>
    <div class='box1' onclick="boxclick('red')"> Кликни по мне</div>
    <div class='box2' onclick="boxclick('green')"> Кликни по мне</div>
    <div class='box3' onclick="finction(){alert(123)}"> Кликни по мне</div>
    -->
    <div class='up' onclick='up()' >Вверх</div>
    <div class='left'>Налево</div>
    <div class='right'>Направо</div>
    <div class='down'>Низ</div>
    <div class='control' id='control'></div>
    </body>
    
    </html>

    Листинг примера программы которая демонстрирует работу с таймером и использование обработчика onclick

    Задания для самостоятельной работы.

    1. Используя таймер сделать светофор.
    2. Сделать к светофору кнопку для вызова зеленого света.
    3. Используя таймер сделать изменяющийся цвет body.