scrollToBottom

/**
    scrollToBottom({
        container: window,
        target: '#j_demo',
        triggerDistance: 0,
        callBack: function(){
            // 滚动到底部了
        },
        time: 300
    });

 */
define( function() {
    'use strict';
    var $ = jQuery;
    var scrollToBottom = function( config ) {
        var container = config.container || window;
        var target = config.target;
        var triggerDistance = config.triggerDistance || 0;
        var callBack = config.callBack || $.noop;
        var time = config.time || 300;
        container = $( container );
        target = $( target );
        triggerDistance = triggerDistance || 0;

        // var containerNode = container[0];
        var timer;
        var uuid = '_f35d0b75_5a21_0781_405a_b189f1f946c3';

        function onScrollToBottom() {

            /*var scrollHeight;
            if (containerNode == window) {
                scrollHeight = $(document).height();
            } else {
                scrollHeight = containerNode.scrollHeight;
            }*/
            var scrollPosition = container.height() + container.scrollTop();
            var bottomPosition = target.height() + target.offset().top;
            if ( ( scrollPosition - bottomPosition ) + triggerDistance > 0 ) {

                // 到达底部
                if ( $.isFunction( callBack ) ) {
                    callBack();
                }
            }
        }

        var stop = function() {
            container.off( 'scroll.' + uuid );
        };

        var start = function() {
            stop();
            container.on( 'scroll.' + uuid, function() {
                clearTimeout( timer );
                timer = setTimeout( function() {
                    onScrollToBottom();
                }, time );
            } );
        };

        var startNow = function() {
            stop();
            container.on( 'scroll.' + uuid, function() {
                onScrollToBottom();
            } );
        };

        return {
            stop: stop,
            start: start,
            startNow: startNow
        };
    };

    return scrollToBottom;
} );
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值