我目前正在使用SmoothDivScroll来实现一个滚动的图像流。然而,左边的热点速度太快,而右边的热点似乎没有正确响应。
我设置了一个小提琴来展示这个问题:http://jsfiddle.net/gUewB/4/
我猜这与偏移量的计算方式有关,但我找不到解决这个问题的好办法。我的JavaSkills就是没那么棒。:/
发布于 2013-09-18 21:02:54
我知道这个帖子有点老了。但我也有同样的问题!甚至我更新到了最新的版本(这是在发布1.3版本的时刻)
不幸的是,Pieter Mathys的解决方案对我不起作用。
我发现如果所有公共图像的宽度小于scrollableArea div,就会出现滚动问题。因此,您所要做的就是检查是否有足够的图像来填充scrollableArea。如果不是,那么您无论如何都不需要SmoothDivScroll。我有一些示例代码:
... html is already in in DOM ...
imagesLoaded( '#myScrollable', function( element )
{
var $myScrollable = $(element.elements); // just one #myScrollable
var imgWidths = 0;
var images = $myScrollable.find('img');
for(var loop=0; loop < images.length; loop++)
imgWidths += $(images[loop]).width();
if( imgWidths > $myScrollable.width() )
{
$myScrollable.smoothDivScroll(
{
manualContinuousScrolling: true
});
$myScrollable.smoothDivScroll("recalculateScrollableArea");
}
});但是我不得不说,我使用了一个来自https://github.com/desandro/imagesloaded的插件(imagesLoaded),在所有图片都加载后会有一个事件。否则,所有镜像的大小均为"0";
我希望这对任何人都有帮助。
发布于 2012-07-17 20:18:57
发生错误的原因如下:margin: 0 auto;
已通过以下命令修复:
设置向右滚动的事件:
var x = e.pageX - (this.offsetLeft + el.data("scrollerOffset").left);更改为
var x = el.data("hotSpotWidth") + (e.pageX - el.data("scrollerOffset").left - 960);设置向左滚动的事件:
var x = ((this.offsetLeft + el.data("scrollerOffset").left + el.data("hotSpotWidth")) - e.pageX);更改为
var x = el.data("hotSpotWidth") - (e.pageX - el.data("scrollerOffset").left);https://stackoverflow.com/questions/11507606
复制相似问题