gpt4 book ai didi

javascript - 图片库/缩放幻灯片

转载 作者:行者123 更新时间:2023-11-28 10:15:15 28 4
gpt4 key购买 nike

I wanted to do something similar to this.

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

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

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

谢谢

最佳答案

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

  1. 点击图像将显示相对于浏览器高度的图像
  2. 在此模式下您可以转到下一张图片
  3. 再次点击该图像将进入超大模式,您的鼠标位置将决定您正在查看图像的哪个部分

我不会写一整个 fiddle 来演示这一点,因为这是一项相当大的工作量,但我可以告诉你基本的想法。

对于#1,当您单击图像时,您将创建一个具有某个高数字(例如 9999)的 z-index 的新 div。该位置将固定,您将创建

$(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);
});

就是这样。当然,我省略了一些细节,但这是总体思路。希望这可以帮助您入门。祝你好运。

关于javascript - 图片库/缩放幻灯片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6697177/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com