Поделиться Поделиться

Основные события click, dbclick, moseup, moseover, mosemove, moscout, load, onload, др.)


Событие— действие, которое может быть инициировано или пользователем, или устройством, типа таймера, или клавиатурой, или даже операционной системой. Для реакции на действия посетителя и внутреннего взаимодействия скриптов существуют события. Событие - это сигнал от браузера о том, что что-то произошло. Срабатывание событий: одно действие может вызывать несколько событий. Прописываются межд <script></script>

Типы:а)комплексные события(можно составить из простых→в теории можно было б обойтись без них, но с ними удобнее):click клик по элементу (щелчок - последовательно нажата и отпущена кнопка мыши на одном и том же участке экрана)вызывается при клике мышью, то есть при mousedown, а затем mouseup на одном элементе(mousedown→mouseup→click)

dblclick — двойной клик по элементу(вызывается при двойном клике по элементу)Фундаментальный недостаток описанных способов назначения обработчика — невозможность повесить несколько обработчиков на одно событие.Чтобы прикрепить click-событие к input кнопке, можно присвоить обработчик onclick, вот так: <input id="b1" value="Нажми меня" onclick="alert('Спасибо!')" type="button"/> здесь используются одиночные кавычки, так как сам атрибут находится в двойных, если вам нужно использовать двойные кавычки(&quot),то:onclick="alert(&quot;Клик&quot;)"Пример:1)Только HTML:<input type="button" onclick="alert('Клик!')" value="Кнопка"/>2)HTML + JS:<input type="button" id="button" value="Кнопка"/>

<script>

document.getElementById('button').onclick = function()

{

alert('Клик!');

}

</script>

б)простые события: mouseup — отжатие клавиши мыши(кнопка мыши отпущена над элементом)Параметр: button. mouseover — наведение курсора на элемент(мышь появилась над элементом)пример записи:$("div.overout").mouseover (function(){

mousemove — движение курсора(каждое движение мыши над элементом генерирует это событие). Перемещает указатель мыши.Параметры:координаты х,у.Пример записи:$("div").mousemove (function(e){mouseout — вывод курсора из элемента(мышь ушла с элемента)пример записи:}).mouseout(function(){

События mousemove,mouseover/mouseout срабатывают так часто, насколько это позволяет внутренняя система взаимодействия с мышью браузера,т.е.если посетитель двигает мышью быстро, то DOM-элементы, через которые мышь проходит на большой скорости, могут быть пропущены.

load — загрузка элемента (img) с сервера (html) и вставляет в указанный элемент. Браузер загружает все ресурсы. Данный метод это лёгкий способ извлечения данных с сервера. Он представляет из себя альтернативу использования метода $.get(url, data, success). В случае успешного запроса, метод .load() формирует HTML содержание, которое может быть вставлено на страницу. Это значит, что мы можем делать запросы следующим образом:$('#result').load('ajax/test.html');Пример:

<script>

$("#new-nav").load("/ #jq-footerNavigation li");

</script>

onload - указатель того, что веб-страница полностью загружена, включая содержание, изображения, стилевые файлы и внешние скрипты. Событие onload на window срабатывает, когда загружается вся страница, включая ресурсы на ней – стили, картинки, ифреймы и т.п.Пример ниже выведет alert лишь после полной загрузки окна, включая IFRAME и картинку:

<script>

window.onload = function()

{

alert( 'Документ и все ресурсы загружены' );

};

</script>

<iframe src="https://example.com/" style="height:60px"></iframe>

<img src="https://js.cx/clipart/yozhik.jpg?speed=1">

Пример Событие onLoad (или другое событие, тогда заменяем слово onLoad на др,например: onClick)

<html>
<head>
<title>Простая страница</title>
<script language="JavaScript">
<>
</script>
</head>
<body onLoad ="yourMessage()">
</body>
</html>

26. Рекламные баннеры: назначения, требования, предъявляемые к баннерам, стандартные размеры, особенности размещения на web-странице, критерий эффективности, средства повышения эффективности.

Назначение: баннер существует для щелка по нему мышкой пользователя(эффект щелчка).Важно расшевелить восприятие пользователя, неожиданно придать импульс взгляду.

Требования: между баннером и сайтом существует тематическая связь(например: свадебные платья-свадебный визажист-свадебный фотограф).Баннеры должен сопровождаться картинкой (GIF, JPG, PNG). Размер файла не должен быть слишком большим, чтобы не замедлять загрузку. Оптимальный размер файла баннера 3-5 килобайт для GIF-баннеров и до 50-100 Кб для флэш-баннеров. Фон баннера не должен быть прозрачным, содержимое баннера должно занимать всю отведенную площадь и иметь четкую границу (рамку). Стандартные шрифты должны использоваться (например:Arial, Verdana, Times New Roman, Helvetica)

Стандарт размеры:468х60- самый распространённый формат баннеров в сети. 800 х 60 и 800 х 100- растяжка, отображается в верхней части сайта. 728 x 90- ведущий стенд. 392 х 72-длинный баннер с вертикальной панелью навигации. 336 x 280- большой прямоугольник. 100 х 100- баннер–квадрат, весьма распространён в баннерных сетях. 120 x 240- вертикальный баннер, хороший вариант для рекламы товаров, работ и услуг и др.

Особенности размещения: можно расположить баннеры справа от фоновой полосы/на самом верху страницы/справа от вертикального скролинга. скроллингом называют колёсикомыши и само действие прокрутки содержимогоокна. Полоса скролинга-это полосапрокрутки (эмитируется справа по вертикали, нарисована искусственно, автоматически вызывается другую страницу),когда касаешься рисунка. Главные этапы драмы баннера:

1)завязка - привлекает внимание зрителя, выбивает его из привычной калеи, заставляет ожидать детальное развитие событий.

2)развитие - раскрывает "роль"рекламы, выводит основную инфу баннера,то ради его зритель должен соблазниться- нашим продуктом.

3)развязка - снова играет с чувствами, раскрывает тайну рекламы или призывает щелкнуть. Наиболее четко видно эти этапы в анимированном баннере. На 1 этапе идет прокрутка, движение, взрыв. На 2- текст. На 3-изменяется динамика- мигает. движется справа в локальную часть.

Критерии эф: СТR(click-throuth ratio)- проклик. Меры эф баннера - отношение числа посетителей, щелкающих по нему к общему числу видевших страницу этого баннера. Эффективность зависит от типа страницы и места,где вывешивается.

Ср-ва повышения эффективности: увеличивает на 20-25% использование анимированных баннеров.

Массивы


Массив является по сути списком элементов. Каждый элемент массива может быть чем угодно, но обычно они связаны друг с другом. Если, например, необходимо отследить 30 студентов класса, то можно создать массив студентов:


var students = new Array();

students[0] = 'Sam';

students[1] = 'Joe';

students[2] = 'Sue';

students[3] = 'Beth';

Как можно видеть, определить массив очень просто, так же, как и присвоить значения его элементам. Однако пример выше имеет слишком много кода для относительно небольшого результата. Нет ничего удивительного в том, что существует несколько методов для создания массива. Значительно более компактным будет следующий пример:


var students = ['Sam', 'Joe', 'Sue', 'Beth'];

Это код создает точно такой же массив, что и предыдущий пример, но, как можно видеть, он значительно более компактный и ничуть не сложнее для понимания. Скобки ([ и ]) в этом примере сообщают коду, что будет создан массив. Простая запись "var students = []; " является тем же самым, что и запись "var students = new Array(); ". Правда, некоторые люди считают, что использование слова "Array" более наглядно, чем запись "[] ", поэтому можно использовать любой метод записи.

Что можно теперь сделать с этим массивом студентов? Чтобы обратиться к любому элементу массива, необходимо знать его индекс. В первом примере можно видеть, что в скобках находятся числа (0-3). Это индексы. Если требуется узнать имя третьего студента, то надо будет написать "alert(students[2]); ". Почему 2, а не 3? Массивы в JavaScript начинают индексацию с 0, а не с 1. Поэтому первым элементом в нашем массиве будет students[0], вторым - students[1], сотым - students[99], и т.д. Для этого не существует никакой реальной причины, просто так устроен JavaScript и многие другие языки программирования. Некоторые другие языки используют в качестве первого индекса 1.

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


var students = ['Sam', 'Joe', 'Sue', 'Beth'];

var suffixes = ['1st', '2nd', '3rd', '4th'];

for(var i=0; i<students.length; i++){

alert(suffixes[i]+' студент -- '+students[i]);

}

Важный момент, который необходимо знать о массивах, состоит в том, что каждый элемент массива может содержать любой произвольный объект. В этих примерах каждый элемент массива является строкой, но они могут быть также числами, объектами, функциями, даже другими массивами. Электронная таблица (такая, как Excel) является хорошим примером массива, содержащего другие массивы.

Прежде всего имеется массив столбцов. Каждый столбец будет в свою очередь содержать в себе массив строк. Этот массив создается точно таким же образом, как и массив students:


var spreadsheet = [

['A1', 'B1', 'C1', 'D1'],

['A2', 'B2', 'C2', 'D2'],

['A3', 'B3', 'C3', 'D3'],

['A4', 'B4', 'C4', 'D4']

];

Переносы строк в JavaScript обычно не имеют значения. В этом примере переносы строк используются для придания коду большей наглядности и не влияют на код никаким образом.

Можно видеть, что здесь имеется 5 массивов. Четыре внутренних массива (или вложенных массива) содержатся в одном большом массиве, spreadsheet. Если потребуется узнать значение на пересечении второго столбца и третьей строки, то можно написать:


var col2 = spreadsheet[1];

alert(col2[2]);

// или

alert(spreadsheet[1][2]);

Оба фрагмента кода делают одно и то же, выводят значение “C2 «. Существует несколько распространенных операций, которые выполняются с массивами. Первой является добавление элемента в конце массива. Вернемся к массиву students, который содержит в данный момент 4 элемента. Чтобы добавить новый элемент, надо просто задать значение для 5-го элемента:


var students = ['Sam', 'Joe', 'Sue', 'Beth'];

students[4] = 'Mike';

students[students.length] = 'Sarah';

students.push('Steve');

// теперь массив содержит 7 элементов: ['Sam', 'Joe', 'Sue', 'Beth', 'Mike', 'Sarah', 'Steve']

Здесь также существует несколько способов для выполнения этой задачи. Первый метод, «students[4]", используется редко, так как обычно неизвестно заранее в точности, сколько будет элементов. Поэтому применяется один из двух оставшихся методов. “push” является функцией, которая просто добавляет то, что получает, в конец массива, как и предыдущий метод, использующий свойство .length.

Не так часто, но иногда необходимо также удалить объект из массива. В этом случае задействуется функция “ splice ", которая позволяет добавить или удалить любое количество элементов массива, но в данный момент мы собираемся использовать ее для удаления одного студента, Mike, который переехал в другой город:


var students = ['Sam', 'Joe', 'Sue', 'Beth', 'Mike', 'Sarah', 'Steve'];

students.splice(4, 1);

Splice в этом примере получает два аргумента: начальный индекс и число элементов для удаления. Так как Mike является пятым студентом, то его индекс будет 4. Будет удален только 1 студент, поэтому здесь используется 1. В результате имеем массив с удаленным Mike:


['Sam', 'Joe', 'Sue', 'Beth', 'Sarah', 'Steve'];

Чаще всего точно неизвестно, где в массиве находится элемент. К сожалению, единственным способом выяснить это является перебор всех элементов массива.

Можно написать небольшой простой сценарий, который позволит легко добавлять или удалять студентов:


var students = ['Sam', 'Joe', 'Sue', 'Beth'];

function addStudent(name){

students.push(name);

}

function removeStudent(name){

for(var i=0; i<students.length; i++){

if(students[i].toLowerCase() == toLowerCase(name)){

students.splice(i, 1);

break;

}

}

}

Имя студента:

Добавить этого студента

Удалить этого студента

Студенты:

Единственным новым моментом здесь является слово “break”. break останавливает выполнение кода любого цикла, в котором находится: цикла for, цикла do или switch. Поэтому в данном случае, когда удаляемый студент найден, мы прерываем цикл for, так как выполнили свою задачу.

Часто бывает необходимо преобразовать массив в строку или строку в массив.

Имеется две функции, которые могут легко это сделать: join и split. Функция join получает массив и преобразует его в строку с помощью разделителя, заданного в join. Функция split действует в обратном направлении и делает массив из строки, определяя новый элемент c помощью разделителя, заданного в split:


var myString = 'apples are good for your health';

var myArray = myString.split('a');

// строка myString разбивается на элементы на каждом найденном

символе 'a'.

alert(myArray.join(', '));

// преобразуем myArray снова в строку с помощью запятой,

// так что можно видеть каждый элемент

alert(myArray.join('a'));

// теперь преобразуем myArray снова в строку с помощью символа

'a',

// так что снова получается исходная строка

Еще две полезные функции для работы с массивами - "pop" и "shift". Функция "pop"

удаляет последний элемент из массива и возвращает его. Функция "shift" удаляет

первый элемент из массива и возвращает его.

var students = ['Sam', 'Joe', 'Sue', 'Beth'];

while(students.length>0){

alert(students.pop());

}

К сожалению, при этом массив был уничтожен: он теперь пуст. Иногда именно это и надо сделать. Если требуется просто очистить массив, то проще всего задать его длину (length) равной 0:


students.length = 0

Теперь массив пуст. Даже если снова задать длину массива больше 0, все данные в массиве уже будут уничтожены.

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


var grades = [];

grades['Sam'] = 90;

grades['Joe'] = 85;

grades['Sue'] = 94;

grades['Beth'] = 82;

Ассоциативные массивы действуют немного иначе, чем индексные. Прежде всего, длина массива в этом примере будет равна 0. Как же узнать, какие элементы находятся в массиве? Единственный способ сделать это – использовать цикл “forin”:


for(student in grades){

alert("Оценка " + student + "будет: " + grades[student]);

}

Синтаксис цикла “for-in " следующий: " for(item in object){ «. Цикл пройдет через все элементы в объекте, и элемент будет именем элемента. В данном случае элементом является “Sam ", затем “ Joe ", “ Sue " и “ Beth «.

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


var students = ['Sam', 'Joe', 'Sue', 'Beth'];

students['Sam'] = 90;

students['Joe'] = 85;

students['Sue'] = 94;

students['Beth'] = 82;

alert('Всего имеется '+(students.length)+' студентов: '+students.join(', '));

for(var i=0; i<students.length; i++){

alert("Оценка " +students[i]+"будет: "+students[students[i]]);

}

← Предыдущая страница | Следующая страница →