代码之家  ›  专栏  ›  技术社区  ›  cl0udc0ntr0l

将变量传递给jQuery scrollTo的持续时间

  •  0
  • cl0udc0ntr0l  · 技术社区  · 13 年前

    我正在处理的这个项目上的菜单链接触发了一个自定义功能。该函数采用两个参数。n是单击的元素的索引,p是要滚动到的scrollTop。我想根据我们必须滚动经过的“幻灯片”数量来更改scrollTo的持续时间。每张幻灯片1000ms。我将所有索引设置为从1开始,而不是从0开始。然后我循环浏览所有菜单列表项,如果它是当前幻灯片,我将其索引存储在x中。返回n-x的绝对值…等等。数学结果很好地注销。问题是scrollTo不接受我的变量。有什么想法吗?

    function calcScrollSpeed(n, p){
        var x = 1;
        var y;
        var pp = p + 'px';
        $('nav#left div ul li').each(function(i){
            var ii = 2;
            var iii = ii + i;
            if($(this).hasClass('current')) {
                x = iii;
            }
        });
        y = Math.abs(n - x);
        yy = y + '000';
        $.scrollTo(pp, yy);
        console.log(yy);
    }
    

    顺便提一下

    我将ii设置为2的原因是考虑到导航中不包含的徽标/主页链接元素。x从1开始。

    1 回复  |  直到 13 年前
        1
  •  2
  •   SteveP Robbie Wareham    13 年前

    问题是yy是一个字符串,nut是一个数字

    y = Math.abs(n - x);
    yy = y + '000';
    

    尝试

     yy = yy*1000