Индивидуальный раздел
Нестандартное использование JavaScript при создании сложных динамических эффектов.
Разработка кроссбраузерного, кроссплатформенного приложеня(пк,планшеты и т.д.) Рабочий примерВведение
На основе Javascript Api разработанного Gerard Ferrandez реализовано приложения которое преобразует картинку в мозаику, а так же дает возможность манипуляции с полученными ячейками( добавления текста, группировка, навигация). Тематика созданного приложения StarCraft2 Wings Of Liberty. Проект использовался в некоммерческих целях('for fun').
HTML
<div id="screen"></div> <div id="htmlBank"> <div id="txt1"> <div class="content"> . . . </div> </div> <div id="txt2"> <div class="content"> . . . </div> </div> <div id="txt3"> <div class="content"> . . . </div> </div> <div id="txt4"> <div class="content"> . . . </div> </div> <div id="txt41"> <div class="content"> . . . </div> </div> <div id="thumb1"> <img src="images/thu_event04.jpg"> </div> <div id="thumb2"> <img src="images/thu_event05.jpg"> </div> <div id="thumb3"> <img src="images/thu_event02.jpg"> </div> </div>
CSS
html {
overflow: hidden;
}
body {
width: 100%;
height: 100%;
background:#FFF;
position: absolute;
padding: 0px;
padding: 0px;
}
#screen {
position: absolute;
width: 891px;
height: 550px;
left: 50%;
top: 50%;
padding-left:-445px;
padding-top:-275px;
background: #111;
overflow: hidden;
}
#screen .wrapper {
position: absolute;
background: #333;
font-size: 0px;
overflow: hidden;
}
#screen .txt {
position: absolute;
font-size: 14px;
color: #fff;
font-family: arial;
overflow: hidden;
}
#screen .menu {
position: absolute;
font-size: 12px;
color: #fff;
font-family: arial;
overflow: hidden;
cursor: pointer;
}
#screen .menubackgroundcolor {
opacity: 0.7;
filter: alpha(opacity=70);
}
#screen .content {
position:absolute;
left: 2%;
top: 2%;
width: 96%;
height: 96%;
overflow: hidden;
}
#screen .content img {
float: left;
padding-right: 6px;
padding-bottom: 0px;
}
#screen h1 {
position:relative;
top: 20px;
width: 100%;
text-align: center;
letter-spacing: 0px;
font-size: 1.8em;
}
#screen .menucontent {
position: absolute;
width: 100%;
text-align: center;
font-size: 128px;
letter-spacing: 0px;
font-weight: bold;
top: -10px;
}
#screen .submenucontent {
position: absolute;
width: 100%;
height: 100%;
}
#screen .submenutitle {
position: absolute;
font-size: 40px;
font-weight: bold;
}
#screen .submenu {
position: absolute;
width: 100%;
top: 55px;
}
#screen .submenuline {
position: relative;
height: 18px;
font-size: 14px;
padding-top: 1px;
}
#screen .lineover {
background: #fff;
color: #0064a0;
font-weight: bold;
}
#loader {
position:absolute;
left: 50%;
top: 50%;
width: 50px;
padding-left: -25px;
padding-top: -14px;
text-align: center;
font-family: arial;
font-size: 24px;
font-weight: bold;
color: #fff;
background: #FFF;
outline: #111 solid 3px;
opacity: 0.6;
filter: alpha(opacity=60);
z-index: 1FFF;
}
#htmlBank {
display: none;
visibility: hidden;
}
JavaScript
setTimeout(function ()
{
dp.init(
{
containerID: "screen", // Элемент, в который будет выводиться информация
wrapperX: 6, // Размерность сетки по оси X
wrapperY: 4, // Размерность сетки по оси Y
imagesPath: "images/", // Папка с изображениями
timeout: 153,
flash: { r: 255, g: 255, b: 255}, // Цвет вспышки
fadein: // Параметры вывода ячейки
{
alpha: 100,
alphaTarget: 0,
step: -5,
endFlash: 80,
nextCell: 90,
nextStep: 0,
},
fadeout: // Параметры скрытия ячейки
{
alpha: 0,
alphaTarget: 60,
step: 5,
endFlash: 20,
nextCell: 10,
nextStep: 40,
},
menu: [ // Настройки пунктов меню
{
html: '1', // Код будет выводиться на экран
target: 0 // Целевая страница
},
{
html: '2',
target: 1,
submenu: { // Настройки подменю
title: 'Состав', // Название
lines: [
{
html: 'Разведка', // Название пункта
text: [{
html: '', //Выводимый текст
x: 0, y: 2, w: 5, h: 1 // Параметры вывода текста
},
{
id: "thumb1", // Выводимый элемент
x: 2, y: 0, w: 1, h: 4 // Параметры вывода элемента
}]
},
{
html: 'Планирование',
text: [{
html: ' ',
x: 4, y: 0, w: 1, h: 4
},
{
id: "thumb2",
x: 0, y: 2, w: 5, h: 1
}]
},
{
html: 'Управление',
text: [{
html: ' ',
x: 2, y: 0, w: 1, h: 4
},
{
html: ' ',
x: 4, y: 0, w: 1, h: 4
},
{
id: "thumb3",
x: 2, y: 1, w: 3, h: 2
}]
},
{
html: 'Командный центр',
fullImage: "event06.jpg" // Выводим изображение на весь экран
}
]
}
},
{
html: '3',
target: 2
},
{
html: '4',
target: 3
}
],
page: [ // Описание страниц
{ // Страница 1
backgroundImage: "event01.jpg", // Фоновое изображение
menuBackgroundColor: { r: 0, g: 100, b: 160 }, // Цвет фона пунктов меню
text: [ // Выводим текст
{
html: ' ',
x: 0, y: 2, w: 2, h: 2
},
{
id: "txt1", // Указываем используемы элемент
x: 4, y: 1, w: 2, h: 2 // Параметры вывода
},
{
html: '<h1>Крейсер</h1>',
x: 4, y: 3, w: 1, h: 1
}
],
menuTarget: [ // Расположение пунктов меню на странице
{ x: 0, y: 0 },
{ x: 1, y: 1 },
{ x: 0, y: 3 },
{ x: 5, y: 3 }
]
},
{ // Страница 2
backgroundImage: "event02.jpg",
menuBackgroundColor: { r: 102, g: 102, b: 51 },
text: [{
html: ' ',
x: 5, y: 3, w: 1, h: 1
},
{
html: ' ',
x: 0, y: 3, w: 1, h: 1
},
{
id: "txt2",
x: 0, y: 0, w: 3, h: 2
},
{
html: '<h1>Интегратор</h1>',
x: 5, y: 0, w: 1, h: 1
}
],
menuTarget: [
{ x: 3, y: 0 },
{ x: 1, y: 3 },
{ x: 3, y: 3 },
{ x: 5, y: 2 }
]
},
{ // Страница 3
backgroundImage: "event03.jpg",
menuBackgroundColor: { r: 160, g: 100, b: 0 },
text: [{
html: ' ',
x: 0, y: 0, w: 1, h: 1
},
{
html: ' ',
x: 5, y: 0, w: 1, h: 1
},
{
id: "txt3",
x: 2, y: 1, w: 3, h: 2
},
{
html: '<h1>Яхта</h1>',
x: 5, y: 2, w: 1, h: 1
}
],
menuTarget: [
{ x: 1, y: 0 },
{ x: 1, y: 2 },
{ x: 5, y: 3 },
{ x: 5, y: 1 }
]
},
{ // Страница 4
backgroundImage: "event04.jpg",
menuBackgroundColor: { r: 0, g: 150, b: 150 },
text: [{
id: "txt41",
x: 0, y: 3, w: 2, h: 1
},
{
id: "txt4",
x: 4, y: 2, w: 2, h: 2
},
{
html: '<h1>Флот</h1>',
x: 3, y: 3, w: 1, h: 1
}
],
menuTarget: [
{ x: 2, y: 0 },
{ x: 1, y: 0 },
{ x: 2, y: 3 },
{ x: 5, y: 0 }
]
}]
});
}, 500);
Заключение
На основе JS Api Gerard Ferrandez мы можем легко получить сайт за короткий промежуток времени. Так же возможно использования для реализации презентаций, плюсами является кросспалтформеность (на примере iOS – нет необходимости установки стороннего ПО, нет необходимости использования flash- технологий, а так же удобная навигация для сенсорных экранов)
