scroll - 如何使用 Zepto.js 滚动 div?

标签 scroll zepto

我有一个带有 overflow:scroll 的 div,现在我想以编程方式向下滚动该 div。 Zepto.js 可以实现这一点吗?

最佳答案

Zepto 不直接提供 API,但可以从较低级别的 DOM 访问它。

var $el = $('#scrolling-el');
var el = $el[0]; /* Actual DOM element */

/* Scroll to bottom */
el.scrollTop = el.scrollHeight - $el.height();

/* Scroll to top */
el.scrollTop = 0;

动画滚动将是使用setTimeout的过程。您可以编写一个快速的 Zepto 插件。这是一个粗略的例子:

$.fn.scrollToBottom = function(duration) {
    var $el = this;
    var el  = $el[0];
    var startPosition = el.scrollTop;
    var delta = el.scrollHeight - $el.height() - startPosition;

    var startTime = Date.now();

    function scroll() {
        var fraction = Math.min(1, (Date.now() - startTime) / duration);

        el.scrollTop = delta * fraction + startPosition;

        if(fraction < 1) {
            setTimeout(scroll, 10);
        }
    }
    scroll();
};

关于scroll - 如何使用 Zepto.js 滚动 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10802596/

相关文章:

javascript - 滚动偏移脚本中的 preventDefault undefined

javascript - 为 zepto.js 重写一个插件

cordova - jquery 移动替代品(瓶颈是什么?)

javascript - 检测页面来自后退按钮的方法

javascript - 使用 zepto,是否可以对动画进行排队?

jquery - 如何在 Require.js 中使用 Foundation 4 中的 Zeptos 和 Yeoman 中的 Grunt

android - 设置 ScrollView 的内容偏移量

javascript - 检测到滚动时的 ScrollTop

c# - ExecuteScript(setInterval) 完成后继续 `while` 循环

javascript - 如何减少带有缩放内容的 div 的可滚动高度?