Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   setInterval и изображение (https://javascript.ru/forum/misc/39670-setinterval-i-izobrazhenie.html)

Tymur 08.07.2013 00:38

setInterval и изображение
 
<script type="text/javascript">
function func() {
document.images.im.width = count;
document.images.im.height = kount;
if(count < counter_1) b = false;
if(b == false) count++;
if(count > counter_1) b = true;
if(b == true) count--;
if(count == counter_1) ;
}
</script>
<title>Проходим скрипты</title>
</head>
<body>
<img src = "images/imag.jpg" name = "im">
<h1>Привет мир!!!</h1>
<script type = "text/javascript">
var id = setInterval(func, 100);
var b ;
var counter_1 = prompt("Введите макимальную длину изображения:");
var counter_2 = prompt("Введите макимальную высоту изображения:");
var count = 300;
var kount = 300;
</script>
Вот то, что я накалякал.
Хочется, чтобы пользователь ввёл максимальное значение для изображения, и, затем код начал его увеличивать до заданного значения, достигнув цели он начал бы уменьшать, потом увеличивать и так далее пока не clearInterval)) но такой код не хочет этого делать! Кто - нибудь может объяснить - почему? или подсказать - просто сам - ну не могу дойти...и ещё, если вдруг, пользователь введёт значение, меньшее, чем исходное? Буду благодарен подсказке, именно подсказке, просто хочется сильно самому научиться писать скрипты.

рони 08.07.2013 01:35

Tymur,
попробуйте не трогать границы диапазона, иначе как узнать что предел достигнут.

Tymur 08.07.2013 01:54

Вот не могу понять, когда размер изображения доходит до максимального(минимальног ) оно начинает дрожать, т.е. смещается на 2 пикселя туда - обратно, а насчёт диапазона - не догоняю, где именно я его трогаю?

рони 08.07.2013 02:00

так дрожание и есть
условно counter_1 = 301 -- count стало 302 -- пора обратно 301 300 --- ура 300 пора вперёд. 301 ...302
а трогаите здесь count++; и здесь count--; counter_1 это предел а куда до скольки назад неизвестно count затёрто

Tymur 08.07.2013 02:20

А как же указать что именно надо уменьшать или увеличивать, ведь count - ширина, где же достать ещё одну переменную?

рони 08.07.2013 03:09

Tymur,
кто вам мешает ввести ещё 1 переменную в скрипт

danik.js 08.07.2013 07:45

Цитата:

Сообщение от Tymur
где же достать ещё одну переменную

рони, у нас в стране дефицит переменных, ты че, не знал? Ее можно достать только по блату, Tymur. Могу с этим помочь :)

Tymur 08.07.2013 14:58

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

ruslan_mart 08.07.2013 15:27

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Увелечение изображения</title>
</head>

<body>
<input onclick="clearInterval(intImage); intImage = 0" type="button" value="Остановить" />
<img alt="" id="image" src="http://kotomatrix.ru/images/users/Artur3/author.jpg" width="100px" />

<script type="text/javascript">
var intImage;
window.onload = function()
{
	var image = document.getElementById('image'), size = 1, copySize = [image.width, image.height];
	var width = prompt('Введите макимальную ширину изображения:');
	var height = prompt('Введите макимальную высоту изображения:');
	if(width > image.width && height > image.height)
	{
		intImage = setInterval(function()
		{
			image.width += size || -1;
			image.height += size || -1;
			if((size && (image.width == width || image.height == height)) || (!size && (image.width == copySize[0] || image.height == copySize[1]))) size = !size;
		}, 10);
	}
	else alert('Вы ввели слишком маленький размер!');
}
</script>
</body>
</html>


:write:

рони 08.07.2013 15:27

Tymur,
если надоело мучатся
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
  <script type="text/javascript">
 function func() {
 document.images.im.width = r;
 r +=b
 if(r == counter_1||r == count) {b = b == -1? 1 : -1}
 }
 </script>
 <title>Проходим скрипты</title>
</head>
 <body>
 <img src = "http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" name = "im">
 <h1>Привет мир!!!</h1>
 <script type = "text/javascript">
 var b = 1;
 var counter_1 = 350 //  Введите ЛЮБУЮ длину изображения >= 0
 var count = 336;
 var r =  count;
 if(count > counter_1) {b = -1;}
 var id = setInterval(func, 10);
 </script>
</body>
</html>


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