项目宽度未知的 jQuery 水平滚动

发布于 2024-09-03 00:14:29 字数 811 浏览 5 评论 0原文

我正在使用 jQuery 创建一个画廊,它水平显示图片,下面有一个“左”和“右”按钮,可以滚动图像行。有很多这方面的教程和插件。

但对我来说问题是 1)我不知道图像的宽度。 2)我需要将滚动到的项目居中。

我该怎么办?

非常感谢,Gorm


好吧,我会尽力澄清。

假设我有一个水平行的图像(高度固定但宽度未知 - 尽管比周围的容器小),带有“下一个”和“上一个”按钮,

<div class="imgContainer">
  <ul>
    <li><img src="01.jpg" alt=""></li>
    <li><img src="02.jpg" alt=""></li>
    <li><img src="03.jpg" alt=""></li>
    <li><img src="04.jpg" alt=""></li>
    ...
  </ul>
</div>
<a href="#" id="prev">Previous image</a>
<a href="#" id="next">Next image</a>

当页面加载时,第一个图像显示在中心,下一个图像从右边出来。

当您单击“下一张图像”时,图像行将滚动到下一张图像的中心。

我尝试了不同的“解决方案”,但我认为我是一个 js/jquery 菜鸟。因此,任何帮助将不胜感激。 :-)

I am creating a gallery using jQuery which displays pictures horizontally, with a "left" and "right" button below, that scrolls the row of images. There are plenty of tutorials and plugins for this.

The problem for me though, is that 1) I don't know the width of the images. And 2) I need the item I scroll to, to be centered.

How do I go about this?

Thanks a lot, Gorm


Okay, I will try to clarify.

Say I have a horizontal row of images (with fixed height but unknown width - though smaller than the surrounding container), with a 'next' and 'prev' button as

<div class="imgContainer">
  <ul>
    <li><img src="01.jpg" alt=""></li>
    <li><img src="02.jpg" alt=""></li>
    <li><img src="03.jpg" alt=""></li>
    <li><img src="04.jpg" alt=""></li>
    ...
  </ul>
</div>
<a href="#" id="prev">Previous image</a>
<a href="#" id="next">Next image</a>

When the page loads, the first image is displayed at the center, with the next images going out to the right.

When you click on "Next image", the row of images will scroll to center the next image.

I tried different "solutions", but I am too much a js/jquery rookie for this I think. So any help would be greatly appreciated. :-)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

疯了 2024-09-10 00:14:29

好吧,

  1. 计算图像的宽度
  2. 将您正在滚动的项目居中。

不过说真的,您需要提供更多信息才能获得有意义的答案。

您可以像这样计算集合内图像的宽度:

var totalWidth = 0;
$('.container img').each(function() {
    totalWidth += $(this).outerWidth();
});

否则它只是简单的算术。如果这没有帮助,请提供有关您所面临问题的更多详细信息。

Well,

  1. Calculate the width of the images
  2. Center the item you're scrolling

Seriously though, you need to provide a bit more info to get meaningful answers.

You can calculate the width of images inside a collection like this:

var totalWidth = 0;
$('.container img').each(function() {
    totalWidth += $(this).outerWidth();
});

Otherwise it's just simple arithmetics. Give some more details about the problems you're facing if this doesn't help.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文