Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Плавное уменьшение размеров картинки 
:(
    Опции темы
Gold Dragon
Дата 10.8.2004, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Люди, что-то запарился.... sad.gif

Есть картинка, размер X:Y. Нужно чтобы после клика по ней, она плавно уменьшилась в точку. X не равно Y.


ЗЫ
немного опечатался в названии темы tounge.gif

Это сообщение отредактировал(а) Red Dragon - 10.8.2004, 09:42


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Sardar
Дата 10.8.2004, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



За 5 минут:
Код
<script language="Javascript" type="text/javascript">
<!--
function resize(img,w,h,step) {
dresize.target=img;
dresize.width=img.offsetWidth;
dresize.xstep=(w-img.offsetWidth)/step;
dresize.height=img.offsetHeight;
dresize.ystep=(w-img.offsetHeight)/step;
dresize.step=step;
dresize.timer=window.setInterval(dresize,10);
}
function dresize() {
dresize.target.style.width=Math.round(dresize.width+=dresize.xstep);
dresize.target.style.height=Math.round(dresize.height+=dresize.ystep);
if(--dresize.step<=0) window.clearInterval(dresize.timer);
}
//-->
</script>
...
<img src="test.jpg" onClick="resize(this,1,1,100)">




--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Gold Dragon
Дата 10.8.2004, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Sardar
Именно то, что надо.

Если не трудно поясни малость код. Я то с этим ни разу не сталкивался, а начал разбираться - запутался.


ЗЫ
жалко, что нет возможности самому исправлять название темы sad.gif

Это сообщение отредактировал(а) Red Dragon - 10.8.2004, 14:17


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Sardar
Дата 10.8.2004, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Red @ 10.8.2004, 13:16)
и не трудно поясни малость код. Я то с этим ни разу не сталкивался, а начал разбираться - запутался.

Используем style.width, style.height для изменения размеров картинки, window.setInterval для создания анимации и чуток логики.
В resize я сохраняю первоначальный размер картинки(offset(Width|Height)); количество шагов, за которое хотим изменить картинку: step; вычисляю изменение размера за один шаг: xstep, ystep. Далее запускаю анимацию реализованную в функции dresize.
Фунцкия dresize изменяет с каждым шагом размер картинки, как только шаги закончились анимация останавливается.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Gold Dragon
Дата 11.8.2004, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



В принципе это я понял. Едиственное не совсем понимаю как работает вот это
dresize. .....
вызывается функция, но со свойствами. Просто никогда такое не встречал..


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Sardar
Дата 11.8.2004, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Это не свойства функции. Функция это обьект Function и как в любой обьект она может иметь сколько угодно полей, которые ты можешь создать сам. Просто не хотел сорить переменными и сохранил их в функции smile.gif


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Gold Dragon
Дата 11.8.2004, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Аааа, Семён Семёныч....

Это интересно, попробую использовать сам в будущем.


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
sergejzr
Дата 1.11.2004, 02:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Question:
Как плавно уменьшить размеры картинки?
How smoothly to reduce the size of a picture or resize?
Wie kann man ein Bild fliessend verkleinern bis es schliesslich verschwindet.

Answer:
Смотри пример:

Браузеры:
Internet Explorer Yes, Mozilla Yes, Opera Yes

Пример:
Код
<!--
Thanks to:
Sardar http://vingrad.ru/@Sardar
for this excample
-->
<script language="Javascript" type="text/javascript">
<!--
function resize(img,w,h,step) {
dresize.target=img;
dresize.width=img.offsetWidth;
dresize.xstep=(w-img.offsetWidth)/step;
dresize.height=img.offsetHeight;
dresize.ystep=(w-img.offsetHeight)/step;
dresize.step=step;
dresize.timer=window.setInterval(dresize,10);
}
function dresize() {
dresize.target.style.width=Math.round(dresize.width+=dresize.xstep);
dresize.target.style.height=Math.round(dresize.height+=dresize.ystep);
if(--dresize.step<=0) window.clearInterval(dresize.timer);
}
//-->
</script>    
...
<img src="test.jpg" onClick="resize(this,1,1,100)">



Примечания:
Используем style.width, style.height для изменения размеров картинки, window.setInterval для создания анимации .
В resize сохраняется первоначальный размер картинки(offset(Width|Height)); количество шагов, за которое хотим изменить картинку: step;
Фунцкия dresize изменяет с каждым шагом размер картинки, как только шаги закончились анимация останавливается.
Спасибо:
Sardar за предоставленный материал.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Gold Dragon
Дата 1.11.2004, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



Цитата(sergej @ 1.11.2004, 02:10)

Question:
Как плавно уменьшить размеры картинки?
How smoothly to reduce the size of a picture or resize?
Wie kann man ein Bild fliessend verkleinern bis es schliesslich verschwindet.
:D :D :D
Твои ответы стали очень понятными и, что самое главное, итоговыми.


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
sergejzr
Дата 1.11.2004, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Цитата(Red @ 1.11.2004, 19:08)

Твои ответы стали очень понятными

А раньше были непонятными? :)

Вот почему:
http://forum.vingrad.ru/index.php?showtopic=32780#


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1536 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.