Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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 双向自动滚动div内容_Javascript_Jquery - Fatal编程技术网

Javascript 双向自动滚动div内容

Javascript 双向自动滚动div内容,javascript,jquery,Javascript,Jquery,我想做一个div自动滚动它的内容。内容高度是可变的。这是我设法解决的问题,但是如果我将高度设置为.childElement.outerHeight或height,它将只滚动78px,我不知道为什么 var element = jQuery('#content'); setInterval(scrollDown(element), 1000) function scrollDown(element) { var childElem

我想做一个div自动滚动它的内容。内容高度是可变的。这是我设法解决的问题,但是如果我将高度设置为.childElement.outerHeight或height,它将只滚动78px,我不知道为什么

 var element = jQuery('#content');
            setInterval(scrollDown(element), 1000)

        function scrollDown(element) {
            var childElement = element.children();
            scrollAmount = childElement.outerHeight();
            element.animate({ scrollTop: 1000 }, 3000, null, scrollUp(childElement));
        }
        function scrollUp(element) {
            element.animate({ scrollTop: 0 }, 500);
        }

        });
非常感谢您的帮助

谢谢,
塞巴斯蒂安

我找到了解决办法

主要问题是我使用了
document.ready
,而div的子元素中没有所有的项目,因此滚动高度不正确。我已经用
window.load更改了这一点,并对滚动动画进行了一些更改。此外,动画功能上的参数错误

这是最后一个正常工作的代码段

jQuery(window).load(function () {
    var element = jQuery('#content');
    var childElement = element.children();
    var scrollAmount = childElement.height();
    var speedDown = scrollAmount * 20;
    var speedUp = speedDown * 0.3;

    scrollDown(element, scrollAmount, speedUp, speedDown);

    function scrollDown(element, scrollAmount, speedUp, speedDown) {

        element.animate({ scrollTop: scrollAmount }, speedDown, function () {
            element.animate({ scrollTop: scrollAmount * -1 }, speedUp);
            scrollDown(element, scrollAmount, speedUp, speedDown);
        });
    }
})

在small上试试这个,我在您的代码中有一行代码,可以在没有鼠标悬停的情况下自动上下滚动:

jQuery(window).load(function () {
  var element = jQuery('#content');
  var childElement = element.children();
  var scrollAmount = childElement.height();
  var speedDown = scrollAmount * 50;
  var speedUp = speedDown * 0.9;

  scrollDown(element, scrollAmount, speedUp, speedDown);

  function scrollDown(element, scrollAmount, speedUp, speedDown) {

    element.animate({ scrollTop: scrollAmount }, speedDown, function () {
        element.animate({ scrollTop: scrollAmount * +3 }, speedUp);
        scrollDown(element, scrollAmount, speedUp, speedDown);
        element.animate({ scrollTop: scrollAmount * -3 }, speedDown);
    });
  }
})

你试过css吗?像
overflow:scroll
overflow:auto
?我有overflow:hidden,我不想看到滚动条上的内容,只是自动向下滚动,而不是自动向上滚动,速度更快。如果您已经解决了自己的问题,请将您的解决方案作为答案发布并接受它。