25.02.2013, 16:55
|
Аспирант
|
|
Регистрация: 08.04.2010
Сообщений: 34
|
|
Потестирую с разными картинками текущее решение, если даст где-то сбой, перепишу как ты сказал. Пока же - наконец-то работает! %)
|
|
25.02.2013, 18:07
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Уже конечно намного лучше )
Сообщение от master_alf
|
$(this).each
|
Добавь впереди ключевое слово return, чтобы вернуть объект для продолжениия цепочки. То есть чтобы могло работать так:
$('img').makeGray().css('border': '1px solid');
Сообщение от master_alf
|
function() makeCopy(this);
|
Тут вы конечно втупили оба ))
Можно просто this.onload = makeCopy;
При событии load будет вызывана makeCopy, в которой this укажет на картинку.
Однако что будет если картинка уже загрузилась? Я не уверен что обработчик сработает. Поэтому нужно проверять - загрузилась ли картинка (через img.complete кажется, может для ишака иначе).
Сообщение от master_alf
|
'ms-filter'
|
А это еще зачем? Нет такого свойство. Префиксные начинаются с дефиса.
И еще раз спрашиваю - разве без этого всего в ишаке не работает? Ведь jQuery внутри уже сама использует нужные для ишака свойства при анимировании opacity...
|
|
25.02.2013, 21:52
|
Аспирант
|
|
Регистрация: 08.04.2010
Сообщений: 34
|
|
Сообщение от danik.js
|
Уже конечно намного лучше )
Добавь впереди ключевое слово return, чтобы вернуть объект для продолжениия цепочки. То есть чтобы могло работать так:
$('img').makeGray().css('border': '1px solid');
|
*апстену*
Вернуть целую функцию?.. что за безумный язык! Нет, я понимаю, что ваши советы по существу... но, блин... мои олдскульные устои человека, учившегося кодить на Паскале - ломаются окончательно
Сообщение от danik.js
|
Можно просто this.onload = makeCopy;
При событии load будет вызывана makeCopy, в которой this укажет на картинку.
|
Я правильно понимаю, что при подобной записи получается, что функция makeCopy вызывается как метод для this, т.е. в данном случае для объекта типа Image? Я это просто что б в голове уложить, откуда внутри появится this с указателем на объект...
Сообщение от danik.js
|
Однако что будет если картинка уже загрузилась? Я не уверен что обработчик сработает. Поэтому нужно проверять - загрузилась ли картинка (через img.complete кажется, может для ишака иначе).
|
Добавлю проверку на завершение загрузки, согласен, что очевидная проверка лучше, чем надежда что браузер сработает как надо. Для Ишака .complete прекрасно работает. По крайней мере 7-8. Шестой поставлю - проверю.
Сообщение от danik.js
|
А это еще зачем? Нет такого свойство. Префиксные начинаются с дефиса.
|
Под рукой ссылки нет, завтра из офиса скину - я читал, что фильтры вызываются без дефиса для 6-7 ишака, и с дефисом для 8+. А значит нужно две записи.
Сообщение от danik.js
|
И еще раз спрашиваю - разве без этого всего в ишаке не работает? Ведь jQuery внутри уже сама использует нужные для ишака свойства при анимировании opacity...
|
Анимирования не получается. Только резкий переход. Собственно из-за того, что найденные мною рецепты не делали анимирование в ишаках, я и затеял написать эту фигню сам...
Ну либо я находил кривые решения, и сам не смог добиться иным путём. Тут я не могу ничего сказать - совершенно нуб
P.S. Извиняюсь за, по сути, оффтоп, но, ребят, можете подсказать какую конкретно часть документации/учебника/справочника/самоучителя/пофиг_чего прочитать, что бы врубиться таки во все эти хитросплетения вызовов, колбэков и прочих тонкостей джаваскрипта? Ибо что и как в каких случаях следует вызывать - для меня просто... неочивидно.
Например function some() {some code here} где-то вызывать как some, без () - для меня... непонятно - как так-то, вообще?!.. а хотелось бы ориентироваться, что я делаю...
|
|
25.02.2013, 22:16
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
master_alf,
Думаю нун не спеша для начала выспаться, Утро -вечера мудреннее!
|
|
25.02.2013, 22:23
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Сообщение от master_alf
|
Вернуть целую функцию?
|
Всего лишь ссылку на текущую jQuery коллекцию (по сути - объект, похожий на массив). Язык тут не причем. Это такая плюшка jQuery - цепочки вызовов, chained calls вроде. На сайте jquery.com полюбому есть демонстрация цепочек.
Сообщение от master_alf
|
в голове уложить, откуда внутри появится this с указателем на объект
|
Все просто. Почитай про this в javascript. Вобще - тут все очень просто - мы определили метод someimage.onload. В некоторый момент он будет вызван браузером. Мы можем даже сами вызвать его - someimage.onload() - при таком вызове this будет указывать на someimage, верно?
Сообщение от master_alf
|
без дефиса для 6-7 ишака, и с дефисом для 8+
|
Не без дефиса, а без префикса. Префикс - это -ms-
Какие еще рецепты. Просто убери этот кусок кода, все должно работать без него. В крайнем случае запили тестовый пример прям тут - посмотрим.
По части документации - для начала можешь покурить Учебник
|
|
26.02.2013, 09:50
|
Аспирант
|
|
Регистрация: 08.04.2010
Сообщений: 34
|
|
Сообщение от danik.js
|
Всего лишь ссылку на текущую jQuery коллекцию (по сути - объект, похожий на массив). Язык тут не причем. Это такая плюшка jQuery - цепочки вызовов, chained calls вроде. На сайте jquery.com полюбому есть демонстрация цепочек.
|
Понято, почитаю. Спасибо.
Сообщение от danik.js
|
Мы можем даже сами вызвать его - someimage.onload() - при таком вызове this будет указывать на someimage, верно?
|
Да. Пытался сформулировать в чем у меня был вопрос, но внятно описать не смог. Видимо просто надо перечитать про области видимости. Похожу я в этом где-то запутался.
Сообщение от danik.js
|
Не без дефиса, а без префикса. Префикс - это -ms-
|
Совершенно верно, глянул на ту ссылку - префикс это -ms- ... память подводит . Если интересно, то ссылка вот.
Сообщение от danik.js
|
Какие еще рецепты. Просто убери этот кусок кода, все должно работать без него. В крайнем случае запили тестовый пример прям тут - посмотрим.
|
И снова я был не прав. Убрал функцию step в animate() - плавность всё равно осталась. Всё работает. Я же был уверен в том, что работать не будет т.к. изначально пробовал в animate() поместить
newImg.style.filter ='progid:DXImageTransform.Microsoft.BasicImage(grayScale=1)';
Т.е. просто плавный переход в серый цвет. И не работало именно такое решение, а не с применением прозрачности.
Сообщение от danik.js
|
По части документации - для начала можешь покурить Учебник
|
Начал еще вчера, но там мноооого всего. Думал нужные куски найти побыстрее, но да это уже совершенно другой вопрос.
P.S. на сайте/форуме нет раздела в духе "вот мой плагин, пользуйтесь на здоровье"? Вижу на форуме место для обсуждения плагинов, но это немного не то. И так оффтопиков развёл.
P.P.S. прикручу реализацию кросдоменных картинок, и выложу окончательный вариант. Ну или раньше приду с вопросами
|
|
26.02.2013, 10:44
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от master_alf
|
P.S. на сайте/форуме нет раздела в духе "вот мой плагин, пользуйтесь на здоровье"?
|
http://javascript.ru/forum/project/
|
|
26.02.2013, 10:51
|
Аспирант
|
|
Регистрация: 08.04.2010
Сообщений: 34
|
|
Сообщение от Deff
|
Лучше имхо отдельным расширением, связанным плагином
На хабре видал статейку, как реализуемо для свежих версий браузеров => http://habrahabr.ru/post/120917/
|
Deff, я посмотрел этот пост... скажу честно - очень многое осталось непонятым совершенно. Судя по всему, ты рекомендовал мне использовать CORS? Но это не будет работать в ишаках 7-, а так же требует настройки сервера, дабы он возвращал
Код:
|
Header set Access-Control-Allow-Origin "*" |
Это написано вот здесь.
Вопрос - я прав, и это действительно тот способ который ты посоветовал? Или я проглядел что-то более простое... Ибо если нужно перенастроить заголовки ответа сервера, с которого планируется получать свои картинки... То во многих случаях плагин работать не будет. Т.к. доступа к серверу нет, а вряд ли большинство хостеров/админов такие добрые, что станут настраивать такой заголовок "впрок, дабы людям было удобно".
|
|
26.02.2013, 11:20
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от master_alf
|
Deff, я посмотрел этот пост... скажу честно - очень многое осталось непонятым совершенно. Судя по всему, ты рекомендовал мне использовать CORS? Но это не будет работать в ишаках 7-, а так же требует настройки сервера, дабы он возвращал
|
Да - скорее Всего - тут я не прав. Нун искать статьи: загрузка в канвас картинки с инодомена
Последний раз редактировалось Deff, 26.02.2013 в 11:23.
|
|
26.02.2013, 11:30
|
Аспирант
|
|
Регистрация: 08.04.2010
Сообщений: 34
|
|
Понято. Значит погуглю всевозможные варианты.
|
|
|
|