Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery工具-垂直滚动条一项过长_Javascript_Jquery_Css - Fatal编程技术网

Javascript jQuery工具-垂直滚动条一项过长

Javascript jQuery工具-垂直滚动条一项过长,javascript,jquery,css,Javascript,Jquery,Css,我上周在jQuery工具官方论坛上问了这个问题,但它肯定没有stackoverflow那么活跃,所以我想我也会在这里问 在我们的项目详细信息页面上,我们动态加载内容,使用垂直滚动条浏览。问题是垂直滚动条的高度似乎总是有一个项目太高。我找不到任何方法以编程方式影响这一点 如果我将其设置为“圆形”,它似乎具有正确的高度,但我们不希望它是连续/圆形的 示例如下: 未统一的JS如下所示: 有什么想法吗 下面是滚动到最后一个项目时的视图(向下箭头消失,不允许在最后一个缩略图下方出现空白区域)。 不幸的

我上周在jQuery工具官方论坛上问了这个问题,但它肯定没有stackoverflow那么活跃,所以我想我也会在这里问

在我们的项目详细信息页面上,我们动态加载内容,使用垂直滚动条浏览。问题是垂直滚动条的高度似乎总是有一个项目太高。我找不到任何方法以编程方式影响这一点

如果我将其设置为“圆形”,它似乎具有正确的高度,但我们不希望它是连续/圆形的

示例如下:

未统一的JS如下所示:

有什么想法吗

下面是滚动到最后一个项目时的视图(向下箭头消失,不允许在最后一个缩略图下方出现空白区域)。
不幸的是,.items容器中的div数应该可以被一次要显示的项目数整除。因此,您有3个div,但一次显示2个项目。这就是可滚动插件出现故障的原因。 您可以打开非精简的源代码并稍加修改,这应该不是很困难

或者更简单的解决方案是添加一个新的div并将其设置为4到2

或者将一次显示的项目数减少到1,并增加div的高度

使用另一个插件也可以


希望对您有所帮助

问题在于jQuery工具会滚动所有图像。在最后的图像之后,只会有一些空白

尝试将其添加到可滚动构造函数中

$('.scroll').scrollable({
   onBeforeSeek: function(e, index) {
        if (index == $('.items').size()) {
            return false;
        }
    },
    onSeek: function(e, index) {
        if (index == $('.items').size()-1) {
            $('.next').hide(0);
        } else {
            if ($('.next').is(':hidden')) {
                $('.next').show();
            }
        }
    }
});


免责声明:我不是专家。我没有对此进行测试。您的代码被缩小了,看不清楚。我几乎不使用jQuery工具。但我认为这将是一条出路。

上面的解决方案看起来会奏效,但在这里也找到了一个解决方案:

我的站点的实际代码如下所示:

$(function() {
  // Initialize the Scrollable control
  $(".scroll").scrollable({vertical:true, mousewheel:true, keyboard:true });

  // Get the Scrollable control
  var scrollable = jQuery(".scroll").data("scrollable");

  // Set to the number of visible items
  var size = 2;
  // Handle the Scrollable control's onSeek event
  scrollable.onSeek(function(event, index) {

    // Check to see if we're at the end
    if (this.getIndex() >= this.getSize() - size) {

      // Disable the Next link
      jQuery("a.next").addClass("disabled");
    }
  });

  // Handle the Scrollable control's onBeforeSeek event
  scrollable.onBeforeSeek(function(event, index) {

    // Check to see if we're at the end
    if (this.getIndex() >= this.getSize() - size) {

      // Check to see if we're trying to move forward
      if (index > this.getIndex()) {
        // Cancel navigation
        return false;
      }
    }
  });

});

请澄清它的外观,Photoshop截图会很好;-)@Gary Green设计看起来不错。但是,当您点击主图像或视频右侧的向下箭头时,它会滚动太远。谢谢我最初发射它的代码是
$(“.scroll”).scrollable({vertical:true,mouseweel:true,keyboard:true})
onBeforeSeek
之前添加代码并重新插入
垂直:true、鼠标滚轮:true、键盘:true
。(不再滚动并在单击向下箭头时抛出“$(此)。getIndex不是函数”错误。请像这样尝试。(请参阅编辑)。再说一次,我不是专家。如果你建立了那个网站,你必须知道你在做什么,修改我的建议应该不会太难。看一下文档,特别是事件部分,我也不是专家,因此我的问题在这里。:)如果我能弄清楚语法,你的解决方案和flowplayer.org网站上的文档似乎很有意义。并想隐藏滚动按钮。onBeforeSeek在滚动发生之前触发。index参数是它将滚动到的项目的索引。所以如果这是最后一项(这就是您需要知道项目总数的原因),则返回false,使其停止执行。滚动发生后,启动onSeek函数。它将其索引检查到所有项目。如果是上一个。隐藏“下一步”按钮。如果不是。如果jQuery工具本身在api imo中是隐藏的(如果用户向上滚动),则显示next按钮:)@omekirk:如果我有4个div,一次显示2个,它仍然会出现故障:或者你是说因为它滚动一个项目,但在任何给定时间都有2个可查看的问题?如果是这样,我将如何调整它以一次滚动两次?
$(function() {
  // Initialize the Scrollable control
  $(".scroll").scrollable({vertical:true, mousewheel:true, keyboard:true });

  // Get the Scrollable control
  var scrollable = jQuery(".scroll").data("scrollable");

  // Set to the number of visible items
  var size = 2;
  // Handle the Scrollable control's onSeek event
  scrollable.onSeek(function(event, index) {

    // Check to see if we're at the end
    if (this.getIndex() >= this.getSize() - size) {

      // Disable the Next link
      jQuery("a.next").addClass("disabled");
    }
  });

  // Handle the Scrollable control's onBeforeSeek event
  scrollable.onBeforeSeek(function(event, index) {

    // Check to see if we're at the end
    if (this.getIndex() >= this.getSize() - size) {

      // Check to see if we're trying to move forward
      if (index > this.getIndex()) {
        // Cancel navigation
        return false;
      }
    }
  });

});