Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 25.02.2013, 16:55
Аспирант
Отправить личное сообщение для master_alf Посмотреть профиль Найти все сообщения от master_alf
 
Регистрация: 08.04.2010
Сообщений: 34

Потестирую с разными картинками текущее решение, если даст где-то сбой, перепишу как ты сказал. Пока же - наконец-то работает! %)
Ответить с цитированием
  #32 (permalink)  
Старый 25.02.2013, 18:07
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 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...
Ответить с цитированием
  #33 (permalink)  
Старый 25.02.2013, 21:52
Аспирант
Отправить личное сообщение для master_alf Посмотреть профиль Найти все сообщения от master_alf
 
Регистрация: 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, без () - для меня... непонятно - как так-то, вообще?!.. а хотелось бы ориентироваться, что я делаю...
Ответить с цитированием
  #34 (permalink)  
Старый 25.02.2013, 22:16
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

master_alf,
Думаю нун не спеша для начала выспаться, Утро -вечера мудреннее!
Ответить с цитированием
  #35 (permalink)  
Старый 25.02.2013, 22:23
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 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-
Какие еще рецепты. Просто убери этот кусок кода, все должно работать без него. В крайнем случае запили тестовый пример прям тут - посмотрим.
По части документации - для начала можешь покурить Учебник
Ответить с цитированием
  #36 (permalink)  
Старый 26.02.2013, 09:50
Аспирант
Отправить личное сообщение для master_alf Посмотреть профиль Найти все сообщения от master_alf
 
Регистрация: 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. прикручу реализацию кросдоменных картинок, и выложу окончательный вариант. Ну или раньше приду с вопросами
Ответить с цитированием
  #37 (permalink)  
Старый 26.02.2013, 10:44
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от master_alf
P.S. на сайте/форуме нет раздела в духе "вот мой плагин, пользуйтесь на здоровье"?
http://javascript.ru/forum/project/
Ответить с цитированием
  #38 (permalink)  
Старый 26.02.2013, 10:51
Аспирант
Отправить личное сообщение для master_alf Посмотреть профиль Найти все сообщения от master_alf
 
Регистрация: 08.04.2010
Сообщений: 34

Сообщение от Deff Посмотреть сообщение
Лучше имхо отдельным расширением, связанным плагином
На хабре видал статейку, как реализуемо для свежих версий браузеров => http://habrahabr.ru/post/120917/
Deff, я посмотрел этот пост... скажу честно - очень многое осталось непонятым совершенно. Судя по всему, ты рекомендовал мне использовать CORS? Но это не будет работать в ишаках 7-, а так же требует настройки сервера, дабы он возвращал
Код:
Header set Access-Control-Allow-Origin "*"
Это написано вот здесь.
Вопрос - я прав, и это действительно тот способ который ты посоветовал? Или я проглядел что-то более простое... Ибо если нужно перенастроить заголовки ответа сервера, с которого планируется получать свои картинки... То во многих случаях плагин работать не будет. Т.к. доступа к серверу нет, а вряд ли большинство хостеров/админов такие добрые, что станут настраивать такой заголовок "впрок, дабы людям было удобно".
Ответить с цитированием
  #39 (permalink)  
Старый 26.02.2013, 11:20
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от master_alf
Deff, я посмотрел этот пост... скажу честно - очень многое осталось непонятым совершенно. Судя по всему, ты рекомендовал мне использовать CORS? Но это не будет работать в ишаках 7-, а так же требует настройки сервера, дабы он возвращал
Да - скорее Всего - тут я не прав. Нун искать статьи: загрузка в канвас картинки с инодомена

Последний раз редактировалось Deff, 26.02.2013 в 11:23.
Ответить с цитированием
  #40 (permalink)  
Старый 26.02.2013, 11:30
Аспирант
Отправить личное сообщение для master_alf Посмотреть профиль Найти все сообщения от master_alf
 
Регистрация: 08.04.2010
Сообщений: 34

Понято. Значит погуглю всевозможные варианты.
Ответить с цитированием
Ответ



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

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