芝麻web文件管理V1.00
编辑当前文件:/home/mgatv524/mixmidia.mgaplay.com.br/modules/xibo-menuboard-render.js
/* * Copyright (C) 2021 Xibo Signage Ltd * * Xibo - Digital Signage - http://www.xibo.org.uk * * This file is part of Xibo. * * Xibo is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * Xibo 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 * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with Xibo. If not, see
. */ jQuery.fn.extend({ menuBoardRender: function(options) { function createPage(pageNum, container) { var $newPage = $('
').addClass('menu-board-product-page').attr('data-page', pageNum); $(container).append($newPage); return $newPage; } $(this).each(function() { var deltaDuration; var maxPages = 0; // Hide all elements $('.menu-board-product').css('opacity', 0); // Get height of each products container $('.menu-board-products-container').each(function() { var pageNum = 1; var containerHeight = $(this).height(); var elementsTotalHeight = 0; var $productContainer = $(this); // Create first page var $currentPage = createPage(pageNum, $productContainer); // Create pages dynamically $(this).find('.menu-board-product').each(function() { var $product = $(this); var productHeight = $product.outerHeight(); // If the current page is full, create a new page if (productHeight + elementsTotalHeight > containerHeight) { pageNum++; elementsTotalHeight = 0; // Create a new page $currentPage = createPage(pageNum, $productContainer); } // Increase the total height elementsTotalHeight += productHeight; // Add element to the current page $currentPage.append($product); }); // Fill the last page with first elements if (pageNum > 1 && elementsTotalHeight < containerHeight) { $(this).find('.menu-board-product').each(function() { var $product = $(this); var productHeight = $product.outerHeight(); // If the current page is full, stop adding elements if (productHeight + elementsTotalHeight > containerHeight) { return false; } else { // Add cloned element to the current page $currentPage.append($product.clone()); // Increase the total height elementsTotalHeight += productHeight; } }); } // Save maxPages if pageNum is higher if (pageNum > maxPages) { maxPages = pageNum; } }); // Calculate the delta duration ( duration / number of max pages ) deltaDuration = options.duration / maxPages; // Cycle handles this for us $('.menu-board-products-container').cycle({ fx: "fade", timeout: deltaDuration * 1000, "slides": "> div.menu-board-product-page" }); // Re-show elements $('.menu-board-product').css('opacity', 1); return $(this); }); } });