Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему картинка так дергается? (https://javascript.ru/forum/misc/16660-pochemu-kartinka-tak-dergaetsya.html)

9xakep 16.04.2011 19:03

Почему картинка так дергается?
 

<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()">

9xakep 16.04.2011 19:05

от есть,если навести курсор и ждать до конца,а потом отвести мышку,то она нормально увеличивается\уменьшается, но если условно она увеличиться не до конца,и в этот момент отвести курсор,то она по идее должна уменьшаться,но в место того,она начинает дургаться?!

dmitriymar 16.04.2011 19:25

выполнение по таймеру отменяй. как при уводе так и при наведении -до вызова функции.
у тебя при уведении начинают работать 2 таймера на увеличение и на уменьшение
да и аргументы в запуске таймера записывай правильно
http://javascript.ru/setTimeout

9xakep 16.04.2011 19:50

а можно без таймера,но что бы увеличивалось плавно?

dmitriymar 16.04.2011 20:01

нет ,если хочешь плавного увеличения.перед вызовом функции отмени выполнение по таймеру и всё

9xakep 16.04.2011 20:08

...Немного не понял...так чтоли?:
<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()">

Так же получается не плавно?

dmitriymar 16.04.2011 20:17

оставь таймеры в покое-я разве сказал убери таймеры? перепиши их согласно статьи ,на какую дал ссылку. и, в обработчиках пред вызовом функций ,увеличения и уменьшения отменяй таймеры.
перед вызовом функции в онмаусоут-отменяй таймер функции увеличения .
и в онмаусовер отменяй таймер уменьшения.

dmitriymar 16.04.2011 20:19

Цитата:

Сообщение от 9xakep
...Немного не понял...так чтоли?:
показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки
01 <script type="text/javascript">
02 function pr() {
03 var w=document.chel.width;
04 if (w<400) {
05 document.chel.width=w+10;
06 document.chel.src="http://goiron.enetgallery.com/_ph/1/224558321.jpg"
07
08 }
09 }
10 function mn() {
11 var w=document.chel.width;
12 if (w>300) {
13 document.chel.width=w-10
14 document.chel.src="http://goiron.enetgallery.com/_ph/1/224558321.jpg"
15
16 }
17 }
18 </script>
19 <img src="http://goiron.enetgallery.com/_ph/1/224558321.jpg" width="300" name="chel" onMouseOver="pr()" onMouseout="mn()">

Так же получается не плавно?

так получится тоже плавно ,но очень быстро.
плавно-антоним словам -резко,рывками но не слову быстро:D

9xakep 16.04.2011 20:39

Цитата:

Сообщение от dmitriymar (Сообщение 101008)
оставь таймеры в покое-я разве сказал убери таймеры? перепиши их согласно статьи ,на какую дал ссылку. и, в обработчиках пред вызовом функций ,увеличения и уменьшения отменяй таймеры.
перед вызовом функции в онмаусоут-отменяй таймер функции увеличения .
и в онмаусовер отменяй таймер уменьшения.

Можешь написать полный готовый код если не сложно,я уже потом разберусь,пожалуйста.

dmitriymar 16.04.2011 20:44

9xakep,
принципиально не буду. я тебе дал ссылку на статью, а ты ,либо:
1- принципиально не читал
2-читал ,но не понял и принципиально решил не разбираться в ней


Часовой пояс GMT +3, время: 02:39.