Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 15.08.2010, 13:38   #1
dimonnnn
Пользователь
 
Регистрация: 07.08.2010
Сообщений: 29
Лампочка событие элемента img

Программирую на javascript всего ничего. надо чтоб при наведении мышкой на фотку она как бы приподнялась над всеми и увеличилась в размере. я попытался это сделать. но код во-первых не работает, а во вторых мне кажется нерационально написан...
ну короче вот код:
Код:
<?php
			$imageSmallPhotoArray = glob('*.jpg');
		$i = 1;//переменная для цикла
		echo "<table>";
		while($i <= 2)
		{	
			$iMinusOne = $i - 1;
			//url на маленькие и большие фотки
			$imageSmallPhotoArray[$iMinusOne] = 'http://localhost/'.$imageSmallPhotoArray[$iMinusOne];
		
			//получаем размер small фотографии
			$imageSize = getimagesize($imageSmallPhotoArray[$iMinusOne]);
			if($imageSize[0] > 100)//если ширина > 100
			$newWidth = $imageSize[0] - 40;
			if (($i % 3) == 1)//когда начало новой строки
				echo "<tr>";
			echo "<td><img src=\"$imageSmallPhotoArray[$iMinusOne]\" width=\"$newWidth\" 
				onmouseover=\"PhotoEnlarge($iMinusOne, $newWidth)\"></td>";
			echo "<script type=\"text/javascript\">
						function handle(N, width)
						{
							N = parseInt(N);
							width = parseInt(width);
							img[N].width = width;
						}
					</script>";
			if (($i % 3) == 0)//когда конец строки
				echo "</tr>";
			$i++;	
		}
		if (($i % 3) != 0)
			echo "</tr>";
		echo "</table>";
?>
dimonnnn вне форума Ответить с цитированием
Старый 15.08.2010, 14:20   #2
dimonnnn
Пользователь
 
Регистрация: 07.08.2010
Сообщений: 29
По умолчанию

а теперь вот так сделал:
PHP код:
<?php
            $imageSmallPhotoArray 
glob('*.jpg');
        
$i 1;//переменная для цикла
        
echo "<table>";
        while(
$i <= 2)
        {    
            
$iMinusOne $i 1;
            
//url на маленькие и большие фотки
            
$imageSmallPhotoArray[$iMinusOne] = 'http://localhost/'.$imageSmallPhotoArray[$iMinusOne];
        
            
//получаем размер small фотографии
            
$imageSize getimagesize($imageSmallPhotoArray[$iMinusOne]);
            if(
$imageSize[0] > 100)//если ширина > 100
            
$newWidth $imageSize[0] - 40;
            if ((
$i 3) == 1)//когда начало новой строки
                
echo "<tr>";
            echo 
"<td><img src=\"$imageSmallPhotoArray[$iMinusOne]\" width=\"$newWidth\" 
                onmouseover=\"PhotoEnlarge(
$iMinusOne$newWidth)\"></td>";
            
            if ((
$i 3) == 0)//когда конец строки
                
echo "</tr>";
            
$i++;    
        }
        if ((
$i 3) != 0)
            echo 
"</tr>";
        echo 
"</table>";
?>
<script type="text/javascript">
                        function handle(N, width)
                        {
                            N = parseInt(N);
                            width = parseInt(width);
                            img[N].width = width;
                        }
</script>
ошибки которые IE выдал
Сообщение: Предполагается наличие объекта
Строка: 2
Символ: 1
Код: 0
URI-код: http://localhost/forPhotos.php

Сообщение: Предполагается наличие объекта
Строка: 3
Символ: 1
Код: 0
URI-код: http://localhost/forPhotos.php
Сообщение: Предполагается наличие объекта
Строка: 3
Символ: 1
Код: 0
URI-код: http://localhost/forPhotos.php
dimonnnn вне форума Ответить с цитированием
Старый 15.08.2010, 15:19   #3
dimonnnn
Пользователь
 
Регистрация: 07.08.2010
Сообщений: 29
По умолчанию

так в чём тут косяк?
dimonnnn вне форума Ответить с цитированием
Старый 15.08.2010, 15:26   #4
dimonnnn
Пользователь
 
Регистрация: 07.08.2010
Сообщений: 29
По умолчанию

немножко не то прислал. там внизу вместо
function handle(N, width)

надо
function PhotoEnlarge(N, width)
dimonnnn вне форума Ответить с цитированием
Старый 15.08.2010, 15:29   #5
dimonnnn
Пользователь
 
Регистрация: 07.08.2010
Сообщений: 29
По умолчанию

ошибки которые IE выдал
Сведения об ошибке на веб-странице

Агент пользователя: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.648; .NET4.0C; .NET4.0E; AskTbCPUID/5.8.0.12304)
штамп времени: Sun, 15 Aug 2010 12:28:25 UTC


Сообщение: 'img' - определение отсутствует
Строка: 8
Символ: 8
Код: 0
URI-код: http://localhost/forPhotos.php


Сообщение: 'img' - определение отсутствует
Строка: 8
Символ: 8
Код: 0
URI-код: http://localhost/forPhotos.php


Сообщение: 'img' - определение отсутствует
Строка: 8
Символ: 8
Код: 0
URI-код: http://localhost/forPhotos.php


Сообщение: 'img' - определение отсутствует
Строка: 8
Символ: 8
Код: 0
URI-код: http://localhost/forPhotos.php
dimonnnn вне форума Ответить с цитированием
Старый 15.08.2010, 17:11   #6
dimonnnn
Пользователь
 
Регистрация: 07.08.2010
Сообщений: 29
По умолчанию

Надо увеличить фотографию при наведении на неё мышью.
для одной фотографии я сделал:
Код:
<?php
	$imageSize = getimagesize('3.jpg');
	if($imageSize[0] > 50)//если ширина > 50
		$newWidth = $imageSize[0] - 40;
	echo "<img name=photo src=3.jpg width=$newWidth onmouseover=\"PhotoEnlarge()\" onmouseout=\"PhotoReduce()\">";
?>
<script>
	function PhotoEnlarge()
	{
		document.photo.width+=40;
	}
	function PhotoReduce()
	{
		if(document.photo.width > 90)
			document.photo.width-=40;		
	}
</script>
но во-первых надо сделать это для массива фотографий, который заполняется циклом:
PHP код:
        while($i <= $allPhotos)
        {    
            
$iMinusOne $i 1;
            
//url на маленькие и большие фотки
            
$imageSmallPhotoArray[$iMinusOne] = 'http://localhost/'.$imageSmallPhotoArray[$iMinusOne];
            
$imageBigPhotoArray[$iMinusOne] = 'http://localhost/'.$imageBigPhotoArray[$iMinusOne];
            
            
//получаем размер small фотографии
            
$imageSize getimagesize($imageSmallPhotoArray[$iMinusOne]);
            if(
$imageSize[0] > 100)//если ширина > 100
            
$newWidth $imageSize[0] - 20;
            if ((
$i 3) == 1)//когда начало новой строки
                
echo "<tr>";
            echo 
"<td><img src=\"$imageSmallPhotoArray[$iMinusOne]\" width=\"$newWidth\" ></td>";
            if ((
$i 3) == 0)//когда конец строки
                
echo "</tr>";
            
$i++;    
        } 
а во-вторых если увеличивать фотографию как это я сделал, то при увеличении остальные фотографии будут сдвигаться. а мне надо чтобы при наведении эта фотография как бы приподнималась над всеми, и увеличивалась. причём так как первоначальная версия фотографии находится в ячейке, то при увеличении фотографии, она должна будет выходить за границы ячейки и иметь центр симметрии в центре ячейки.
dimonnnn вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается ссылка на IMG As_Pushkin HTML и CSS 2 15.06.2010 20:54
Фон перекрывающий img Belchek HTML и CSS 4 26.02.2010 01:25
Си -Расположить элементы в порядке возрастания от первого нулевого элемента до отрицательного элемента Freia Помощь студентам 17 13.12.2009 15:41
Тэг <img> Ruska882009 Помощь студентам 2 30.03.2009 17:07
Глюк с размерами в IMG youko HTML и CSS 2 15.02.2009 11:31


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS