Javascript 如何使div从左向右移动更快?

Javascript 如何使div从左向右移动更快?,javascript,jquery,Javascript,Jquery,我希望div在滚动时从左向右移动。我做到了 $(document).ready(function () { var $horizontal = $('#horizontal'); $(window).scroll(function () { var s = $(this).scrollTop(), d = $(document).height(), c = $(this).height(); k = 10;

我希望div在滚动时从左向右移动。我做到了

$(document).ready(function () {
    var $horizontal = $('#horizontal');

    $(window).scroll(function () {
        var s = $(this).scrollTop(),
        d = $(document).height(),
        c = $(this).height();
        k = 10;
        scrollPercent = k * (s / (d - c));

        var position = (scrollPercent * ($(document).width() -   $horizontal.width()));

       $horizontal.css({
        'left': position
       });
    });
});
但是,我怎样才能让div更快地向右移动呢?因为div从左到右的速度与滚动条从上到下的速度相同。对不起,如果我对你没有任何意义

$(document).ready(function () {
    var $horizontal = $('#horizontal');

    $(window).scroll(function () {
        var s = $(this).scrollTop(),
        d = $(document).height(),
        c = $(this).height();
        k = 10;
        scrollPercent = k * (s / (d - c));

        var position = (scrollPercent * ($(document).width() -   $horizontal.width()));

       $horizontal.css({
        'left': position
       });
    });
});
这是JSFIDLE-

$(document).ready(function () {
    var $horizontal = $('#horizontal');

    $(window).scroll(function () {
        var s = $(this).scrollTop(),
        d = $(document).height(),
        c = $(this).height();
        k = 10;
        scrollPercent = k * (s / (d - c));

        var position = (scrollPercent * ($(document).width() -   $horizontal.width()));

       $horizontal.css({
        'left': position
       });
    });
});

只需将乘数添加到

$(document).ready(function () {
    var $horizontal = $('#horizontal');

    $(window).scroll(function () {
        var s = $(this).scrollTop(),
        d = $(document).height(),
        c = $(this).height();
        k = 10;
        scrollPercent = k * (s / (d - c));

        var position = (scrollPercent * ($(document).width() -   $horizontal.width()));

       $horizontal.css({
        'left': position
       });
    });
});
var位置=((滚动百分比*($(document.width()-$horizontal.width())*1)

$(document).ready(function () {
    var $horizontal = $('#horizontal');

    $(window).scroll(function () {
        var s = $(this).scrollTop(),
        d = $(document).height(),
        c = $(this).height();
        k = 10;
        scrollPercent = k * (s / (d - c));

        var position = (scrollPercent * ($(document).width() -   $horizontal.width()));

       $horizontal.css({
        'left': position
       });
    });
});

参见fiddle:

您可以通过添加乘法因子或添加因子来增加滚动百分比。例如:

$(document).ready(function () {
    var $horizontal = $('#horizontal');

    $(window).scroll(function () {
        var s = $(this).scrollTop(),
        d = $(document).height(),
        c = $(this).height();
        k = 10;
        scrollPercent = k * (s / (d - c));

        var position = (scrollPercent * ($(document).width() -   $horizontal.width()));

       $horizontal.css({
        'left': position
       });
    });
});

现在,您的速度取决于文档的长度。如果您希望它在文档的中间点到达右侧,请将滚动百分比乘以2。如果你想让它向右移动四分之一的距离,使用4的乘数。。等等

$(document).ready(function () {
    var $horizontal = $('#horizontal');

    $(window).scroll(function () {
        var s = $(this).scrollTop(),
        d = $(document).height(),
        c = $(this).height();
        k = 10;
        scrollPercent = k * (s / (d - c));

        var position = (scrollPercent * ($(document).width() -   $horizontal.width()));

       $horizontal.css({
        'left': position
       });
    });
});
使用Math.min()确保框不会从页面上滚下

$(document).ready(function () {
    var $horizontal = $('#horizontal');

    $(window).scroll(function () {
        var s = $(this).scrollTop(),
        d = $(document).height(),
        c = $(this).height();
        k = 10;
        scrollPercent = k * (s / (d - c));

        var position = (scrollPercent * ($(document).width() -   $horizontal.width()));

       $horizontal.css({
        'left': position
       });
    });
});
$(document).ready(function () {
    var $horizontal = $('#horizontal');

    $(window).scroll(function () {
        var s = $(this).scrollTop(),
            d = $(document).height(),
            c = $(this).height(),
            m = 2; //Speed multiplier

        scrollPercent = Math.min((s / (d - c)*m),1);

        var position = (scrollPercent * ($(document).width() - $horizontal.width()));

        $horizontal.css({
            'left': position
        });
    });
});

div的速度取决于你有多少文本,你基本上是在问一道数学题。位置是根据您所做的滚动百分比计算的,因此如果您希望滚动速度更快,请将其乘以某个数字
var position=(2*scrollPercent*…
将使其滚动速度提高一倍…似乎您希望当窗口完全向下滚动时,div到达右侧。如果它移动得更快,它将在这之前到达右侧。这是您想要的吗?您在水平.width()之前删除了$这将导致一个错误。