0

我是网页设计的新手,这就是我想要的(工作到一定程度):我显示了这个小图像数组(在 #image-holder 中),你点击的每个图像,它都会在另一个标签中打开(在 # bigimg)全尺寸。我还设法为数组中的所有图像(全尺寸)制作了一个滑块(在#bigimg 中)。您可以通过单击按钮来回移动。我不能做的是“获取”单击的img的特定src,这样通过单击“下一个”按钮将idd显示数组中的下一个(那个)img [和“上一个”按钮将显示实际的上一个()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] ; }
4

2 回答 2

0

Okies,经过大量研究和反复试验,我终于找到了解决方案: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");
                }
        });
    });
于 2013-07-04T22:53:27.577 回答
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 
于 2013-06-30T02:05:47.673 回答