2013-02-26 2 views
0

У меня есть слайдер изображения, который меняет изображения при нажатии следующей кнопки и предыдущей кнопки. Поэтому, если пользователь нажимает следующий, появляется следующее изображение в последовательности, и если пользователь нажимает предыдущее, появляется всплывающее. Следующая функция работает нормально, но я не могу заставить предыдущую функцию работать.Как перемещаться по изображениям в Javascript

<script type="text/javascript"> 


var image1 = new Image(); 
var image2 = new Image(); 
var image3 = new Image(); 
var image4 = new Image(); 
var image5 = new Image(); 
var image6 = new Image(); 
var image7 = new Image(); 
var image8 = new Image(); 
var image9 = new Image(); 
var image10 = new Image(); 
var image11 = new Image(); 

image1.src="jokes.png"; 
image2.src="facts.png"; 
image3.src="riddles.png"; 
image4.src="html.png"; 
image5.src="xml.png"; 


</script> 

<img alt="previous" id="prev" src="prev_ctrl.png" width=60 height=60 onClick="slideprev()">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="jokes.png" name="slide" width="200" height="200">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img id="next" src="next_ctrl.png" alt="next" width=60 height=60 onClick="slidenext()"> 
<script type="text/javascript"> 
var step = 1; 

function slidenext() { 
    document.images.slide.src = eval("image" + step + ".src"); 
    if (step < 5){ 
    step++; 
    }else{ 
    step = 1; 
    } 
} 

function slideprev() { 
    document.images.slide.src = eval("image" + step + ".src"); 
    if (step >= 5){ 
    step--; 
    }else{ 
    step = 5; 
    } 
} 


</script> 
+3

Это не работа для 'eval'. Сделать массив изображений/ – Blender

+0

У меня есть переменные изображения ... –

+0

Вы пробовали без eval – sasi

ответ

0
function slideprev() { 
    document.images.slide.src = "image"+step+".png"; 
     if (step <= 5 && step > 1){ 
     step--; 
     }else{ 
      step = 5; 
     } 
    } 

Просто замените функцию slideprev с вышесказанным, то, что будет хорошо работать ,

+0

@ user2029262 Картинка не отображается. –

+0

Функция slideprev() { document.images.slide.src = eval ("image" + step + ". src"); if (step <= 5 && step> 1) { step- - } else { step = 5; } } Спасибо, что этот код работал! –

1

Ваш код не работает, потому что slidePrev никогда не опускается ниже 5. Я изменил свой код.

var step = 0; 
var images = [ "jokes.png", "facts.png", "riddles.png", "html.png", "xml.png"]; 
var stepLimit = images.length - 1; 

function slideNext() { 
    step = Math.min(step + 1, stepLimit); 
    document.images.slide.src = images[step] 
} 

function slidePrev() { 
    step = Math.max(step - 1, 0); 
    document.images.slide.src = images[step] 
} 
+0

Это не работает для меня –

+0

Была небольшая ошибка раньше. Но какая ошибка вы видите? – Aishwar

+0

изображение не отображается @ Aishwar –

0
var imgsrc="image" + step + ".src"; 
document.images.slide.src=imgscr; 
+0

@ sasi, который не работал. –

0
document.images.slide.src = window["image" + step].src; 

Это исправление кода, но я хотел бы предложить @Aishwar «s решение

+0

Нет, не работает. :( –

+0

не получают таких элементов, это лучше: document.getElementById ('prev'). Src = ... или document.getElementsByName ('slide') [0] .src – karaxuna