You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Plugins/features/scrollToTop/dataTables.scrollToTop.js

64 lines
1.7 KiB
JavaScript

/*! scrollToTop 0.0.1
* 2019 SpryMedia Ltd - datatables.net/license
*/
/**
* @summary scrollToTop
* @description always return to top of table when page changed
* @version 0.0.1
* @author SpryMedia Ltd (www.sprymedia.co.uk)
* @copyright Copyright 2019 SpryMedia Ltd.
*
* This source file is free software, available under the following license:
* MIT license - http://datatables.net/license/mit
*
* This source file is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
*
* For details please refer to: http://www.datatables.net
*/
(function(factory) {
if (typeof define === 'function' && define.amd) {
// AMD
define(['jquery', 'datatables.net'], function($) {
return factory($, window, document);
});
} else if (typeof exports === 'object') {
// CommonJS
module.exports = function(root, $) {
if (!root) {
root = window;
}
if (!$ || !$.fn.dataTable) {
$ = require('datatables.net')(root, $).$;
}
return factory($, root, root.document);
};
} else {
// Browser
factory(jQuery, window, document);
}
})(function($, window, document, undefined) {
'use strict';
// Automatic initialisation listener
$(document).on('preInit.dt', function(e, settings) {
if (e.namespace !== 'dt') {
return;
}
if (settings.oInit.scrollToTop || $.fn.dataTable.defaults.scrollToTop) {
var api = new $.fn.dataTable.Api(settings);
api.on('page', function() {
setTimeout(function() {
$(document).scrollTop($(api.table().container()).offset().top);
}, 10);
});
}
});
});