首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SmoothDivScroll;Left HotSpot太快,Right HotSpot什么都不做

SmoothDivScroll;Left HotSpot太快,Right HotSpot什么都不做
EN

Stack Overflow用户
提问于 2012-07-16 23:36:06
回答 2查看 463关注 0票数 1

我目前正在使用SmoothDivScroll来实现一个滚动的图像流。然而,左边的热点速度太快,而右边的热点似乎没有正确响应。

我设置了一个小提琴来展示这个问题:http://jsfiddle.net/gUewB/4/

我猜这与偏移量的计算方式有关,但我找不到解决这个问题的好办法。我的JavaSkills就是没那么棒。:/

EN

回答 2

Stack Overflow用户

发布于 2013-09-18 21:02:54

我知道这个帖子有点老了。但我也有同样的问题!甚至我更新到了最新的版本(这是在发布1.3版本的时刻)

不幸的是,Pieter Mathys的解决方案对我不起作用。

我发现如果所有公共图像的宽度小于scrollableArea div,就会出现滚动问题。因此,您所要做的就是检查是否有足够的图像来填充scrollableArea。如果不是,那么您无论如何都不需要SmoothDivScroll。我有一些示例代码:

代码语言:javascript
复制
... 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";

我希望这对任何人都有帮助。

票数 3
EN

Stack Overflow用户

发布于 2012-07-17 20:18:57

发生错误的原因如下:margin: 0 auto;

已通过以下命令修复:

设置向右滚动的事件:

代码语言:javascript
复制
var x = e.pageX - (this.offsetLeft + el.data("scrollerOffset").left);

更改为

代码语言:javascript
复制
var x = el.data("hotSpotWidth") + (e.pageX - el.data("scrollerOffset").left - 960);

设置向左滚动的事件:

代码语言:javascript
复制
var x = ((this.offsetLeft + el.data("scrollerOffset").left + el.data("hotSpotWidth")) - e.pageX);

更改为

代码语言:javascript
复制
var x = el.data("hotSpotWidth") - (e.pageX - el.data("scrollerOffset").left);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11507606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档