Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 12.04.2011, 17:29
Профессор
Отправить личное сообщение для розовый слоник Посмотреть профиль Найти все сообщения от розовый слоник
 
Регистрация: 17.10.2009
Сообщений: 258

x-yuri
Тут на сайте есть пример написания анимации и пусть там не 5-10 строчек, а гдето чуть больше 20 это сути не меняет, хотя думаю, что если сесть и подумать можно и в 10ть строк написать.
Ответить с цитированием
  #12 (permalink)  
Старый 12.04.2011, 17:31
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

<html>
<head>
    <title>test</title>
    <style type="text/css">
        .block {
            width: 800px;
            height: 300px;

            background: red;
        }
    </style>
</head>
<body>
<button onclick="hide()">Скрыть</button>
<div id="t" class="block"></div>

<script type="text/javascript">
    function hide() {
        var el = document.getElementById('t');
        var count = 10, i = count, width = el.offsetWidth, height = el.offsetHeight;
        (function() {
            if (i--) {
                el.style.width = Math.round(width * i / count) + 'px';
                el.style.height = Math.round(height * i / count) + 'px';
                if (typeof el.style.opacity == 'string') {
                    el.style.opacity = i / count;
                } else {
                    el.style.filter = 'Alpha(opacity=' + Math.round(i / count * 100) + ')';
                }
                setTimeout(arguments.callee, 20);
            }
        })();
    }
</script>
</body>
</html>


Это если уж совсем без библиотек.
Ответить с цитированием
  #13 (permalink)  
Старый 12.04.2011, 17:31
Профессор
Отправить личное сообщение для розовый слоник Посмотреть профиль Найти все сообщения от розовый слоник
 
Регистрация: 17.10.2009
Сообщений: 258

да и что бы не создавать новую тему такой вопрос.
я погуглил 5ть мин и не нашел ничего про регулярки в jquery, их там нет и их писать, как на js? или все же, как то по другому?
Ответить с цитированием
  #14 (permalink)  
Старый 12.04.2011, 17:32
Профессор
Отправить личное сообщение для розовый слоник Посмотреть профиль Найти все сообщения от розовый слоник
 
Регистрация: 17.10.2009
Сообщений: 258

Kolyaj
Я пользуюсь таким же примером для анимации
Ответить с цитированием
  #15 (permalink)  
Старый 12.04.2011, 20:39
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от x-yuri
почему?
Потому что у этого объекта есть свои методы, работать с которыми гораздо удобнее.

Сообщение от розовый слоник
я погуглил 5ть мин и не нашел ничего про регулярки в jquery, их там нет и их писать, как на js? или все же, как то по другому?
Зачем они там, когда они в языке есть?
Ответить с цитированием
  #16 (permalink)  
Старый 12.04.2011, 22:02
Аспирант
Отправить личное сообщение для kostr Посмотреть профиль Найти все сообщения от kostr
 
Регистрация: 12.09.2010
Сообщений: 98

розовый слоник,
jquery - это тот же javascript, просто с добавленной библиотекой. Все, что работало на чистом javascript, будет работать и с ней, регулярные выражения в том числе. Зачем им добавочный функционал, они и так неплохо обрабатываются.
Ответить с цитированием
  #17 (permalink)  
Старый 13.04.2011, 05:28
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

вот тот же код на jquery, без использования ее возможностей в плане анимации
<html>
<head>
    <title>test</title>
    <style type="text/css">
        .block {
            width: 800px;
            height: 300px;

            background: red;
        }
    </style>
</head>
<body>
<button onclick="hide()">Скрыть</button>
<div id="t" class="block"></div>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script type="text/javascript">
    function hide() {
        var count = 10, i = count, width = $('#t').width(), height = $('#t').height();
        (function() {
            if (i--) {
                $('#t').css({
                    'width': Math.round(width * i / count) + 'px',
                    'height': Math.round(height * i / count) + 'px',
                    'opacity': i / count
                });
                setTimeout(arguments.callee, 20);
            }
        })();
    }
</script>
</body>
</html>

в данном конкретном случае изменения, может быть, небольшие. Но деталей реализации меньше. Следовательно проще понять, что эта функция делает. Если по какой-либо причине вам нужно в первую очередь видеть не что делает код, а как он это делает, это не значит, что так должно быть всегда и везде. Оба подхода имеют право на жизнь. Да, пряча реализацию, мы можем усложнить себе отладку в дальнейшем. Но это всего лишь возможность, у нее есть свои достоинства и недостатки. Где-то это уместно, где-то - нет, для кого-то подходит, для кого-то - нет. Да и просто, не прятать реализацию - значит не использовать функции. И люди делают это в разной степени, кто-то больше, кто-то - меньше

в общем, я к тому, что там 200КБ несжатого кода и куча недоплагинов, но ими можно пользоваться. И это опять же одна из возможностей, со своими достоинствами и недостатками
Ответить с цитированием
  #18 (permalink)  
Старый 13.04.2011, 07:59
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от x-yuri
вот тот же код на jquery, без использования ее возможностей в плане анимации
Т.е. ради скрытия реализации opacity ты подключил 200 кб несжатого кода. Я бы просто вынес setElementStyle в отдельную функцию.


В jQuery нет инструментов для удобного наследования "классов", поэтому я не понимаю, как на нём можно создавать сложные приложения.
Ответить с цитированием
  #19 (permalink)  
Старый 13.04.2011, 11:24
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от Kolyaj
Т.е. ради скрытия реализации opacity ты подключил 200 кб несжатого кода. Я бы просто вынес setElementStyle в отдельную функцию.
нет, конечно. В том примере я просто продемонстрировал скрытие реализации. В общем-то после того, как я попросил привести аналог, я понял, что это немного не по теме. В первую очередь, я хотел сказать, что в jquery 200КБ функционала и для нее написана куча плагинов, и про нее много написано. В большинстве случаев самописная библиотека будет хуже. Недостатки: в ее коде сложно разбираться, если что-то не работает (но зачастую можно найти альтернативный вариант), может быть заметно медленнее реализации на js. Т.е. jquery - это в первую очередь функционал, которым можно пользоваться

Сообщение от Kolyaj
В jQuery нет инструментов для удобного наследования "классов", поэтому я не понимаю, как на нём можно создавать сложные приложения.
согласен, но ведь реализация наследования - 5-10 строк на чистом js Кроме того, можно подключить реализацию классов из mootools, например. Его можно собирать, выбирая, какие части нужны, прямо на официальном сайте. Даже плагин где-то видел, который подключает классы из mootools к jquery

и еще, на чистом js проще писать неподдерживаемый код, потому что jquery - более высокоуровневая штука
Ответить с цитированием
  #20 (permalink)  
Старый 13.04.2011, 11:42
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от x-yuri
В первую очередь, я хотел сказать, что в jquery 200КБ функционала и для нее написана куча плагинов, и про нее много написано.
Весь этот функционал нужен только потому, что у jQuery идеология коллекции DOM-элементов. Т.е. даже если ты выбираешь один элемент по id-шнику, ты всё равно получишь коллекцию. В результате нативные DOM-методы и свойства (большинство из которых кроссбраузерны) использовать становится неудобно. Поэтому пришлось на каждый чих писать свою имплементацию, отсюда 200кб.
А плагины вообще упоминать глупо, ибо любой скрипт это плагин к нативному JS, так что у нативного JS плагинов заведомо больше, чем у jQuery


Сообщение от x-yuri
но ведь реализация наследования - 5-10 строк на чистом js
Вот так и получается, вроде бы 200кб есть, а базовые вещи всё равно самому приходится писать.


Сообщение от x-yuri
и еще, на чистом js проще писать неподдерживаемый код, потому что jquery - более высокоуровневая штука
Неподдерживаемый код на чём угодно писать легко. На качество jQuery-кода можно посмотреть на этом форуме.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 разных модуля на jQuery - как подключить? finder jQuery 4 23.03.2012 22:29
Есть один вопрос по jQuery. Помогите. Midel jQuery 10 12.04.2011 09:04
jQuery, функция animate(), рекурсия xintrea jQuery 12 03.01.2011 12:33
jQuery object в xpath. Глобальные события solarix jQuery 1 29.10.2010 16:40
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37