blob: f92d514e19625194d0f8d516e3a97e83c219d4a4 [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
var hg = require('mercury');
var extend = require('xtend');
hg.Delegator().listenTo('scroll');
module.exports = hg.BaseEvent(scroll);
// # scroll(channel, data)
//
// dom-delegator event for scrolling. Currently broadcasts:
//
// { scrolledToBottom: true || false }
//
// Example:
//
// h('.scroller', { 'ev-scroll': scroll(channel) })
//
function scroll(event, broadcast) {
var element = event.target;
var overflowTop = element.scrollTop;
var visibleHeight = element.clientHeight;
var scrolledToBottom = overflowTop + visibleHeight >= element.scrollHeight;
var data = extend(this.data, {
scrolledToBottom: scrolledToBottom
});
broadcast(data);
}