|
Жук который ползает
Всем привет.
В процессе обучения пришла в голову такая мысля - нарисовать на html жука, а на js и jQuery сделать так что бы им можно было управлять с клавы, вот что получилось Анимацию лап и т.д пропускаю - только основное выложу Вот само поле с жуком <div class="marg"> <div class="juk"></div> </div> а вот js код function removeCl(a, f, c){ if($('.juk').attr("class") == "juk "+a){ if(a == 'top' || a == "left"){ var top = Number($(".juk").css(f).replace("px", "")) - 5; }else{ var top = Number($(".juk").css(f).replace("px", "")) + 5; } $(".juk").css(f, top); return; }else{ $(".juk").addClass(a); $(".juk").removeClass(c); return; } } document.onkeypress = function(e) { switch (e.keyCode) { case 38: //Top removeCl("top", "top", "bottom right left"); break; case 40: //Bottom removeCl("bottom", "top", "top right left"); break; case 37: //Left removeCl("left", "left", "top right bottom"); break; case 39: //Right removeCl("right", "left", "top left bottom"); break; } } CSS классы я добавляю и удаляю что бы сделать жуку плавный поворот в нужную сторону - к примеру класс left - transform: rotate(-90deg); - это его css код, соответственно класс right - (90deg), top 0deg и bottom 180deg Проблем еще много - но пока одна из них такая - при нажатии клавишы к примеру Up жук двигается вверх - но стоит мне нажать какую нить другую клавишу хотя бы один раз - Up перестает работать не смотря на то что я ее не отпускал. И хотелось бы услышать - адекватное ли подобное решение для такой задачи - или все таки можно проще, логичнее и короче код сделать. Буду признателен P.S Книжку пойти почитать не посылать, так как я в процессе :) |
Цитата:
Чтобы стили назначать? el.style.top = 50 + 'px'. function Bug() { this.step = 5; this.baseClass = 'juk'; this.element = /* ... */; this.bindKeys(); } Bug.prototype.moveTo = function(direction) { switch (direction) { case 'top': this.top -= this.step; break; /* ... */ } this.element.className = this.baseClass + direction; this.element.style.top = this.top + 'px'; this.element.style.left = this.left + 'px'; }; Bug.prototype.bindKeys = function(e) { var keyNav = {38: 'top', 39: 'right'}; var bug = this; document.addEventListener('keypress', function(e) { if (e.keyCode in keyNav) bug.moveTo(keyNav[e.keyCode]); }, false); }; var bug = new Bug(); bug.moveTo('top'); |
Канвас тебе в помощь
|
danik.js,
jQuery прилепил потому что в js мои знания ограничиваются if, for и немного функциями. Вот сейчас сижу и думаю как же ваш пример прилепить что бы проверить :) |
Цитата:
|
ksa,
А вот такой вопрос немного не по теме - зачем вообще нужен jQuery и почему такой популярен? Кто его вообще использует? Верно ли утверждение что jQuery используют дилетанты? Ну или верстальщики далекие от js как я например :) |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
ksa,
Ну если библиотека уже подключена на странице то почему бы не использовать. Я думал как бы советуют вообще стараться не использовать. Вот и подумал к чему бы это. А вообще как посмотрю на инструментарий js для выбора элементов так плакать хочется - чего только стоит document.getElementsByTagName("") или document.getElementById("") - что курили когда придумали такие опусы не понимаю. Еще бы так написали document.взятьДочернийЭлемент� �олькоНеТотЧтоКлассАтотЧт� �IdСмотриНеПерепутайКоньяк� �Водкой('top') Думаю только автокомплит спасает програмеров JS от производственных травм в виде переломов фаланги пальцев. Хотя не мне судить, я только 150 страниц по JS прочитал :) |
Цитата:
Цитата:
Цитата:
Или посмотри как отжигают 1Сники... :lol: Цитата:
|
Часовой пояс GMT +3, время: 22:48. |
|