Редактирование: Обучение JavaScript

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
[[Виртуальная лаборатория]] > [[Обучение JavaScript]] <HR>
 
 
 
Здесь размещено небольшое пособие, помогающее начать писать программы на языке JavaScript. Пособие ориентировано на людей, не имеющих представления ни об этом языке, ни об HTML тегах, но, желательно, хотя бы немного представляющих принципы программирования, понятие о функциях, циклах, условиях "if" и т.п.
 
Здесь размещено небольшое пособие, помогающее начать писать программы на языке JavaScript. Пособие ориентировано на людей, не имеющих представления ни об этом языке, ни об HTML тегах, но, желательно, хотя бы немного представляющих принципы программирования, понятие о функциях, циклах, условиях "if" и т.п.
 
   
 
   
Строка 8: Строка 6:
 
== Hello World! ==
 
== Hello World! ==
 
Начнем с небольшого примера. Откройте блокнот, и скопируйте туда строку ниже:
 
Начнем с небольшого примера. Откройте блокнот, и скопируйте туда строку ниже:
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<input type="button" value="Нажми меня" onclick="alert('Hello World!')">
 
<input type="button" value="Нажми меня" onclick="alert('Hello World!')">
  </syntaxhighlight>
+
  </source>
 
Нажмите "Сохранить как", введите название файла "program1.html" и сохраните его.
 
Нажмите "Сохранить как", введите название файла "program1.html" и сохраните его.
 
Найдите файл и откройте его.
 
Найдите файл и откройте его.
Строка 18: Строка 16:
 
Вы написали первую программу с использованием языка разметки HTML и языка программирования JavaScript!
 
Вы написали первую программу с использованием языка разметки HTML и языка программирования JavaScript!
  
<div class="mw-collapsible mw-collapsed" style="width:100%" >
+
<toggledisplay status=hide showtext="Если возникли проблемы:↓" hidetext="Скрыть↑" linkstyle="font-size:default">  
'''Если возникли проблемы:'''
 
<div class="mw-collapsible-content">  
 
 
* Если файл не открывается/открывается в блокноте, нажмите на него правой кнопкой мыши/Открыть с помощью/Firefox (или Google Chrome)
 
* Если файл не открывается/открывается в блокноте, нажмите на него правой кнопкой мыши/Открыть с помощью/Firefox (или Google Chrome)
* Если файл открывается в браузере Internet Explorer, то в нем нужно разрешить выполнение скрипта (появится сообщение с подтверждением), иначе при нажатии на кнопку ничего происходить не будет. Чтобы избежать этого, запускайте файл с помощью Firefox или Google Chrome (нажать на файл правой кнопкой мыши/Открыть с помощью/Выбрать программу/Firefox или Google Chrome, должна стоять галочка "Использовать выбранную программу для всех файлов такого типа").
+
* Если файл открывается в браузере Internet Explorer, то в нем нужно разрешить выполнение скрипта (вылезет сообщение с подтверждением), иначе при нажатии на кнопку ничего происходить не будет. Чтобы избежать этого, запускайте файл с помощью Firefox или Google Chrome (нажать на файл правой кнопкой мыши/Открыть с помощью/Выбрать программу/Firefox или Google Chrome, должна стоять галочка "Использовать выбранную программу для всех файлов такого типа").
</div>
+
</toggledisplay>
</div>
 
  
 
== Теги ==
 
== Теги ==
Строка 30: Строка 25:
  
 
Часто требуется не только открывающий тег, но и закрывающий, например:  
 
Часто требуется не только открывающий тег, но и закрывающий, например:  
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<strong>Текст между двумя тегами — открывающим и закрывающим.</strong>
 
<strong>Текст между двумя тегами — открывающим и закрывающим.</strong>
</syntaxhighlight>
+
</source>
 
Текст, расположенный между этими двумя тегами, будет отображаться <strong>жирным шрифтом</strong>.
 
Текст, расположенный между этими двумя тегами, будет отображаться <strong>жирным шрифтом</strong>.
  
 
=== Атрибуты ===
 
=== Атрибуты ===
 
Бывают случаи, когда тег нужно определенным образом "настроить". Для этого используются атрибуты тега. Например, тег:
 
Бывают случаи, когда тег нужно определенным образом "настроить". Для этого используются атрибуты тега. Например, тег:
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<font size="1" color="red">Маленькие красные буквы</font>
 
<font size="1" color="red">Маленькие красные буквы</font>
</syntaxhighlight>
+
</source>
 
имеет атрибуты "size" и "color", указывающие размер и цвет текста. Содержимое этого тега будет выглядеть так:
 
имеет атрибуты "size" и "color", указывающие размер и цвет текста. Содержимое этого тега будет выглядеть так:
  
Строка 46: Строка 41:
 
=== Пример ===
 
=== Пример ===
 
Давайте еще раз рассмотрим первый пример:
 
Давайте еще раз рассмотрим первый пример:
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<input type="button" value="Нажми меня" onclick="alert('Hello World!');">
 
<input type="button" value="Нажми меня" onclick="alert('Hello World!');">
</syntaxhighlight>
+
</source>
 
Мы видим тег <nowiki><input></nowiki>, у которого заданы различные атрибуты.
 
Мы видим тег <nowiki><input></nowiki>, у которого заданы различные атрибуты.
 
* Атрибут "type" - тип элемента управления, который появится на странице. В данном случае стоит "button", поэтому появляется кнопка.
 
* Атрибут "type" - тип элемента управления, который появится на странице. В данном случае стоит "button", поэтому появляется кнопка.
Строка 59: Строка 54:
 
Давайте перепишем наш пример с кнопкой в соответствии с этим правилом.
 
Давайте перепишем наш пример с кнопкой в соответствии с этим правилом.
 
Откройте блокнот и скопируйте в него следующий код:
 
Откройте блокнот и скопируйте в него следующий код:
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<head>
 
<head>
 
     <script src="program2.js"></script>
 
     <script src="program2.js"></script>
Строка 66: Строка 61:
 
     <input type="button" id="press_me_button" value="Нажми меня">
 
     <input type="button" id="press_me_button" value="Нажми меня">
 
</body>
 
</body>
</syntaxhighlight>
+
</source>
 
Сохраните файл как "program2.html".
 
Сохраните файл как "program2.html".
  
 
Откройте блокнот еще раз, и скопируйте в него код ниже:
 
Откройте блокнот еще раз, и скопируйте в него код ниже:
<syntaxhighlight lang="javascript" line start="1" enclose="div">
+
<source lang="javascript" first-line="1">
 
function main_program2() {
 
function main_program2() {
 
     press_me_button.onclick = function() {
 
     press_me_button.onclick = function() {
Строка 76: Строка 71:
 
     };
 
     };
 
}
 
}
</syntaxhighlight>
+
</source>
 
Сохраните файл как "program2.js", и запустите файл "program2.html".
 
Сохраните файл как "program2.js", и запустите файл "program2.html".
  
Строка 88: Строка 83:
 
Первая строка - начало описания функции (той самой функции main_program2(), что вызывается в теге <body>).
 
Первая строка - начало описания функции (той самой функции main_program2(), что вызывается в теге <body>).
 
Вторая строка состоит из нескольких частей:
 
Вторая строка состоит из нескольких частей:
<syntaxhighlight lang="javascript" line start="1" enclose="div">
+
<source lang="javascript" first-line="1">
 
press_me_button.onclick = function() {
 
press_me_button.onclick = function() {
</syntaxhighlight>
+
</source>
 
* press_me_button - это имя кнопки в памяти компьютера, задается в теге <input> атрибутом "id".
 
* press_me_button - это имя кнопки в памяти компьютера, задается в теге <input> атрибутом "id".
 
* .onclick - здесь находится ссылка на функцию, которая должна запуститься, когда происходит нажатие на кнопку. Изначально эта функция пуста, поэтому далее мы её задаем.
 
* .onclick - здесь находится ссылка на функцию, которая должна запуститься, когда происходит нажатие на кнопку. Изначально эта функция пуста, поэтому далее мы её задаем.
Строка 98: Строка 93:
  
 
На первый взгляд здесь намного больше кода, но когда ваши скрипты "разрастутся", работать в таком формате будет намного удобней.  
 
На первый взгляд здесь намного больше кода, но когда ваши скрипты "разрастутся", работать в таком формате будет намного удобней.  
 
== Переменные ==
 
Переменные нужны для хранения различной информации (например, результатов вычисления или настроек программы). В переменной можно хранить числа, текст, объекты и т.п.
 
 
Для объявления переменной (локальной) в JavaScript используется ключевое слово "var".
 
Например:
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
var result = 2 + 2 * 2;
 
</syntaxhighlight>
 
 
Также есть возможность объявлять и глобальные переменные, для этого имя переменной пишется без ключевого слова var.
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
result = 2 + 2 * 2;
 
</syntaxhighlight>
 
Однако, глобальные переменные в JavaScript являются плохим тоном, могут сильно затруднять понимание кода, а в некоторых случаях и вызывать дополнительные ошибки, так что старайтесь использовать локальные переменные.
 
 
 
Иногда вы можете увидеть еще один способ объявления переменных - с помощью ключевого слова "const". Это константы - переменные с неизменяемым значением. К сожалению, браузер Internet Explorer 10 (и меньше) их не поддерживает, т.е. программы, написанные с использованием констант в этом браузере НЕ РАБОТАЮТ. Поэтому лучше воздерживаться от использования "const".
 
 
== Объекты ==
 
Объект JavaScript - набор свойств и функций.
 
 
Создать объект можно так:
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
var human = {};
 
</syntaxhighlight>
 
 
Пустой объект без свойств и методов неинтересен. Добавим в него свойства:
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
human.name = "Василий";
 
human.arms = 2;
 
human.appendix = false;
 
</syntaxhighlight>
 
 
Получить доступ к свойству можно так же, через точку - "human.name". Например, выведем свойство "name" на экран:
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
alert(human.name);
 
</syntaxhighlight>
 
 
Есть возможность создавать объекты сразу со свойствами, для этого нужно использовать следующий синтаксис:
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
var human = {
 
    name:"Василий",
 
    arms:2,
 
    appendix:false
 
}
 
</syntaxhighlight>
 
 
Теперь добавим нашему объекту функцию:
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
human.talk = function(text) {
 
    alert(human.name + " говорит: " + text);
 
}
 
</syntaxhighlight>
 
 
Вызвать функцию можно следующим образом:
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
human.talk("Я Василий");
 
</syntaxhighlight>
 
 
=== Массивы ===
 
Массив в JavaScript - это тоже объект, но со свойством "length" (в большинстве случаев содержит длину массива), а также со специальными методами, помогающими в работе с массивами.
 
 
Создается массив почти также, как и обычный объект, только вместо фигурных скобок используются квадратные.
 
Массив можно создавать сразу со значениями:
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
var mass = [];
 
var mass2 = [1, 2, 4, 8, 16];
 
var mass3 = ["Гомер", "Мардж", "Барт", "Лиза", "Мэгги"];
 
</syntaxhighlight>
 
 
А вот как заполнить массив через цикл:
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
var m = [];
 
for (var i = 0; i < 100; i++) {
 
    m[i] = 3 * i;
 
}
 
</syntaxhighlight>
 
 
Длину массива практически всегда можно узнать с помощью свойства "m.length".
 
 
<div class="mw-collapsible mw-collapsed" style="width:100%" >
 
'''Однако, есть исключения:'''
 
<div class="mw-collapsible-content">
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
var m = [];
 
m[100] = "some";
 
</syntaxhighlight>
 
то m.length выдаст "101", хотя в массиве будет всего один элемент (101 потому, что счет элементов начинается с 0, т.е. m[100] - это 101-ый элемент).
 
* Можно вручную задать значение свойства length, например "m.length = 42;".
 
</div>
 
</div>
 
 
Для добавления/удаления значений массива используются методы:
 
* push и pop - добавляют/удаляют значения с конца массива.
 
* unshift и shift - добавляют/удаляют значения с начала массива.
 
 
Пример:
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
var m = [3, 4, 5];
 
// сейчас m = [3, 4, 5]
 
 
m.push(6);      // добавили в конец "6".
 
// сейчас m = [3, 4, 5, 6]
 
m.pop();        // удалили последний элемент
 
// сейчас m = [3, 4, 5]
 
 
m.unshift(2);  // добавили в начало "2"
 
// сейчас m = [2, 3, 4, 5]
 
m.shift();      // удалили первый элемент
 
// сейчас m = [3, 4, 5]
 
</syntaxhighlight>
 
 
== События ==
 
Событие - это сигнал от браузера о том, что что-то произошло. Например, пользователь нажал на кнопку, или передвинул ползунок.
 
На событие можно поставить обработчик - это код, который выполнится при возникновении этого события.
 
 
Мы уже использовали несколько раз событие onclick (щелчок левой кнопкой мыши на элементе), а также событие onload тега <body> (обработчик события запустится, как только страница полностью загрузится).
 
 
Есть и другие события, вы можете подробней узнать о них на [http://htmlbook.ru/html/attr/event этой странице]
 
 
=== Назначение обработчиков ===
 
Существует несколько способов поставить обработчик на событие. Мы рассмотрим два из них.
 
 
==== Через атрибут HTML-тега ====
 
Этим способом мы уже несколько раз воспользовались.
 
В строке:
 
<syntaxhighlight lang="html5" line start="1" enclose="div">
 
<input type="button" value="Нажми меня" onclick="alert('Hello World!')">
 
</syntaxhighlight>
 
атрибут onclick="alert('Hello World!')" - и есть назначение событию onclick обработчика (в данном случае, функции, вызывающей всплывающее окошко с надписью "Hello World!").
 
 
Не стоит использовать данный способ, если обработчик занимает более одной строки - такой код трудно читать.
 
 
==== Через свойство объекта ====
 
Этим способом мы воспользовались в разделе [[#Файлы html и js]]
 
 
Чтобы его применить, нужно дать id элементу, у которого мы хотим отследить событие:
 
<syntaxhighlight lang="html5" line start="1" enclose="div">
 
<input type="button" id="press_me_button" value="Нажми меня">
 
</syntaxhighlight>
 
Далее в JavaScript коде нужно написать:
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
press_me_button.onclick = function() { ''Здесь должен быть код, который выполнится при срабатывании события onclick''}
 
</syntaxhighlight>
 
 
Данный прием позволяет отделить HTML-верстку, отвечающую за то, как выглядит страничка на экране, от JavaScript кода, отвечающего за то, как страничка себя ведет.
 
  
 
== Вывод текста на экран ==
 
== Вывод текста на экран ==
Строка 252: Строка 100:
  
 
Выводить на экран текст мы будем с помощью тега <span>:
 
Выводить на экран текст мы будем с помощью тега <span>:
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<span id="span_name">Здесь будет находиться выводимый текст</span>
 
<span id="span_name">Здесь будет находиться выводимый текст</span>
</syntaxhighlight>
+
</source>
 
* Атрибут id - имя поля вывода в памяти компьютера.
 
* Атрибут id - имя поля вывода в памяти компьютера.
  
  
 
Код примера выше:
 
Код примера выше:
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<input type="button" value="Зима" onclick="span_name.innerHTML='Зима'">
 
<input type="button" value="Зима" onclick="span_name.innerHTML='Зима'">
 
<input type="button" value="Лето" onclick="span_name.innerHTML='Лето'">
 
<input type="button" value="Лето" onclick="span_name.innerHTML='Лето'">
 
<br>
 
<br>
 
<span id="span_name">Здесь появится время года</span>
 
<span id="span_name">Здесь появится время года</span>
</syntaxhighlight>
+
</source>
  
 
== Элементы управления ==
 
== Элементы управления ==
Строка 274: Строка 122:
  
 
Чтобы вставить переключатель, нужно добавить тег:
 
Чтобы вставить переключатель, нужно добавить тег:
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<input type="radio" id="radio_water" name="element" checked> Вода
 
<input type="radio" id="radio_water" name="element" checked> Вода
</syntaxhighlight>
+
</source>
 
* "radio" в атрибуте type говорит о том, что мы хотим получить переключатель.
 
* "radio" в атрибуте type говорит о том, что мы хотим получить переключатель.
 
* id - это имя переключателя в памяти компьютера, оно нужно для того, чтобы мы могли из скрипта проверить состояние переключателя.
 
* id - это имя переключателя в памяти компьютера, оно нужно для того, чтобы мы могли из скрипта проверить состояние переключателя.
Строка 285: Строка 133:
 
В данном примере как только вы нажимаете на один из переключателей, мгновенно срабатывает событие и выводится картинка.
 
В данном примере как только вы нажимаете на один из переключателей, мгновенно срабатывает событие и выводится картинка.
  
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Tcvetkov/JavaScript_training_examples/dl_example_Radio_2.html |width=220|height=130 |border=0 }}
+
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Tcvetkov/JavaScript_training_examples/dl_example_Radio_2.html |width=200|height=130 |border=0 }}
 +
 
 +
Скачать пример: [[Медиа:dl_example_Radio_2.zip|Example_Radio_2.zip]]
  
Скачать пример: [[Медиа:dl_example_Radio.zip|Example_Radio.zip]]
+
<toggledisplay status=hide showtext="Код примера:↓" hidetext="Скрыть↑" linkstyle="font-size:default">  
<div class="mw-collapsible mw-collapsed" style="width:100%" >
 
'''Код примера:'''
 
<div class="mw-collapsible-content">
 
 
Файл '''"dl_example_Radio_2.html"'''
 
Файл '''"dl_example_Radio_2.html"'''
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<!DOCTYPE html>
 
<!DOCTYPE html>
 
<html>
 
<html>
Строка 306: Строка 153:
 
</body>
 
</body>
 
</html>
 
</html>
</syntaxhighlight>
+
</source>
 
Файл '''"dl_example_Radio_2.js"'''
 
Файл '''"dl_example_Radio_2.js"'''
<syntaxhighlight lang="javascript" line start="1" enclose="div">
+
<source lang="javascript" first-line="1">
 
function main_dl_example_Radio_2() {
 
function main_dl_example_Radio_2() {
 
     radio_pic_1.onchange = function() {pic_span.innerHTML = ".·´¯`·.´¯`·.¸¸.·´¯`·.¸><(((º>"};
 
     radio_pic_1.onchange = function() {pic_span.innerHTML = ".·´¯`·.´¯`·.¸¸.·´¯`·.¸><(((º>"};
Строка 314: Строка 161:
 
     radio_pic_3.onchange = function() {pic_span.innerHTML = "__,,,^._.^,,,__"};
 
     radio_pic_3.onchange = function() {pic_span.innerHTML = "__,,,^._.^,,,__"};
 
}
 
}
</syntaxhighlight>
+
</source>
</div>
+
</toggledisplay>
</div>
 
 
 
В примере вы можете видеть непонятную строку:
 
<syntaxhighlight lang="html5" line start="1" enclose="div">
 
<!DOCTYPE html>
 
</syntaxhighlight>
 
Эта строчка указывает браузерам, что мы используем HTML5, без неё некоторые браузеры могут переходить в режим совместимости.
 
 
 
Также в примере использован новый тег <html></html>, заключающий в себя всё содержимое страницы. Он необязателен, просто является признаком хорошего стиля.
 
  
 
=== Поле для ввода ===
 
=== Поле для ввода ===
Строка 331: Строка 169:
  
 
Чтобы задать подобное поле, нужно добавить следующий тег:
 
Чтобы задать подобное поле, нужно добавить следующий тег:
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<input type="number" min=1 max=10 value=5 style="width: 50px">
 
<input type="number" min=1 max=10 value=5 style="width: 50px">
</syntaxhighlight>
+
</source>
 
* type="number" - тип элемента: поле для ввода числа.
 
* type="number" - тип элемента: поле для ввода числа.
 
* min - минимальное число, до которого можно дойти стрелочками
 
* min - минимальное число, до которого можно дойти стрелочками
Строка 343: Строка 181:
 
Пример с извлечением значения из данного поля:
 
Пример с извлечением значения из данного поля:
  
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Tcvetkov/JavaScript_training_examples/dl_example_Number.html |width=200|height=44 |border=0 }}
+
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Tcvetkov/JavaScript_training_examples/dl_example_Number.html |width=200|height=30 |border=0 }}
  
 
Скачать пример: [[Медиа:dl_example_Number.zip|Example_Number.zip]]
 
Скачать пример: [[Медиа:dl_example_Number.zip|Example_Number.zip]]
<div class="mw-collapsible mw-collapsed" style="width:100%" >
+
 
'''Код примера:'''
+
<toggledisplay status=hide showtext="Код примера:↓" hidetext="Скрыть↑" linkstyle="font-size:default">  
<div class="mw-collapsible-content">
 
 
Файл '''"dl_example_Number.html"'''
 
Файл '''"dl_example_Number.html"'''
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<!DOCTYPE html>
 
<!DOCTYPE html>
 
<html>
 
<html>
Строка 362: Строка 199:
 
</body>
 
</body>
 
</html>
 
</html>
</syntaxhighlight>
+
</source>
 
Файл '''"dl_example_Number.js"'''
 
Файл '''"dl_example_Number.js"'''
<syntaxhighlight lang="javascript" line start="1" enclose="div">
+
<source lang="javascript" first-line="1">
 
function main_dl_example_Number() {
 
function main_dl_example_Number() {
 
     number_input.oninput= function() {
 
     number_input.oninput= function() {
Строка 370: Строка 207:
 
     }
 
     }
 
}
 
}
</syntaxhighlight>
+
</source>
</div>
+
</toggledisplay>
</div>
 
  
 
=== Ползунок ===
 
=== Ползунок ===
Строка 380: Строка 216:
 
<htmlet nocache="yes">Tcvetkov/JavaScript_training_examples/Example_slider</htmlet>
 
<htmlet nocache="yes">Tcvetkov/JavaScript_training_examples/Example_slider</htmlet>
  
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
<input type="range" id="some_sl" min="1" max="100" value=50 step=0.5 style="width: 150px;" oninput="some_num.value = some_sl.value;">
+
<input type="range" id="some_slider" min="1" max="100" value=50 step=0.5 style="width: 150px;" oninput="some_number.value = some_slider.value;">
<input type="number" id="some_num" min=1 max=100 value=50 step=0.5 style="width: 50px" oninput="some_sl.value = some_num.value;">
+
<input type="number" id="some_number" min=1 max=100 value=50 step=0.5 style="width: 50px" oninput="some_slider.value = some_number.value;">
</syntaxhighlight>
+
</source>
 
* Атрибут "step" - шаг. Любое число на ползунке/поле для ввода будет кратно этому шагу. Например, если шаг равен 0.5, то ползунок/поле для ввода смогут принимать значения 1, 1.5, 2, 2.5, 3...
 
* Атрибут "step" - шаг. Любое число на ползунке/поле для ввода будет кратно этому шагу. Например, если шаг равен 0.5, то ползунок/поле для ввода смогут принимать значения 1, 1.5, 2, 2.5, 3...
 
* Атрибут "oninput" у ползунка содержит функцию, которая обновляет число в поле ввода при движении ползунка.
 
* Атрибут "oninput" у ползунка содержит функцию, которая обновляет число в поле ввода при движении ползунка.
Строка 394: Строка 230:
  
 
Скачать пример: [[Медиа:dl_example_Slider.zip|Example_Slider.zip]]
 
Скачать пример: [[Медиа:dl_example_Slider.zip|Example_Slider.zip]]
<div class="mw-collapsible mw-collapsed" style="width:100%" >
+
 
'''Код примера:'''
+
<toggledisplay status=hide showtext="Код примера:↓" hidetext="Скрыть↑" linkstyle="font-size:default">  
<div class="mw-collapsible-content">
 
 
Файл '''"dl_example_Slider.html"'''
 
Файл '''"dl_example_Slider.html"'''
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<!DOCTYPE html>
 
<!DOCTYPE html>
 
<html>
 
<html>
Строка 411: Строка 246:
 
</body>
 
</body>
 
</html>
 
</html>
</syntaxhighlight>
+
</source>
 
Файл '''"dl_example_Slider.js"'''
 
Файл '''"dl_example_Slider.js"'''
<syntaxhighlight lang="javascript" line start="1" enclose="div">
+
<source lang="javascript" first-line="1">
 
function main_dl_example_Slider() {
 
function main_dl_example_Slider() {
  
Строка 430: Строка 265:
 
      
 
      
 
}
 
}
</syntaxhighlight>
+
</source>
</div>
+
</toggledisplay>
</div>
 
  
 
== Рисование ==
 
== Рисование ==
  
 
Переходим к рисованию. Рисование осуществляется на специальном поле для рисования "canvas". Вставить его можно следующим тегом:
 
Переходим к рисованию. Рисование осуществляется на специальном поле для рисования "canvas". Вставить его можно следующим тегом:
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<canvas id="canvas_name" width="600" height="150" style="border: 1px solid #000000"></canvas>
 
<canvas id="canvas_name" width="600" height="150" style="border: 1px solid #000000"></canvas>
  </syntaxhighlight>
+
  </source>
 
* Атрибут width - ширина рамки для рисования.
 
* Атрибут width - ширина рамки для рисования.
 
* Атрибут height - высота рамки для рисования.
 
* Атрибут height - высота рамки для рисования.
Строка 454: Строка 288:
  
 
Скачать пример: [[Медиа:dl_example_Canvas_1.zip|Example_Canvas_1.zip]]
 
Скачать пример: [[Медиа:dl_example_Canvas_1.zip|Example_Canvas_1.zip]]
<div class="mw-collapsible mw-collapsed" style="width:100%" >
+
 
'''Код примера:'''
+
<toggledisplay status=hide showtext="Код примера:↓" hidetext="Скрыть↑" linkstyle="font-size:default">  
<div class="mw-collapsible-content">
 
 
Файл '''"dl_example_Canvas_1.html"'''
 
Файл '''"dl_example_Canvas_1.html"'''
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<!DOCTYPE html>
 
<!DOCTYPE html>
 
<html>
 
<html>
Строка 469: Строка 302:
 
</body>
 
</body>
 
</html>
 
</html>
</syntaxhighlight>
+
</source>
 
Файл '''"dl_example_Canvas_1.js"'''
 
Файл '''"dl_example_Canvas_1.js"'''
<syntaxhighlight lang="javascript" line start="1" enclose="div">
+
<source lang="javascript" first-line="1">
 
function main_dl_example_Canvas_1() {
 
function main_dl_example_Canvas_1() {
 
     var ctx = canvas_example_1.getContext("2d");    // всё рисование будет происходить с помощью ctx
 
     var ctx = canvas_example_1.getContext("2d");    // всё рисование будет происходить с помощью ctx
Строка 480: Строка 313:
 
     ctx.stroke();                                  // закончить рисование ("обвести нарисованное")
 
     ctx.stroke();                                  // закончить рисование ("обвести нарисованное")
 
}
 
}
</syntaxhighlight>
+
</source>
</div>
+
</toggledisplay>
</div>
 
  
 
=== Пример №2. Различные геометрические фигуры ===
 
=== Пример №2. Различные геометрические фигуры ===
Строка 491: Строка 323:
  
 
Скачать пример: [[Медиа:dl_example_Canvas_2.zip|Example_Canvas_2.zip]]
 
Скачать пример: [[Медиа:dl_example_Canvas_2.zip|Example_Canvas_2.zip]]
<div class="mw-collapsible mw-collapsed" style="width:100%" >
+
 
'''Код примера:'''
+
<toggledisplay status=hide showtext="Код примера:↓" hidetext="Скрыть↑" linkstyle="font-size:default">  
<div class="mw-collapsible-content">
 
 
Файл '''"dl_example_Canvas_2.html"'''
 
Файл '''"dl_example_Canvas_2.html"'''
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<!DOCTYPE html>
 
<!DOCTYPE html>
 
<html>
 
<html>
Строка 506: Строка 337:
 
</body>
 
</body>
 
</html>
 
</html>
</syntaxhighlight>
+
</source>
 
Файл '''"dl_example_Canvas_2.js"'''
 
Файл '''"dl_example_Canvas_2.js"'''
<syntaxhighlight lang="javascript" line start="1" enclose="div">
+
<source lang="javascript" first-line="1">
 
function main_dl_example_Canvas_2() {
 
function main_dl_example_Canvas_2() {
  
Строка 588: Строка 419:
  
 
}
 
}
</syntaxhighlight>
+
</source>
</div>
+
</toggledisplay>
</div>
 
  
 
=== Пример №3. Копирование изображений ===
 
=== Пример №3. Копирование изображений ===
Строка 601: Строка 431:
  
 
Скачать пример: [[Медиа:dl_example_Canvas_3.zip|Example_Canvas_3.zip]]
 
Скачать пример: [[Медиа:dl_example_Canvas_3.zip|Example_Canvas_3.zip]]
<div class="mw-collapsible mw-collapsed" style="width:100%" >
+
 
'''Код примера:'''
+
<toggledisplay status=hide showtext="Код примера:↓" hidetext="Скрыть↑" linkstyle="font-size:default">  
<div class="mw-collapsible-content">
 
 
Файл '''"dl_example_Canvas_3.html"'''
 
Файл '''"dl_example_Canvas_3.html"'''
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<!DOCTYPE html>
 
<!DOCTYPE html>
 
<html>
 
<html>
Строка 616: Строка 445:
 
</body>
 
</body>
 
</html>
 
</html>
</syntaxhighlight>
+
</source>
 
Файл '''"dl_example_Canvas_3.js"'''
 
Файл '''"dl_example_Canvas_3.js"'''
<syntaxhighlight lang="javascript" line start="1" enclose="div">
+
<source lang="javascript" first-line="1">
 
function main_dl_example_Canvas_3() {
 
function main_dl_example_Canvas_3() {
  
Строка 646: Строка 475:
  
 
}
 
}
</syntaxhighlight>
+
</source>
</div>
+
</toggledisplay>
</div>
 
  
 
=== Пример №4. Анимация ===
 
=== Пример №4. Анимация ===
Строка 657: Строка 485:
  
 
Скачать пример: [[Медиа:dl_example_Canvas_4.zip|Example_Canvas_4.zip]]
 
Скачать пример: [[Медиа:dl_example_Canvas_4.zip|Example_Canvas_4.zip]]
<div class="mw-collapsible mw-collapsed" style="width:100%" >
+
 
'''Код примера:'''
+
<toggledisplay status=hide showtext="Код примера:↓" hidetext="Скрыть↑" linkstyle="font-size:default">  
<div class="mw-collapsible-content">
 
 
Файл '''"dl_example_Canvas_4.html"'''
 
Файл '''"dl_example_Canvas_4.html"'''
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<!DOCTYPE html>
 
<!DOCTYPE html>
 
<html>
 
<html>
Строка 672: Строка 499:
 
</body>
 
</body>
 
</html>
 
</html>
</syntaxhighlight>
+
</source>
 
Файл '''"dl_example_Canvas_4.js"'''
 
Файл '''"dl_example_Canvas_4.js"'''
<syntaxhighlight lang="javascript" line start="1" enclose="div">
+
<source lang="javascript" first-line="1">
 
function main_dl_example_Canvas_4() {
 
function main_dl_example_Canvas_4() {
  
Строка 708: Строка 535:
 
      
 
      
 
}
 
}
</syntaxhighlight>
+
</source>
</div>
+
</toggledisplay>
</div>
 
  
 
=== Пример №5. Управление мышью ===
 
=== Пример №5. Управление мышью ===
Строка 725: Строка 551:
  
 
Скачать пример: [[Медиа:dl_example_Canvas_5.zip|Example_Canvas_5.zip]]
 
Скачать пример: [[Медиа:dl_example_Canvas_5.zip|Example_Canvas_5.zip]]
<div class="mw-collapsible mw-collapsed" style="width:100%" >
+
 
'''Код примера:'''
+
<toggledisplay status=hide showtext="Код примера:↓" hidetext="Скрыть↑" linkstyle="font-size:default">  
<div class="mw-collapsible-content">
 
 
Файл '''"dl_example_Canvas_5.html"'''
 
Файл '''"dl_example_Canvas_5.html"'''
<syntaxhighlight lang="html5" line start="1" enclose="div">
+
<source lang="html" first-line="1">
 
<!DOCTYPE html>
 
<!DOCTYPE html>
 
<html>
 
<html>
Строка 740: Строка 565:
 
</body>
 
</body>
 
</html>
 
</html>
</syntaxhighlight>
+
</source>
 
Файл '''"dl_example_Canvas_5.js"'''
 
Файл '''"dl_example_Canvas_5.js"'''
<syntaxhighlight lang="javascript" line start="1" enclose="div">
+
<source lang="javascript" first-line="1">
 
function main_dl_example_Canvas_5() {
 
function main_dl_example_Canvas_5() {
  
Строка 802: Строка 627:
  
 
}
 
}
</syntaxhighlight>
+
</source>
</div>
+
</toggledisplay>
</div>
+
 
 +
== TODO ==
 +
<font color=red>
 +
НАПИСАТЬ ПРО DOCTYPE И ТЕГ <HTML>
 +
 
 +
НАПИСАТЬ ПРО РАЗЛИЧНЫЕ СПОСОБЫ ЗАДАНИЯ ФУНКЦИЙ, ТАКИХ КАК ONCLICK, ONCHANGE
 +
 
 +
НАПИСАТЬ ПРО ПЕРЕМЕННЫЕ, VAR, И ПРО НЕЖЕЛАТЕЛЬНОСТЬ ИСПОЛЬЗОВАНИЯ CONST
 +
 
 +
ПРОВЕРИТЬ В IE И CHROME
  
== Стенды Виртуальной лаборатории ==
+
ССЫЛКА НА СТАТЬЮ О ЦВЕТАХ, ССЫЛКА НА 3D ПРИМЕРЫ, ССЫЛКА НА ТЕСТОВУЮ BOX2D ПРОГРАММУ, ВВЕРХУ ШАПКА-ССЫЛКА НА ВИРТУАЛЬНУЮ ЛАБОРАТОРИЮ, КАТЕГОРИИ
  
В нашей Виртуальной лаборатории практически у каждого стенда выложен хорошо прокомментированный исходный код. Это делается специально для того, чтобы вы могли узнать, каким образом реализована интересующая вас программа.
+
НАПИСАТЬ ПРО ОБЪЕКТЫ, [], Т.П.
  
Если вы не знаете, с чего начать, вот наиболее интересные для начинающего стенды:
+
УДАЛИТЬ "ИСПОЛЬЗОВАНИЕ МЫШИ" НА СТРАНИЦЕ "ПРОСТЕЙШИЕ ИНТЕРНЕТ-ПРОГРАММЫ", ОНО НА НЕИСПОЛЬЗУЕМОЙ БИБЛИОТЕКЕ
* [[JavaScript - Клеточный автомат|Клеточный автомат]]
 
* [[JavaScript - Balls|Динамика взаимодействующих частиц]]
 
* [[Моделирование Солнечной системы]]
 
  
== Вопросы, замечания, предложения ==
+
ВЫЛОЖИТЬ ВСЕ ZIP-АРХИВЫ С ПРИМЕРАМИ
Ваши вопросы, замеченные ошибки и всё, что вы хотите сказать по поводу данной статьи, отправляйте на '''DVTsvetkov@ya.ru'''
 
  
== См. также ==
+
МОЖЕТ СТОИТ СДЕЛАТЬ РАЗДЕЛ/ОТДЕЛЬНУЮ СТРАНИЦУ "ТЕХНИКИ ПРОГРАММИРОВАНИЯ", И ПЕРЕМЕСТИТЬ ТУДА СТАТЬЮ О КОПИРОВАНИИ?
* [[Различные цветовые модели и их использование]]
 
* [[JavaScript-mechanics-box2D|Пример использования популярного движка Box2D]]
 
*Простейшая 3D программа:
 
**[[Простейшая 3D программа|На чистом WebGL]]
 
**[[Простейшая 3D программа с использованием Three.js|С использованием библиотеки Three.js]]
 
  
*[http://javascript.ru/ javascript.ru] — центральный ресурс русскоязычного JavaScript-сообщества, с online-учебниками, примерами, книгами и форумом.
+
НАПИСАТЬ ПРО CONSOLE(), ОПИСАТЬ ПРОГРАММЫ ДЛЯ РАЗРАБОТКИ - F12, NOTEPAD++, WEBSTORM, Т.П.
*[http://htmlbook.ru/ htmlbook.ru] - отличный справочник по тегам, атрибутам, событиям и т.д. Сайт посвящен языку HTML, CSS, веб-дизайну, графике и процессу создания сайтов.
 
  
[[Category: Виртуальная лаборатория]]
+
</font>
[[Category: Программирование]]
 
[[Category: JavaScript]]
 
Вам запрещено изменять защиту статьи. Edit Создать редактором

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии Public Domain (см. Department of Theoretical and Applied Mechanics:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Отменить | Справка по редактированию  (в новом окне)