Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Изменение размеров картинки (https://javascript.ru/forum/events/8270-izmenenie-razmerov-kartinki.html)

sanhai 17.03.2010 19:12

Изменение размеров картинки
 
Помогите новичку. Я хочу сделать так чтобы при наведении курсора на картинку она увеличивалась в размерах а при отведении уменьшалась обратно.
Вопрос а как надо сделать чтоб нормально работало

Вот скрипт тока он не работает как надо.
// JavaScript Document
function bigPict(obj)
{
	var w=document.kart.width;
	if (w<302){
		document.kart.width=w+10;
		document.kart.src="kartinki/izm_razm.bmp" 
		setTimeout("bigPict()",500)
	}
}
function smalPic1(obj)
{
	var q=document.kart.width;
	if (q>102){
		document.kart.width=q-10;
		document.kart.src="kartinki/izm_razm.bmp" 
		setTimeout("smalPic1()",500)
			}			
}


Вопрос а как надо сделать чтоб нормально работало
Вот текст html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Документ без названия</title>
<script type="text/javascript" src="TEST_script.js"></script>
</head>

<body>

<img src="kartinki/izm_razm.bmp" name="kart" width="102" onMouseOut="smalPic1()"; onMouseOver="bigPict()">


</body>
</html>

alexrussia 18.03.2010 01:56

Цитата:

Сообщение от sanhai (Сообщение 48047)
onMouseOut="smalPic1()"; onMouseOver="bigPict()"

Это вообще убрать.
Тебе нужно передать твои функции событиям mouseover mouseout.
image - элемент то есть картинка на которую будет наводится курсор
значит функцию передать image.onmouseover=имя (либо используй addeventlistener,attachEvent) твоей функции;
imagebig - новая твоя картинка
imagebig.src=твой url
передать параметры картинке когда она загрузится.
imagebig.onload=function(){здесь параметры твоей imagebig};

ie можно без onload, правда если картинка большая будет будет задержка, у меня onload как то некорректно работает с ie.
как то так, у ie есть еще такие свойства как readystatechange, можешь посмотреть

sanhai 18.03.2010 17:26

НЕБРОСАЙТЕ ПОЖАЛУЙСТА
 
ОГРОМНОЕ СПАСИБО ЗА ОТВЕТ
Я извиняюсь, но не могли бы вы все тоже самое изложить чуть по подробней, что прописывать в строке:
<html>
///////////////////////////////

<body>
<img src=”kartinki/izm_razm.bmp name=”kart” width=”102” on MouseOut=smalPicl()” /* ну и так далее*/

и как написать обработчик для Еvent – если я задал правильно вопрос?.

Я догадывался что нужно именно через захват событий но сам не смог разобраться как это написать (пытался по спецификации). Помогите мне пожалуйста, мне в маем колхозе спросить вообще неукого.

alexrussia 18.03.2010 22:42

вам надо книги читать там все написано советую:
на русском : Javascript подробное руководство 5 издание, девид флэнаган
остальные на русском так себе ничего интересного
на английском также только одна :
ProfessionalJavaScript for Web Developers2nd Edition, Nicolas C.Zakas

в html вообще не нужно вставлять javascript другими словами, только работать с .js файлом.
пример добавления обработчика:
при rem равной нулю добавляет обработчик, при единице удяляет
type - событие
funcs - функция которая нужно обработчику дать
doc - ваш объект.

function crosslist(doc,type,funcs,rem){
if (rem==0){
if (doc.addEventListener)
doc.addEventListener(type,funcs,false);
else {
type="on"+type;
doc.attachEvent(type,funcs);}}
else {
if (doc.removeEventListener)
doc.removeEventListener(type,funcs,false);
else {
type="on"+type;
doc.detachEvent(type,funcs);}}}

sanhai 19.03.2010 00:01

Ну последний разочик
 
Большое спасибо за ответ!
Но только я так и не разобрался?
Подскажите последнее:

Я так понял что у меня два обработчика “onMouseOver” и “onMouseOut” так вот не могли бы вы их в скриптте обозначить type1 и type2. И как прописывать мой объект - картинку (kart или document.kart?). Книгу скачал, наверное ещё уроки в гугле поюзаю. Пожалуйста ответе на это сообщение. Я вас больше не побеспокою.

alexrussia 20.03.2010 00:52

Цитата:

Сообщение от sanhai (Сообщение 48201)
Большое спасибо за ответ!
Но только я так и не разобрался?
Подскажите последнее:

Я так понял что у меня два обработчика “onMouseOver” и “onMouseOut” так вот не могли бы вы их в скриптте обозначить type1 и type2. И как прописывать мой объект - картинку (kart или document.kart?). Книгу скачал, наверное ещё уроки в гугле поюзаю. Пожалуйста ответе на это сообщение. Я вас больше не побеспокою.

короче тебе надо читать много книг!

чтобы получить объект например можно через id - так:
image=document.getElementById("id");


я написал функцию, чтобы функция добавила обработчик то надо вызвать функцию так:
crosslist(image,"mouseover",function,0);

sanhai 25.03.2010 18:30

Спасибо большое за ответ. Лучше напишите название книг на русском языке (в английском не силён) какие ещё можно почитать.


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