Img滑块 - next或prev img src基于数组中的“clicked”img

时间:2013-06-30 01:44:19

标签: php javascript jquery

我是网页设计的新手,这就是我想要的(达到一定程度):我显示了这个小img数组(在#image-holder中),每个img u click,它在另一个标签中打开(#bigimg)全尺寸。我还设法在数组中制作了所有图像(全尺寸)的滑块(在#bigimg中)。你可以点击按钮来回走动。我不能做的是“获取”点击的 img的特定src,这样点击“下一步”按钮将idd显示下一个(那个)img array [和“prev”按钮将显示实际上的(那个)img]。到目前为止,这是我的代码:

    var images=new Array();
    var i;
    $(document).ready(function(){
        $.getJSON("image_slider.php", function(json) {
                for(i=0; i<json.length; i++)
                {
                    images[i]="images/"+json[i];

                   $('<img>').attr('src',images[i]).css({"width":"60px", "padding":"5px"}).appendTo('#image-holder');
                }
                var theimgs= document.getElementById("image-holder").getElementsByTagName("img") ;
                for (i in theimgs)
                {
                    theimgs[i].onclick=function (){     
                            getimg (this) ;}    
                }  
                }); 
        }); 
    function getimg (z){
        var n=document.getElementById("bigimg") ;
        n.src= z.src ; }

    var x=0 ;
    function getall_next (){
        x++; 
        var n=document.getElementById("bigimg") ;
        n.src=images[x] ;
        if (x==images.length)
        {
            x=0 ;
            n.src=images[0] ;
        } }
    function getall_prev (){
        var n=document.getElementById("bigimg") ;
        if (x==0)
        {
            x=images.length ;
            n.src=images[images.length] ;
            x-- ;   
        }
        else
            x-- ;
        n.src=images[x] ; }

2 个答案:

答案 0 :(得分:0)

如果你使用jquery,你可以用更少的代码完成所有这些,但是因为你使用普通的javascript

var image_src = document.getElementById("bigimg").src;

根据您的回复,这里有一些伪代码。

//when you set the bigimg 
   last_image = bigimg.src;
   bigimg.src = newimg;
   current_image = newimg;

 //then before setting new img you 
 //you can access those variables you set above 

答案 1 :(得分:0)

好的,经过大量研究或试验和错误后,我终于找到了解决方案:P这是我的代码现在完美运行,加上一个非常有用的链接,帮助我http://thecodeplayer.com/walkthrough/jquery-css3-lightbox-tutorial。我不得不调整它 - 我使用php从文件夹中获取图像 - 所以这里是:

    var images=new Array();
    var i;
    $(document).ready(function(){
        $.getJSON("MY_img_array.php", function(json){
            for(i=0; i<json.length; i++)
            {
                images[i]="images/"+json[i];
                $('<img>').attr('src',images[i]).css({"width":"60px", "padding":"5px"}).appendTo('#imgarray');
            }       
            $("#imgarray img").click(function() {
                    $("#imgarray img.active").removeClass("active");
                    $(this).addClass("active");
                    var large_img = new Image();
                    large_img.src = this.src;
                    $('div#bigimg').html(large_img);
                });

            $("#prevbtn").click(function(){ navigate(-1) });
            $("#nextbtn").click(function(){ navigate(1) });
            function navigate(direction) {
                if(direction == -1) // left
                    $("#imgarray img.active").prev().trigger("click");
                else if(direction == 1) //right
                    $("#imgarray img.active").next().trigger("click");
                }
        });
    });