|
Унылого треша тред
Завтра я вам покажу свой юракс 0.2 ) это будет эпик) IE8 +
готовьтесь и выкидывайте свои бакдоны |
Очередная тема созданная под феназепамом?
|
monolithed,
в смысле? |
Цитата:
|
megaupload, ты не правильно делаешь, тему нужно создавать, когда уже есть что показать и в соответствующем разделе, а смысл этой темы мне не ясен.
|
для поднятия ажиотажа же. теперь все хотят увидеть
|
щас немного пофиксю кое что и через часика 4 выложу, сможете поиграться)
А так же надо придумать новое название) потому что юракс - говно. |
Цитата:
|
Не не не, это как гугл юраксом назвать, эта либа ВЕЛИЧЕСТВЕННА и могуча лучше бакдона. Скоро на ней все писать будут, по этому надо с названием не облажаться.
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
-нет? ну и наф. это нужно? скриптов, библиотек делающих что то в мире много, и не одного чтоб готовил , убирал, стирал, по магазинам ходил ...-как напишешь такой -свисти:D |
Цитата:
alert( 'юракс'.match( /./g ).reverse().join( '' ) + 'оп' ); :D Цитата:
|
Цитата:
new МаксимусТоталДоминатус(); |
Доминатус.js норм?
|
new megaupload;:D |
почти готово пасоны)) готовьтесь, грядет
|
Встречайте Доминатус 0.2
Представляю вам чудоскрипт http://yourjavascript.com/31353253412/widget.js
Это класс Widget, он позволяет пилить няшные виджеты, и позволяет отделять логику, структуру и дизайн друг от друга) грубо говоря то к чему ты применяешь Widget начинает понимать {{теги}} и внутри этих тегов слово this ссылается на тот обьект который возвращает Widget все просто как часы И как вы заметили он делает САМОЕ ГЛАВНОЕ - возвращает все на свои места, логику в javascript структуру в HTML в дизайн в CSS. И делает их независимыми друг от друга и взаимозаменяемыми. Рассмотрим это на примере калькулятора: <!-- подключаем скрипты --> <script src="http://yourjavascript.com/1544031232/fix.js"></script> <script src="http://yourjavascript.com/31353253412/widget.js"></script> <!-- описываем структуру калькулятора --> <div class="calculator"> <div class="calculator_display">{{this.display}}</div> <table class="calculator_buttons"> <tr> <td class="calculator_buttons_i" onclick="this.pushNumber(7)">7</td> <td class="calculator_buttons_i" onclick="this.pushNumber(8)">8</td> <td class="calculator_buttons_i" onclick="this.pushNumber(9)">9</td> <td class="calculator_buttons_i" onclick="this.pushPlus()">+</td> </tr> <tr> <td class="calculator_buttons_i" onclick="this.pushNumber(4)">4</td> <td class="calculator_buttons_i" onclick="this.pushNumber(5)">5</td> <td class="calculator_buttons_i" onclick="this.pushNumber(6)">6</td> <td class="calculator_buttons_i" onclick="this.pushMinus()">-</td> </tr> <tr> <td class="calculator_buttons_i" onclick="this.pushNumber(1)">1</td> <td class="calculator_buttons_i" onclick="this.pushNumber(2)">2</td> <td class="calculator_buttons_i" onclick="this.pushNumber(3)">3</td> <td class="calculator_buttons_i" onclick="this.pushMultiply()">*</td> </tr> <tr> <td class="calculator_buttons_i" onclick="this.pushEqually()" colspan="3">=</td> <td class="calculator_buttons_i" onclick="this.pushDivide()">/</td> </tr> </table> </div> <!-- описываем дизайн калькулятора --> <style type="text/css"> .calculator { -webkit-user-select : none; width : 150px; } .calculator_display { box-sizing : border-box; height : 30px; padding : 5px; font-size : 20px; background-color : #009ee1; } .calculator_buttons { width : 100%; height : 170px; } .calculator_buttons_i { text-align : center; border : 1px solid #000000; box-shadow : inset 0 0 5px #000000; background-color : #a1c736; cursor : pointer; -webkit-transition : all 0.2s; } .calculator_buttons_i:hover { background-color : #bbe63f; } .calculator_buttons_i:active { box-shadow : inset 0 0 10px #000000; background-color : #9cbe33; } </style> <!-- описываем логику калькулятора --> <script> var Calculator = Widget.extend(function() { this.display = ''; // Калькулятор имеет дисплей }); // калькулятор умеет нажиматься на цифры Calculator.prototype.pushNumber = function(number) { this.display += number }; // калькулятор умеет нажиматься на "плюс" Calculator.prototype.pushPlus = function() { }; // калькулятор умеет нажиматься на "минус" Calculator.prototype.pushMinus = function() { }; // калькулятор умеет нажиматься на "умножить" Calculator.prototype.pushMultiply = function() { }; // калькулятор умеет нажиматься на "делить" Calculator.prototype.pushDivide = function() { }; // калькулятор умеет нажиматься на "равно" Calculator.prototype.pushEqually = function() { }; </script> <!-- привяжем логику калькулятора к структуре --> <script> var calculator = new Calculator('.calculator'); </script> |
я не понял что это
|
megaupload,
Что такое Цитата:
Цитата:
|
и почему хуй в говне?
|
Цитата:
Модель HTML, Логика Javascript, Отображение CSS - и все это Доминатус |
Цитата:
|
Это Культурный феномен 21 века, позволивший слить яваскрипт код и сознание пользователя и обьединить все человечество в разум бога. Ты пропутил штоле?
|
Цитата:
|
Цитата:
зато вот что есть Цитата:
|
Извини, но это халтура и не уважение к своему труду и ко всем нам. Начнём с того ты постиш в оффтопик, означает, что к данному творению нужно относится как к несерьёзно барахлу. Потом, нет ни документации, ни описания, даже ссылки на исходный код нет. Если ты хочешь серьёзно продвигать этот проект, то сейчас ты сделал только 5% работы. Посмотри на странички всех популярных либ и фреймворков: там везде есть как минимум дока, а также различные гайды, квикстарты, бенчмарки и т.д. У тебя ничего вообще нет, кроме троллинга своей же работы.
Я думал ты стал исправляться, я даже увидел проблеск серьёзности в твоих действиях, но Цитата:
|
kobezzza, и?
Ну вот если честно я думал вы достаточно глазастые и поймете что эта штука делает и как она работает и без док чисто по коду :-? А так вообще очевидно что я и доку напишу и примеры сделаю и.т.п. Все же только начинается. То есть это пример ЧИСТО для того чтобы вы поняли как быстро реализуются простые логики и что все отделено от друг друга, комментарии указывают именно на это, на то что логика структура и "темка" отделены. и независимы. |
Цитата:
Цитата:
|
Цитата:
Данный код сам по себе не имеет ни какой ценности. Раз показал как легко создавать чаты, покажи как легко расширять логику чата. Если у юракса(До-са) есть достоинства, то ты их не показал. Я и без библиотек и классов уложу логику чата в несколько строчек. |
Цитата:
|
Цитата:
Дерево можно хранить в DOM и оно может вообще ничего не знать про стороение. А само строение будет только в базе храниться. |
'alignContent': new ProxyCap(), 'alignItems': new ProxyCap(), 'alignSelf': new ProxyCap(), 'animation': new ProxyCap(), 'animationDelay': new ProxyCap(), 'animationDirection': new ProxyCap(), 'animationDuration': new ProxyCap(), 'animationFillMode': new ProxyCap(), 'animationIterationCount': new ProxyCap(), 'animationName': new ProxyCap(), 'animationPlayState': new ProxyCap(), 'animationTimingFunction': new ProxyCap(), 'appRegion': new ProxyCap(), 'appearance': new ProxyCap(), 'aspectRatio': new ProxyCap(), 'backfaceVisibility': new ProxyCap(), 'backgroundClip': new ProxyCap(), 'backgroundComposite': new ProxyCap(), 'backgroundOrigin': new ProxyCap(), 'backgroundSize': new ProxyCap(), 'borderAfter': new ProxyCap(), 'borderAfterColor': new ProxyCap(), 'borderAfterStyle': new ProxyCap(), 'borderAfterWidth': new ProxyCap(), 'borderBefore': new ProxyCap(), 'borderBeforeColor': new ProxyCap(), 'borderBeforeStyle': new ProxyCap(), 'borderBeforeWidth': new ProxyCap(), 'borderEnd': new ProxyCap(), 'borderEndColor': new ProxyCap(), 'borderEndStyle': new ProxyCap(), 'borderEndWidth': new ProxyCap(), 'borderFit': new ProxyCap(), 'borderHorizontalSpacing': new ProxyCap(), 'borderImage': new ProxyCap(), 'borderRadius': new ProxyCap(), 'borderStart': new ProxyCap(), 'borderStartColor': new ProxyCap(), 'borderStartStyle': new ProxyCap(), 'borderStartWidth': new ProxyCap(), 'borderVerticalSpacing': new ProxyCap(), 'boxAlign': new ProxyCap(), 'boxDecorationBreak': new ProxyCap(), 'boxDirection': new ProxyCap(), 'boxFlex': new ProxyCap(), 'boxFlexGroup': new ProxyCap(), 'boxLines': new ProxyCap(), 'boxOrdinalGroup': new ProxyCap(), 'boxOrient': new ProxyCap(), 'boxPack': new ProxyCap(), 'boxShadow': new ProxyCap(), 'clipPath': new ProxyCap(), 'colorCorrection': new ProxyCap(), 'columnAxis': new ProxyCap(), 'columnBreakAfter': new ProxyCap(), 'columnBreakBefore': new ProxyCap(), 'columnBreakInside': new ProxyCap(), 'columnCount': new ProxyCap(), 'columnGap': new ProxyCap(), 'columnProgression': new ProxyCap(), 'columnRule': new ProxyCap(), 'columnRuleColor': new ProxyCap(), 'columnRuleStyle': new ProxyCap(), 'columnRuleWidth': new ProxyCap(), 'columnSpan': new ProxyCap(), 'columnWidth': new ProxyCap(), 'columns': new ProxyCap(), 'filter': new ProxyCap(), 'flex': new ProxyCap(), 'flexBasis': new ProxyCap(), 'flexDirection': new ProxyCap(), 'flexFlow': new ProxyCap(), 'flexGrow': new ProxyCap(), 'flexShrink': new ProxyCap(), 'flexWrap': new ProxyCap(), 'flowFrom': new ProxyCap(), 'flowInto': new ProxyCap(), 'fontFeatureSettings': new ProxyCap(), 'fontKerning': new ProxyCap(), 'fontSizeDelta': new ProxyCap(), 'fontSmoothing': new ProxyCap(), 'fontVariantLigatures': new ProxyCap(), 'gridAfter': new ProxyCap(), 'gridAutoColumns': new ProxyCap(), 'gridAutoFlow': new ProxyCap(), 'gridAutoRows': new ProxyCap(), 'gridBefore': new ProxyCap(), 'gridColumn': new ProxyCap(), 'gridColumns': new ProxyCap(), 'gridEnd': new ProxyCap(), 'gridRow': new ProxyCap(), 'gridRows': new ProxyCap(), 'gridStart': new ProxyCap(), 'highlight': new ProxyCap(), 'hyphenateCharacter': new ProxyCap(), 'hyphenateLimitAfter': new ProxyCap(), 'hyphenateLimitBefore': new ProxyCap(), 'hyphenateLimitLines': new ProxyCap(), 'hyphens': new ProxyCap(), 'justifyContent': new ProxyCap(), 'lineAlign': new ProxyCap(), 'lineBoxContain': new ProxyCap(), 'lineBreak': new ProxyCap(), 'lineClamp': new ProxyCap(), 'lineGrid': new ProxyCap(), 'lineSnap': new ProxyCap(), 'locale': new ProxyCap(), 'logicalHeight': new ProxyCap(), 'logicalWidth': new ProxyCap(), 'marginAfter': new ProxyCap(), 'marginAfterCollapse': new ProxyCap(), 'marginBefore': new ProxyCap(), 'marginBeforeCollapse': new ProxyCap(), 'marginBottomCollapse': new ProxyCap(), 'marginCollapse': new ProxyCap(), 'marginEnd': new ProxyCap(), 'marginStart': new ProxyCap(), 'marginTopCollapse': new ProxyCap(), 'marquee': new ProxyCap(), 'marqueeDirection': new ProxyCap(), 'marqueeIncrement': new ProxyCap(), 'marqueeRepetition': new ProxyCap(), 'marqueeSpeed': new ProxyCap(), 'marqueeStyle': new ProxyCap(), 'mask': new ProxyCap(), 'maskBoxImage': new ProxyCap(), 'maskBoxImageOutset': new ProxyCap(), 'maskBoxImageRepeat': new ProxyCap(), 'maskBoxImageSlice': new ProxyCap(), 'maskBoxImageSource': new ProxyCap(), 'maskBoxImageWidth': new ProxyCap(), 'maskClip': new ProxyCap(), 'maskComposite': new ProxyCap(), 'maskImage': new ProxyCap(), 'maskOrigin': new ProxyCap(), 'maskPosition': new ProxyCap(), 'maskPositionX': new ProxyCap(), 'maskPositionY': new ProxyCap(), 'maskRepeat': new ProxyCap(), 'maskRepeatX': new ProxyCap(), 'maskRepeatY': new ProxyCap(), 'maskSize': new ProxyCap(), 'maxLogicalHeight': new ProxyCap(), 'maxLogicalWidth': new ProxyCap(), 'minLogicalHeight': new ProxyCap(), 'minLogicalWidth': new ProxyCap(), 'nbspMode': new ProxyCap(), 'order': new ProxyCap(), 'paddingAfter': new ProxyCap(), 'paddingBefore': new ProxyCap(), 'paddingEnd': new ProxyCap(), 'paddingStart': new ProxyCap(), 'perspective': new ProxyCap(), 'perspectiveOrigin': new ProxyCap(), 'perspectiveOriginX': new ProxyCap(), 'perspectiveOriginY': new ProxyCap(), 'printColorAdjust': new ProxyCap(), 'regionBreakAfter': new ProxyCap(), 'regionBreakBefore': new ProxyCap(), 'regionBreakInside': new ProxyCap(), 'regionOverflow': new ProxyCap(), 'rtlOrdering': new ProxyCap(), 'rubyPosition': new ProxyCap(), 'shapeInside': new ProxyCap(), 'shapeMargin': new ProxyCap(), 'shapeOutside': new ProxyCap(), 'shapePadding': new ProxyCap(), 'svgShadow': new ProxyCap(), 'tapHighlightColor': new ProxyCap(), 'textCombine': new ProxyCap(), 'textDecorationsInEffect': new ProxyCap(), 'textEmphasis': new ProxyCap(), 'textEmphasisColor': new ProxyCap(), 'textEmphasisPosition': new ProxyCap(), 'textEmphasisStyle': new ProxyCap(), 'textFillColor': new ProxyCap(), 'textOrientation': new ProxyCap(), 'textSecurity': new ProxyCap(), 'textStroke': new ProxyCap(), 'textStrokeColor': new ProxyCap(), 'textStrokeWidth': new ProxyCap(), 'transform': new ProxyCap(), 'transformOrigin': new ProxyCap(), 'transformOriginX': new ProxyCap(), 'transformOriginY': new ProxyCap(), 'transformOriginZ': new ProxyCap(), 'transformStyle': new ProxyCap(), 'transition': new ProxyCap(), 'transitionDelay': new ProxyCap(), 'transitionDuration': new ProxyCap(), 'transitionProperty': new ProxyCap(), 'transitionTimingFunction': new ProxyCap(), 'userDrag': new ProxyCap(), 'userModify': new ProxyCap(), 'userSelect': new ProxyCap(), 'wrap': new ProxyCap(), 'wrapFlow': new ProxyCap(), 'wrapThrough': new ProxyCap(), 'writingMode': new ProxyCap() }; ProxyCapDominatus :D |
Цитата:
Цитата:
"прокси" (проксирующая на другое свойство при обращении) или "проперти" (тупо копирующая свойство с ближайщим аналогом) а вообще код пишется для людей и ебал я в рот лишний килобайт) |
Цитата:
|
А ВОТ СОБСТВЕННО СУТЬ:
<script src="http://yourjavascript.com/1544031232/fix.js"></script> <script src="http://yourjavascript.com/31353253412/widget.js"></script> <style> #box { height : 20px; text-align : center; background-color : coral; } </style> <div id="box" onmousemove="this.mouseX = event.offsetX"> {{this.mouseX}} </div> <script> var box = new Widget('#box'); </script> |
Отлично, давайдосвидания, а я пока покажу ПРИМЕР С КАЛЬКУЛЯТОРОМ:
Создадим структуру калькулятора и его дизайн. <div class="calculator"> <div class="calculator_display">12345</div> <table class="calculator_buttons"> <tr> <td class="calculator_buttons_i">7</td> <td class="calculator_buttons_i">8</td> <td class="calculator_buttons_i">9</td> <td class="calculator_buttons_i">+</td> </tr> <tr> <td class="calculator_buttons_i">4</td> <td class="calculator_buttons_i">5</td> <td class="calculator_buttons_i">6</td> <td class="calculator_buttons_i">-</td> </tr> <tr> <td class="calculator_buttons_i">1</td> <td class="calculator_buttons_i">2</td> <td class="calculator_buttons_i">3</td> <td class="calculator_buttons_i">*</td> </tr> <tr> <td class="calculator_buttons_i" colspan="3">=</td> <td class="calculator_buttons_i">/</td> </tr> </table> </div> <style type="text/css"> .calculator { -webkit-user-select : none; width : 150px; } .calculator_display { box-sizing : border-box; height : 30px; padding : 5px; font-size : 20px; background-color : #009ee1; } .calculator_buttons { width : 100%; height : 170px; } .calculator_buttons_i { text-align : center; border : 1px solid #000000; box-shadow : inset 0 0 5px #000000; background-color : #a1c736; cursor : pointer; -webkit-transition : all 0.2s; } .calculator_buttons_i:hover { background-color : #bbe63f; } .calculator_buttons_i:active { box-shadow : inset 0 0 10px #000000; background-color : #9cbe33; } </style> |
Теперь опишем логику калькулятора
// Опишем логику калькулятора var Calculator = Widget.extend(function() { this.display = ''; // Калькулятор имеет дисплей }); // калькулятор умеет нажиматься на цифры Calculator.prototype.pushNumber = function(number) { }; // калькулятор умеет нажиматься на "плюс" Calculator.prototype.pushPlus = function() { }; // калькулятор умеет нажиматься на "минус" Calculator.prototype.pushMinus = function() { }; // калькулятор умеет нажиматься на "умножить" Calculator.prototype.pushMultiply = function() { }; // калькулятор умеет нажиматься на "делить" Calculator.prototype.pushDivide = function() { }; // калькулятор умеет нажиматься на "равно" Calculator.prototype.pushEqually = function() { }; |
Возникает вопрос, где описывать те самые рычажки за которые будет оболочка дергать логику а логика оболочку? Конечно же в структуре, ОПИШЕМ ЭТИ СВЯЗИ:
<div class="calculator"> <div class="calculator_display">{{this.display}}</div> <!-- В дисплее отображается дисплей --> <table class="calculator_buttons"> <tr> <td class="calculator_buttons_i" onclick="this.pushNumber(7)">7</td> <td class="calculator_buttons_i" onclick="this.pushNumber(8)">8</td> <td class="calculator_buttons_i" onclick="this.pushNumber(9)">9</td> <td class="calculator_buttons_i" onclick="this.pushPlus()">+</td> </tr> <tr> <td class="calculator_buttons_i" onclick="this.pushNumber(4)">4</td> <td class="calculator_buttons_i" onclick="this.pushNumber(5)">5</td> <td class="calculator_buttons_i" onclick="this.pushNumber(6)">6</td> <td class="calculator_buttons_i" onclick="this.pushMinus()">-</td> </tr> <tr> <td class="calculator_buttons_i" onclick="this.pushNumber(1)">1</td> <td class="calculator_buttons_i" onclick="this.pushNumber(2)">2</td> <td class="calculator_buttons_i" onclick="this.pushNumber(3)">3</td> <td class="calculator_buttons_i" onclick="this.pushMultiply()">*</td> </tr> <tr> <td class="calculator_buttons_i" onclick="this.pushEqually()" colspan="3">=</td> <td class="calculator_buttons_i" onclick="this.pushDivide()">/</td> </tr> </table> </div> |
ТЕПЕРЬ ВСЕ ВМЕСТЕ:
<!-- подключаем скрипты --> <script src="http://yourjavascript.com/1544031232/fix.js"></script> <script src="http://yourjavascript.com/31353253412/widget.js"></script> <!-- описываем структуру калькулятора --> <div class="calculator"> <div class="calculator_display">{{this.display}}</div> <table class="calculator_buttons"> <tr> <td class="calculator_buttons_i" onclick="this.pushNumber(7)">7</td> <td class="calculator_buttons_i" onclick="this.pushNumber(8)">8</td> <td class="calculator_buttons_i" onclick="this.pushNumber(9)">9</td> <td class="calculator_buttons_i" onclick="this.pushPlus()">+</td> </tr> <tr> <td class="calculator_buttons_i" onclick="this.pushNumber(4)">4</td> <td class="calculator_buttons_i" onclick="this.pushNumber(5)">5</td> <td class="calculator_buttons_i" onclick="this.pushNumber(6)">6</td> <td class="calculator_buttons_i" onclick="this.pushMinus()">-</td> </tr> <tr> <td class="calculator_buttons_i" onclick="this.pushNumber(1)">1</td> <td class="calculator_buttons_i" onclick="this.pushNumber(2)">2</td> <td class="calculator_buttons_i" onclick="this.pushNumber(3)">3</td> <td class="calculator_buttons_i" onclick="this.pushMultiply()">*</td> </tr> <tr> <td class="calculator_buttons_i" onclick="this.pushEqually()" colspan="3">=</td> <td class="calculator_buttons_i" onclick="this.pushDivide()">/</td> </tr> </table> </div> <!-- описываем дизайн калькулятора --> <style type="text/css"> .calculator { -webkit-user-select : none; width : 150px; } .calculator_display { box-sizing : border-box; height : 30px; padding : 5px; font-size : 20px; background-color : #009ee1; } .calculator_buttons { width : 100%; height : 170px; } .calculator_buttons_i { text-align : center; border : 1px solid #000000; box-shadow : inset 0 0 5px #000000; background-color : #a1c736; cursor : pointer; -webkit-transition : all 0.2s; } .calculator_buttons_i:hover { background-color : #bbe63f; } .calculator_buttons_i:active { box-shadow : inset 0 0 10px #000000; background-color : #9cbe33; } </style> <!-- описываем логику калькулятора --> <script> var Calculator = Widget.extend(function() { this.display = ''; // Калькулятор имеет дисплей }); // калькулятор умеет нажиматься на цифры Calculator.prototype.pushNumber = function(number) { this.display += number }; // калькулятор умеет нажиматься на "плюс" Calculator.prototype.pushPlus = function() { }; // калькулятор умеет нажиматься на "минус" Calculator.prototype.pushMinus = function() { }; // калькулятор умеет нажиматься на "умножить" Calculator.prototype.pushMultiply = function() { }; // калькулятор умеет нажиматься на "делить" Calculator.prototype.pushDivide = function() { }; // калькулятор умеет нажиматься на "равно" Calculator.prototype.pushEqually = function() { }; </script> <!-- привяжем логику калькулятора к структуре --> <script> var calculator = new Calculator('.calculator'); </script> |
Часовой пояс GMT +3, время: 15:09. |
|