Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Замена тамбнейла на картинку
 
 автор: Affect   (02.10.2006 в 21:18)
 
 

Предположим, что у нас есть просто страница и много тамбнейлов рядом друг с другом. Необходимо, чтобы при наведении курсора на них они менялись на большую картинку. Сделал с помощью функции
 function ChangeImg() {
    if(document.images) {
      eval("document."+ChangeImg.arguments[0]+
      ".src=('"+ChangeImg.arguments[1]+"')");
    }
}

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

   
 
 автор: RMW   (02.10.2006 в 23:07)   письмо автору
 
   для: Affect   (02.10.2006 в 21:18)
 


 function ChangeImg() { 
    if(document.images) { 
    eval("document."+ChangeImg.arguments[0]+ 
    ".src=('"+ChangeImg.arguments[1]+"');document."+ChangeImg.arguments[0]+".style.position='absolute';");
    } 
}

   
 
 автор: Affect   (02.10.2006 в 23:28)
 
   для: RMW   (02.10.2006 в 23:07)
 

спасибо, это решило одну проблему, но появилась другая. при наведении картинка увеличивается, но когда убираешь с нее курсор, то тамбнейлы сдвигаются друг на друга. как это исправить? сам код для картинки такой
<a href="1.htm"
        onmouseover="ChangeImg('image1','2.jpg')"
        onmouseout="ChangeImg('image1','12.jpg')"><img
src="12.jpg" name="image1" alt="image1" /></a>

   
 
 автор: Lelik   (02.10.2006 в 23:30)   письмо автору
 
   для: Affect   (02.10.2006 в 23:28)
 

поставь фиксированые рамеры картинки

<img 
src="12.jpg" name="image1" alt="image1" width="111" height="111"/></a>

   
 
 автор: Affect   (02.10.2006 в 23:39)
 
   для: Lelik   (02.10.2006 в 23:30)
 

чуть поправил код, сделал картинку как hiddenlink

<a href="javascript:;" class="hiddenlink"
        onmouseover="ChangeImg('image1','2.jpg')"
        onmouseout="ChangeImg('image1','12.jpg')"><img
src="12.jpg" name="image1" alt="image1" width="30" height="30" border="0" /></a>

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

   
 
 автор: Lelik   (02.10.2006 в 23:41)   письмо автору
 
   для: Affect   (02.10.2006 в 23:39)
 

не до конца понятно, можешь код для таблнейлов сбросить? или если сайт в инете дай ссылку

   
 
 автор: Affect   (02.10.2006 в 23:55)
 
   для: Lelik   (02.10.2006 в 23:41)
 

вот, скинул сюда
http://affected.times.lv/test/1.html
при наведении на первый тамб сдвигается второй итд

   
 
 автор: Lelik   (03.10.2006 в 00:04)   письмо автору
 
   для: Affect   (02.10.2006 в 23:55)
 

я бы советовал тебе рисунки засунуть в <div></div> и с ним работать.

   
 
 автор: Affect   (03.10.2006 в 00:11)
 
   для: Lelik   (03.10.2006 в 00:04)
 

засунул в дивы - все равно сдвигаются. полагаю что это из-за style.position='absolute'; в функции ChangeImg, но если убрать это, то большая картинка сдвигает все тамбы и мы возвращаемся к тому, от чего начали

   
 
 автор: Lelik   (03.10.2006 в 00:13)   письмо автору
 
   для: Affect   (03.10.2006 в 00:11)
 

а теперь в функции прописать позиционирование элементов при наведении мыши и уведении ;)

   
 
 автор: Lelik   (03.10.2006 в 00:17)   письмо автору
 
   для: Affect   (03.10.2006 в 00:11)
 

или работай со слоями, то есть при наведении на картинку уровень слоя на один увеличивай, а после наведения возвращай уровень слоя на место

   
 
 автор: Affect   (03.10.2006 в 00:26)
 
   для: Lelik   (03.10.2006 в 00:17)
 

добавил 2ю функцию для уведения мыши, где изменил позицию на relative (интуитивно ибо мой опыт работы с джавой ограничивается сегодняшним днем)

function ChangeImg() {  
    if(document.images) {  
    eval("document."+ChangeImg.arguments[0]+  
    ".src=('"+ChangeImg.arguments[1]+"');document."+ChangeImg.arguments[0]+".style.position='absolute';"); 
    }  
}

function ChangeImg2() {  
    if(document.images) {  
    eval("document."+ChangeImg2.arguments[0]+  
    ".src=('"+ChangeImg2.arguments[1]+"');document."+ChangeImg2.arguments[0]+".style.position='relative';"); 
    }  
}


теперь при наведении курсора тамб убирается, открывается большая картинка, но остальные тамбы сдвигаются на 1. при уведении мыши возвращается обратно. но выглядит убого. обновил страницу http://affected.times.lv/test/1.html

   
 
 автор: Lelik   (03.10.2006 в 00:30)   письмо автору
 
   для: Affect   (03.10.2006 в 00:26)
 

так попробуй с абсолютной позицией.

   
 
 автор: Affect   (03.10.2006 в 00:31)
 
   для: Lelik   (03.10.2006 в 00:30)
 

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

   
 
 автор: Lelik   (03.10.2006 в 00:37)   письмо автору
 
   для: Affect   (03.10.2006 в 00:31)
 

сделай так дял дивов

<div id="id" style="position:absolute;left:0; top:0; width:auto; height:auto; z-index=1;"></div>


для каждого дива меняй left & top если надо.
при наведении мыши

document.getElementById("id").style.z-index = 2;
// или document.getElementById("id").style.zIndex = 2;

при уведении

document.getElementById("id").style.z-index = 1;
// или document.getElementById("id").style.zIndex = 1;

   
 
 автор: Lelik   (03.10.2006 в 00:39)   письмо автору
 
   для: Lelik   (03.10.2006 в 00:37)
 

zIndex - правильно

   
 
 автор: Affect   (03.10.2006 в 00:53)
 
   для: Lelik   (03.10.2006 в 00:39)
 

ээ щас попробую. а вот что мне еще посоветовали

--[23:39:42]-- <Vl> ты не меняй позишн на абсолют
--[23:39:48]-- <Vl> ты на каждую фотку сделай ДВЕ
--[23:40:06]-- <Vl> у одной абсолют, у другой ничего
--[23:40:19]-- <Vl> ту что абсолют сначала display:none
--[23:40:31]-- <Vl> а при наведении display:block

если ты мне подскажешь как это выглядит в коде буду благодарен до конца жизни

   
 
 автор: Lelik   (03.10.2006 в 01:11)   письмо автору
 
   для: Affect   (03.10.2006 в 00:53)
 


function ChangeImg() {   
    if(document.images) {   
    eval("document."+ChangeImg.arguments[0]+   
    ".src=('"+ChangeImg.arguments[1]+"');document."+ChangeImg.arguments[0]+".style.position='absolute';");  
   document.getElementById("id").style.display = "block";
    } 



в другой функции меняй на document.getElementById("id").style.display = "none";

   
 
 автор: Affect   (04.10.2006 в 20:18)
 
   для: Lelik   (03.10.2006 в 01:11)
 

пасиба, разобрался

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования