Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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 平滑滚动;左热点太快,右热点什么都不做_Javascript_Jquery_Jquery Ui - Fatal编程技术网

Javascript 平滑滚动;左热点太快,右热点什么都不做

Javascript 平滑滚动;左热点太快,右热点什么都不做,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我目前正在使用SmoothDivScroll实现图像的滚动流。但是,左侧热点速度过快,而右侧热点似乎没有正确响应 我摆好了一把小提琴来展示这个问题: 我猜这与偏移量的计算方式有关,但我找不到解决问题的好方法。我的Java技能不是很好/ 发生错误的原因如下:margin:0 auto 用以下内容修复了它: 设置向右滚动的事件: var x = e.pageX - (this.offsetLeft + el.data("scrollerOffset").left); 改为 var x = el.d

我目前正在使用SmoothDivScroll实现图像的滚动流。但是,左侧热点速度过快,而右侧热点似乎没有正确响应

我摆好了一把小提琴来展示这个问题:


我猜这与偏移量的计算方式有关,但我找不到解决问题的好方法。我的Java技能不是很好/

发生错误的原因如下:
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 = el.data("hotSpotWidth") - (e.pageX - el.data("scrollerOffset").left);
设置向左滚动的事件:

var x = ((this.offsetLeft + el.data("scrollerOffset").left + el.data("hotSpotWidth")) - e.pageX);
改为

var x = el.data("hotSpotWidth") + (e.pageX - el.data("scrollerOffset").left - 960);
var x = el.data("hotSpotWidth") - (e.pageX - el.data("scrollerOffset").left);

发生错误的原因如下:
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 = el.data("hotSpotWidth") - (e.pageX - el.data("scrollerOffset").left);
设置向左滚动的事件:

var x = ((this.offsetLeft + el.data("scrollerOffset").left + el.data("hotSpotWidth")) - e.pageX);
改为

var x = el.data("hotSpotWidth") + (e.pageX - el.data("scrollerOffset").left - 960);
var x = el.data("hotSpotWidth") - (e.pageX - el.data("scrollerOffset").left);

我知道这根线有点旧了。但我有完全相同的问题!甚至我也更新到了最新版本(发布版本1.3时)

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

我发现如果所有公共图像的宽度小于scrollableArea-div,就会出现滚动问题。因此,您所要做的就是检查是否有足够的图像填充scrollableArea。如果不是,您也不需要平滑滚动条。 我有一些示例代码:

... 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");
    }
});
。。。html已在DOM中。。。
imagesLoaded('#myScrollable',函数(元素)
{
var$myScrollable=$(element.elements);//只有一个35; myScrollable
var imgWidths=0;
var images=$myScrollable.find('img');
for(var loop=0;loop$myScrollable.width())
{
$myScrollable.smoothDivScroll(
{
手动继续滚动:真
});
$myScrollable.smoothDivScroll(“重新计算可滚动区域”);
}
});
但是我不得不说,我使用了一个插件(imagesLoaded)在加载所有图像时生成一个事件。否则,所有图像的大小都为“0”


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

我知道这条线有点旧了。但我有完全相同的问题!甚至我也更新到了最新版本(发布版本1.3时)

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

我发现如果所有公共图像的宽度小于scrollableArea-div,就会出现滚动问题。因此,您所要做的就是检查是否有足够的图像填充scrollableArea。如果不是,您也不需要平滑滚动条。 我有一些示例代码:

... 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");
    }
});
。。。html已在DOM中。。。
imagesLoaded('#myScrollable',函数(元素)
{
var$myScrollable=$(element.elements);//只有一个35; myScrollable
var imgWidths=0;
var images=$myScrollable.find('img');
for(var loop=0;loop$myScrollable.width())
{
$myScrollable.smoothDivScroll(
{
manualContinuousScrolling:真
});
$myScrollable.smoothDivScroll(“重新计算可滚动区域”);
}
});
但是我不得不说,我使用了一个插件(imagesLoaded)在加载所有图像时生成一个事件。否则,所有图像的大小都为“0”


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

对我来说,这东西不起作用
el.data(“scrollableArea”).mousewheel(函数(事件,增量){
->
TypeError:Object[Object Object]没有方法“mousewheel”
Pesonally对我来说那东西不工作。
el.data(“scrollableArea”).mousewheel(函数(事件,增量){
->
TypeError:Object[Object Object]没有方法“mousewheel”