2013-04-16 3 views
0

Привет, я хотел бы создать галерею изображений с чистым javascript и нашел неплохой подход http://www.trans4mind.com/personal_development/JavaScript/imageSlideShow.htm.Strange js поведение галереи изображений

Однако, он не работает должным образом. Несмотря на то, что мне удалось связать мои кнопки «Next/Back», чтобы переключать изображения в массиве, второе изображение будет отображаться только на долю секунды, прежде чем возвращаться к исходному изображению.

Есть ли что-то в js?

currentIndex = 0; 

MyImages = new Array(); 

MyImages[0] ="images/sampleimage.jpg"; 
MyImages[1] ="images/kuh.jpg"; 


function preload() 
{ 
    for (var i=0;i<MyImages.length;i++){ 
     var imagesPreloaded = new Image(); 
     imagesPreloaded.src = MyImages[i]; 
    } 
} 

preload(); 


function Nexter(){ 
if (currentIndex<MyImages.length-1){ 
    currentIndex=currentIndex+1; 
    document.theImage.src=MyImages[currentIndex]; 
} 
else { 
    currentIndex=0; 
    document.theImage.src=MyImages[currentIndex]; 
} 
} 

function Backer(){ 
if (currentIndex>0){ 
    currentIndex=currentIndex-1; 
    document.theImage.src=MyImages[currentIndex]; 
} 
else { 
    currentIndex=1; 
    document.theImage.src=MyImages[currentIndex]; 
} 

} 

$("#nav_left").on("click",function(){ 
    Nexter(); 
}); 

$("#nav_right").on("click",function(){ 
    Backer(); 
}); 



// 
//img Gallery 
// 


$(".gallery_nav img").on("mouseover", function(){ 
    $(this).css("opacity", 0.8);  
}); 

$(".gallery_nav img").on("mouseleave", function(){ 
    $(this).css("opacity", 0.1); 
}); 

Благодарим за любые полезные советы. И КСТАТИ: Firebug говорит мне следующее в консоли:

Image коррумпированной или усеченной:

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

+0

Если вы можете создать пример/демо вашего вопроса о http://jsfiddle.net/, которые могли бы помочь получить ответ на ваш вопрос – Dogoferis

+0

спасибо Dogoferis, хорошая идея Http: // jsfiddle .net/sfiddle/Nf7yR/ первый pic - цветной объект природы (пиксель lorem) второй должен показать спортивную сцену в сером цвете (lorem pixel) – user2132380

+0

Тот же эффект: он отобразит только вторую картинку за миллисекунду. К слову, кнопки со стрелками заменяются текстом alt с низкой непрозрачностью, поэтому вам нужно внимательно следить за поиском обработчиков Next/Back – user2132380

ответ

1

Похоже, что разметка ваших тегов ссылок() поднимет или, возможно, перезагрузит страницу, - которая вернет галерею назад к изображению # 1. Попробуйте добавить # в HREF атрибута вашей ссылки разметки (для обозначения их в качестве якорей) или просто утончаются изменить их теги

Example 
    <a href="#" class="gallery_nav" id="nav_left"><img src="images/pfeil_links.svg" alt="First image"></a> 

здесь измененный JSFiddle, что, кажется, работает хорошо http://jsfiddle.net/Nf7yR/1/

И вот версия, которая использует пробелы; к тому же эффекту: http://jsfiddle.net/Nf7yR/2/

+0

Wow Dogoferis ... это потрясающе. Как кто-нибудь придумает эту идею? Это только опыт или более известная вещь? Спасибо вам :-) – user2132380

+0

Одна небольшая дополнительная вещь: второе изображение задерживается на долю секунды во время загрузки, хотя я думал, что предварительно загрузил изображения. Он отлично работает с URL-адресом из пикселя lorem, что происходит только при загрузке с относительного пути. Любые предложения по этому поводу? – user2132380

+0

Если я правильно понимаю ситуацию; вы говорите, что при загрузке с Lorem Pixel практически нет задержки, но небольшая задержка при загрузке второго изображения из относительного пути ... Я предполагаю, что это означает изображение в среде разработки/сервере. Если это так, то может быть множество вещей вплоть до Lorem Pixel, включая лучшие настройки кэширования, чем ваша собственная среда разработки. – Dogoferis

Смежные вопросы