【问题标题】:How to target next image to be displayed?如何定位下一张要显示的图像?
【发布时间】:2014-02-03 18:51:24
【问题描述】:

我有一个显示图像的画廊,还需要导航到下一张和上一张图像。我真的不知道如何让它们工作。

我的工作结构在this fiddle

我需要让它工作,这样当我点击next 时它会打开下一张图片,当我按下prev 时它会打开上一张图片。

【问题讨论】:

  • 为什么你不想使用现成的脚本?
  • @Pinal 可能他想学点新东西。
  • 是的,但是 jsfiddle 画廊的方式是错误的。如果有人会重构小提琴,@Essteffan 将获得刚刚准备好的画廊,而不是 javascript 的新技能。
  • 也许你可以帮助我解释我开始的一些事情。我知道基于 jquery,但我想念逻辑。
  • 没有人吗?拜托了伙计们!我在这里很痛苦:)

标签: javascript jquery html css


【解决方案1】:

我认为您应该将selected 类名应用于当前视图中的图像。

单击“下一步”按钮后,将所选类移动到下一个元素,如下所示:

$('.selected').removeClass('selected').next().addClass('selected');

这样您一次只跟踪一个元素,并且可以显示该特定元素。

在您的getNext 函数中,x.length === 0(它是空的)因为它试图在this 中查找.popup_img,而this 是被点击的按钮。

function getNext(){
  debugger;
    var x = jQuery(this).find('.popup_img');
  jQuery('.popup_img').hide();  
  jQuery('.popup_img').next('.popup_img').show();
    
  console.log(x);
}

编辑:这里改进了 next 和 prev 功能:

function getNext() {
  var parent = jQuery(this).closest('.gallery-box-file');
  var currentImg = parent.find('.popup_img');
  var nextParent = parent.next();

  if (nextParent.length) {
    currentImg.hide();
    nextParent.find('.popup_img').show();
  }
}

function getPrev() {
  var parent = jQuery(this).closest('.gallery-box-file');
  var currentImg = parent.find('.popup_img');
  var nextParent = parent.prev();

  if (nextParent.length) {
    currentImg.hide();
    nextParent.find('.popup_img').show();
  }
}

http://jsfiddle.net/6Q4Va/5/

【讨论】:

  • 嘿 CodeToad。谢谢你的帖子,我想我自己,正如你在小提琴中看到的那样,大图像已经有了一个名为 imgs 的类,但是在这个结构中,我要隐藏当前的 popup_img 并打开下一个 popup_img(女巫已经包含关闭按钮和下一个和上一个按钮)。我尝试你的方式,但我没有任何运气。你能帮我解决这个问题吗?
  • 我试过了,但是你的代码我很难理解。我不确定代码是如何尝试实现图库功能的。
  • 画廊必须做两件事:1)打开图像作为弹出窗口(这是有效的); 2)如果我打开一个图像,我需要它,如果我按下一个 / 上一个按钮打开下一个 / 上一个相同格式的图像。我的想法是隐藏类 pupup_img 并打开 next / prev popup_img 女巫包含图像
  • 是的,这些是要求,但目前尚不清楚该程序如何接近这一点。下一个/上一个 - 他们在哪里?他们是 popup_image 的兄弟姐妹吗?一次似乎也有不止一个 popup_img 。您是否尝试过在 chrome 开发工具中逐行调试代码,并检查发生了什么
  • 我认为你的做法是错误的。不要使用 javascript 设置尺寸,而是使用适当的 css。隐藏图像上的宽度为零,正是因为它隐藏了 'display:none' stackoverflow.com/questions/1472303/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多