29.09.2012, 11:16
|
Профессор
|
|
Регистрация: 26.07.2012
Сообщений: 281
|
|
Моя первая попытка в ООП
И так, вот первый мой окошечный скрипт с использованием этих самых прототипов и претензией на подобие ООП. Как можно легко увидеть, может создавать группы попапов с дефолтными свойствами (картинка, класс, размер, положение) и при этом в каждом классе можно создавать уникальные окошки.
Критика, рассказы как делать нельзя, как делать нужно, что я сделал не так жутко приветствуются.
http://learn.javascript.ru/play/MEPC1b
забавную ссылку мне движок выдал
|
|
29.09.2012, 15:52
|
|
Профессор
|
|
Регистрация: 21.04.2012
Сообщений: 951
|
|
PashPP,
по идее неплохо, (даже очень) но код трудно расширяем, примеры:
if (imgWid) im.style.width= imgWid +'px';
пиксели лучше не трогать, вдруг чувак захочет относительные еденицы измерения (приколисты и прочие мудрецы css не надо кричать что пиксели относительные - это так, но с разными компами фигня будет) em-ы к примеру или проценты
var closeButton = document.createElement('DIV');
closeButton.className = 'closeButton';
closeButton.style.width = 26 + 'px';
closeButton.style.height = 15 + 'px';
closeButton.style.cursor = 'pointer';
closeButton.innerHTML = 'X';
closeButton.style.textAlign = 'center';
closeButton.style.lineHeight = '15px';
popup.appendChild(closeButton);
собсно, тоже самое
можно ещё найти там, но мне сейчас лень копаться в коде
По-моему неплохо, тем более с ООП, но расширять код будет очень трудно
|
|
29.09.2012, 16:15
|
Профессор
|
|
Регистрация: 26.07.2012
Сообщений: 281
|
|
Dim@,
Почему трудно будет расширять?
С пикселями привычка, мне так быстрее за них зацепиться и поменять.
Но таки да, лучше просто строками передавать, надо будет переучиться.
|
|
29.09.2012, 16:57
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от PashPP
|
Dim@,
Почему трудно будет расширять?
С пикселями привычка, мне так быстрее за них зацепиться и поменять.
Но таки да, лучше просто строками передавать, надо будет переучиться.
|
ещё учиться и учиться
например,
var closeButton = document.createElement('DIV');
closeButton.className = 'closeButton';
closeButton.style.width = 26 + 'px';
closeButton.style.height = 15 + 'px';
closeButton.style.cursor = 'pointer';
closeButton.innerHTML = 'X';
closeButton.style.textAlign = 'center';
closeButton.style.lineHeight = '15px';
popup.appendChild(closeButton);
легко переходит в insertAdjacentHTML
остальное смотреть не стал - дохрена кода и лень. он какой-то кусачий, неприятно его читать.
один супер метод с повторяющимися операциями - код должен выглядеть, как текст, написанный на английском.
Последний раз редактировалось melky, 29.09.2012 в 16:59.
|
|
29.09.2012, 17:08
|
|
Профессор
|
|
Регистрация: 21.04.2012
Сообщений: 951
|
|
PashPP,
Сообщение от PashPP
|
Почему трудно будет расширять?
|
Потому что если его увеличивать, то надо дать абсолютное владение надо этим окошком, то есть нужно что бы было менять его дизайн (если у сайта темный дизайн, эти окна будут мягко говоря "не к месту"), его кнопки, drag & drop и прочее, но для этого нужен нормальный API который трудно получить перерабатывая то что ты написал, легче переписать это
|
|
29.09.2012, 17:09
|
Профессор
|
|
Регистрация: 26.07.2012
Сообщений: 281
|
|
Сообщение от melky
|
insertAdjacentHTML
|
Хм, когда листал учебник эту фигню был как-то пропустил. Надо будет запомнить, спасибо.
Сообщение от melky
|
он какой-то кусачий, неприятно его читать.
|
Пичаль же.
|
|
29.09.2012, 17:12
|
Профессор
|
|
Регистрация: 26.07.2012
Сообщений: 281
|
|
Dim@,
Эм. Но ведь там все берется с цсс, если не указанно явно а дж.
Кнопочка одна только полностью в скрипте дизайнится.
На счет остального - наверно, не знаю еще. Енивей, я и не планировал его особо расширять, если будет желание - добавить плавное скрытие/автоскрытие да и все.
|
|
29.09.2012, 17:17
|
|
Профессор
|
|
Регистрация: 21.04.2012
Сообщений: 951
|
|
Сообщение от PashPP
|
я и не планировал его особо расширять, если будет желание - добавить плавное скрытие/автоскрытие да и все.
|
маловато, но надо (впрочем и мне) писать код легко расширяемый, ну или нормально расширяемый
Сообщение от PashPP
|
Эм. Но ведь там все берется с цсс, если не указанно явно а дж.
|
тоже не то, есть разные виды окошек, а у тебя один единственный класс вставлен
|
|
29.09.2012, 17:42
|
Профессор
|
|
Регистрация: 26.07.2012
Сообщений: 281
|
|
Сообщение от Dim@
|
маловато, но надо (впрочем и мне) писать код легко расширяемый, ну или нормально расширяемый
|
Согласен. Но хрен его знает, что это значит.
Вот пример бы, что ли.
Сообщение от Dim@
|
тоже не то, есть разные виды окошек, а у тебя один единственный класс вставлен
|
Разве этого мало? Один класс - один стиль оформления. Разве не логично?
|
|
29.09.2012, 20:09
|
|
Профессор
|
|
Регистрация: 21.04.2012
Сообщений: 951
|
|
PashPP,
Сообщение от PashPP
|
Разве этого мало?
|
мало, есть разница между окном предупреждения и заполнением номера?
Сообщение от PashPP
|
Но хрен его знает, что это значит.
|
это значит код, который легче дописывать, нежели переписывать, пример с которым я столкнулся когда писал "Перехватчик на JavaScript":
я при движении цели писал абсолютное значение, а мест куда можно двигаться 9 значений, то есть постоянно на развилках if else писал абсолютное значение 1, когда пришлось сделать движение на две и болеее клетки я понял что нужно было писать на развилках не 1, а переменную которая содержало в себе 1 или 2 или 3 и т.д. так это облегчило бы мне задание - это пример мягко говоря плохой, но тем не менее пример
|
|
|
|