图像库/幻灯片与缩放

时间:2011-07-14 17:04:02

标签: javascript jquery image gallery image-zoom

I wanted to do something similar to this.

在这种情况下,当用户点击图像时,此图像以100%的浏览器高度显示,用户可以转到下一张/上一张图像。当用户再次点击时,图像以更大的尺寸显示(可能是实际尺寸),用户可以在图像中上下移动,但只需滚动,只需移动鼠标。

我想要做的是当用户第一次点击图像时右转到最后一步:最大的图像与鼠标移动同步上下,并可以转到下一张图像。换句话说,混合了原始案例的第一步和第二步的特征。

我可以在哪里看到教程或演示?或者我怎么能这样做?

由于

1 个答案:

答案 0 :(得分:0)

基本上,您想要做的事情有三个部分。

  1. 单击图像将显示与浏览器高度相关的图像
  2. 您可以在此模式下转到下一张图片
  3. 再次单击该图像将进入超大模式,您的鼠标位置决定了您正在查看的图像部分
  4. 我不会写一个完整的小提琴来证明这一点,因为这是一个相当大的工作,但我可以告诉你基本的想法。

    使用#1,当您单击图像时,您将创建一个具有某个高数字z-index的新div(如9999)。该职位为fixed,您将创建

    $(window).resize(function() {
    
        var windowheight = $(window).height();
        $("#imgdiv").css("height", windowheight);
    });
    

    如果用户决定调整窗口大小,将会调整图像大小,这样它总是占据浏览器的整个高度。

    使用#2,箭头只会创建一个新的img标记。这个想法就像是

    function loadnew() {
    
        // create the new image
        var newimg = "<img id='newimg'></img>"
        $("#imgcontainer").append(newimg);
    
        // make sure it has the same classes as the current img
        // so that it's in the same position with an higher z-index
        // then load the image
        $("#newimg").addClass( "class1 class2" );
        $("#newimg").css( "z-index", "+=1" );
        $("#newimg").css( "opacity", 0 );
    
        $("#newimg").attr("src", "url/to/img");
    
        // animate the thing and then replace the src of the old one with this new one
        $("#newimg").animate( {
            opacity: 1;
        }, 1000, function() {
            $(oldimg).attr("src", $("#newimg").attr("src"));
        });
    }
    

    现在使用#3,您将根据宽度调整图像大小。 div fixed定位。所以,你需要一个

    $(window).resize(function() {
    
        var windowwidth= $(window).width();
        $("#imgdiv").css("width", windowwidth);
    });
    

    确保它始终占据整个屏幕。对于鼠标移动,您需要有一个mousemove事件处理程序

    $("#superimgdiv").mousemove( function(e) {
    
        // need to tell where the mouse is with respect to the window
        var height = $(window).height();
        var mouseY = e.pageY;
        var relativepct = mouseY/height;
    
        // change the position relative to the mouse and the full image height
        var imgheight = $("superimg").height();
        $("superimgdiv").css("top", -1*relativepct*imgheight);
    });
    

    就是这样。当然我遗漏了一堆细节,但这是一般的想法。希望这可以帮助你入门。祝你好运。