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