Почему картинка так дергается?
![]() <script type="text/javascript"> function pr() { var w=document.chel.width; if (w<640) { document.chel.width=w+10; document.chel.src="http://goiron.enetgallery.com/_ph/1/224558321.jpg" setTimeout("pr()", 1); } } function mn() { var w=document.chel.width; if (w>300) { document.chel.width=w-10 document.chel.src="http://goiron.enetgallery.com/_ph/1/224558321.jpg" setTimeout("mn()", 1); </script> <img src="http://goiron.enetgallery.com/_ph/1/224558321.jpg" width="300" name="chel" onMouseOver="pr()" onMouseout="mn()"> |
от есть,если навести курсор и ждать до конца,а потом отвести мышку,то она нормально увеличивается\уменьшается, но если условно она увеличиться не до конца,и в этот момент отвести курсор,то она по идее должна уменьшаться,но в место того,она начинает дургаться?!
|
выполнение по таймеру отменяй. как при уводе так и при наведении -до вызова функции.
у тебя при уведении начинают работать 2 таймера на увеличение и на уменьшение да и аргументы в запуске таймера записывай правильно http://javascript.ru/setTimeout |
а можно без таймера,но что бы увеличивалось плавно?
|
нет ,если хочешь плавного увеличения.перед вызовом функции отмени выполнение по таймеру и всё
|
...Немного не понял...так чтоли?:
<script type="text/javascript"> function pr() { var w=document.chel.width; if (w<400) { document.chel.width=w+10; document.chel.src="http://goiron.enetgallery.com/_ph/1/224558321.jpg" } } function mn() { var w=document.chel.width; if (w>300) { document.chel.width=w-10 document.chel.src="http://goiron.enetgallery.com/_ph/1/224558321.jpg" } } </script> <img src="http://goiron.enetgallery.com/_ph/1/224558321.jpg" width="300" name="chel" onMouseOver="pr()" onMouseout="mn()"> Так же получается не плавно? |
оставь таймеры в покое-я разве сказал убери таймеры? перепиши их согласно статьи ,на какую дал ссылку. и, в обработчиках пред вызовом функций ,увеличения и уменьшения отменяй таймеры.
перед вызовом функции в онмаусоут-отменяй таймер функции увеличения . и в онмаусовер отменяй таймер уменьшения. |
Цитата:
плавно-антоним словам -резко,рывками но не слову быстро:D |
Цитата:
|
9xakep,
принципиально не буду. я тебе дал ссылку на статью, а ты ,либо: 1- принципиально не читал 2-читал ,но не понял и принципиально решил не разбираться в ней |
Я её читал,но не понял где моя ошибка,а ты вместо того чтобы умничать,со своими принципами,мог бы просто помочь,потому что не все такие "крутые"...
|
Отменяй таймер функцией clearTimeout
Проверяй по условию что если уже достаточно увеличил, то отменяй. |
Ну сейчас то почему не работает?!
<script type="text/javascript"> function pr() { //функция... var w=document.chel.width; //переменная w равна ширине if (w<400) { //если ширина меньше 400,то... document.chel.width=w+10; //ширину прибавлявть по 10пикселей setTimeout(go, 10); //и так повторять,и с интевалом по 10миллисекунды }//конец if }//конец функции function d() { //начало функции благодаря которой изображение не будет увеличиваться var timeout_id = setTimeout(go, 10); //переменная как по уроку clearTimeout(timeout_id); //отменить "timeout_id" который есть-"setTimeout(go, 10)" } //конец функции </script> <img src="http://goiron.enetgallery.com/_ph/1/224558321.jpg" width="300" name="chel" onMouseout="d()" onMouseOver="pr()"> Получается:при наведении на рисунок,должна срабатывать функция pr() по которой,картинка должна увеличиваться,после, если отвести курсор,то функция d() должна отменить действие в функции pr()?Где ошибка в моем коде или в рассуждениях??А получается так что:навожу на картинку,она увеличивается на 10пикселей и все |
<html> <head> <script type="text/javascript" language="javascript"> var timer; function pr() { var w=document.chel.width; clearTimeout(timer); if (w<640) { document.chel.width=w+10; timer = setTimeout("pr()", 1); } } function mn() { var w=document.chel.width; clearTimeout(timer); if (w>300) { document.chel.width=w-10 timer = setTimeout("mn()", 1); } } </script> </head> <body> <img src="http://goiron.enetgallery.com/_ph/1/224558321.jpg" width="300" name="chel" onMouseOver="pr()" onMouseout="mn()"> </body> </html> |
Спасибо...
|
Часовой пояс GMT +3, время: 23:24. |