UNPKG

cordova-mobile-app-template

Version:

Simple and fully customizable user interface template. Design for mobile app development on Apache Cordova framework or Ionic / Capacitor Native Runtime. Platforms: Android, iOS.

209 lines (161 loc) 5.67 kB
/* bottomTabBar UI Component. - change tab page in homePage. bottomTabBar.create() - create the object. - left: 0, bottom:0, width: 600, height: 150 bottomTabBar.getContainerBox() - get the container box. */ var bottomTabBar = {}; bottomTabBar.itemDataList = [ { pageId: 1, title: "STATUS", iconFile: "examples-js/custom-tab-bar/assets/status.png" }, { pageId: 2, title: "RECEIPTS", iconFile: "examples-js/custom-tab-bar/assets/transactions.png" }, { pageId: 3, title: "TOOLS", iconFile: "examples-js/custom-tab-bar/assets/settings.png" } ]; bottomTabBar.itemList = []; bottomTabBar.selectedItemIndex = -1; bottomTabBar.onItemClickFunc = function() {}; bottomTabBar.create = function() { bottomTabBar.WIDTH = 600; bottomTabBar.HEIGHT = 150; bottomTabBar.BACK_WIDTH = 600 - 40; bottomTabBar.BACK_HEIGHT = bottomTabBar.HEIGHT - 50; // BOX: Object container box. bottomTabBar.box = createBox(0, 0, bottomTabBar.WIDTH, bottomTabBar.HEIGHT); that.border = 0; that.color = "transparent"; /* MOTION: that.bottom = bottomTabBar.HEIGHT * -1 that.opacity = 0 that.setMotion("bottom 0.5s, opacity 0.5s") that.withMotion(function(self) { self.bottom = 0 self.opacity = 1 }) */ that.bottom = 0; that.opacity = 1; // Box: Object background box. bottomTabBar.box.boxBack = createBox(20, 20, bottomTabBar.BACK_WIDTH, bottomTabBar.BACK_HEIGHT) bottomTabBar.box.add(that) //that.color = "white" that.element.style.background = "linear-gradient(to bottom, #D8D8D8, #D8D8D800)" that.round = 20 that.border = 1 that.borderColor = "#141414" // BOX: Items group box. bottomTabBar.box.boxItemGroup = createBox(20, 20, bottomTabBar.BACK_WIDTH, bottomTabBar.BACK_HEIGHT) bottomTabBar.box.add(that) that.color = "transparent" // BUTTON: Right button. bottomTabBar.box.boxRightButton = createBox(0, 10, 120, 120) bottomTabBar.box.add(that) that.right = 35 that.color = "#FFFFFF" that.border = 2 that.borderColor = "#141414" that.round = that.width that.opacity = 1 /* MOTION: */ // that.setMotion("opacity 0.5s") that.onClick(function(self) { bottomTabBar.onItemClickFunc(self, 3) }) // IMAGE: Right button icon. bottomTabBar.box.boxRightButton.imgRightButton = createImage(0, 0, 120, 120) bottomTabBar.box.boxRightButton.add(that) that.load("examples-js/custom-tab-bar/assets/add-spending.png") that.space = 30 that.opacity = 0.65 // BOX: Selection color box. bottomTabBar.box.boxSelectionColor = createBox(0, 0, 60, 4); bottomTabBar.box.add(that); that.color = "#40A5AF"; that.opacity = 0.8; that.round = 4; /* MOTION: */ that.setMotion("left 0.2s"); // that.setMotion("left 0.5s") // Create items. bottomTabBar.createItemsByDataList(bottomTabBar.itemDataList); // DEFAULT: Select the first item. bottomTabBar.selectItemByIndex(0); } bottomTabBar.createItemsByDataList = function(dataList) { bottomTabBar.itemList = []; bottomTabBar.selectedItemIndex = -1; bottomTabBar.box.boxItemGroup.html = ""; for (var i = 0; i < dataList.length; i++) { bottomTabBar.box.boxItemGroup["item" + i] = bottomTabBar.createItem(dataList[i], i); bottomTabBar.box.boxItemGroup.add(that); that.left = 10 + (i * 135); that.onClick(function(self) { if (bottomTabBar.selectedItemIndex != self.index) { } bottomTabBar.selectItemByItem(self); bottomTabBar.onItemClickFunc(self, self.index); }); } } bottomTabBar.createItem = function(data, index) { var ITEM_WIDTH = 130; // Create item. // BOX: Item container box. var item = createBox(); // bottomTabBar.box.boxBack.add(that) that.color = "transparent"; that.width = ITEM_WIDTH; that.height = bottomTabBar.BACK_HEIGHT; that.top = 0; that.left = 0; that.opacity = 0.4; that.data = data; that.index = index; // LABEL: Item title. item.lblDateTitle = createLabel(0, 0, ITEM_WIDTH); item.add(that); that.textAlign = "center"; that.textColor = "#000000"; //that.element.style.fontFamily = "opensans-bold" that.fontSize = 23; that.text = data.title; that.opacity = 0.6; that.bottom = 12; // IMAGE: Item icon. item.imgIcon = createImage(0, 12, 40, 40); item.add(that); that.load(data.iconFile); that.center("left"); bottomTabBar.itemList.push(item); makeBasicObject(item); return item; } bottomTabBar.selectItemByItem = function(item) { bottomTabBar.selectItemByIndex(item.index); } bottomTabBar.selectItemByIndex = function(index) { if (bottomTabBar.selectedItemIndex != index) { var currentItem = bottomTabBar.itemList[index]; if (bottomTabBar.selectedItemIndex != -1) { var previousItem = bottomTabBar.itemList[bottomTabBar.selectedItemIndex]; previousItem.opacity = 0.4; } currentItem.opacity = 1; bottomTabBar.box.boxSelectionColor.aline(currentItem, "bottom", 6, "center"); bottomTabBar.box.boxSelectionColor.left += 20; bottomTabBar.selectedItemIndex = index; } }; bottomTabBar.onItemClick = function(func) { bottomTabBar.onItemClickFunc = func; }; bottomTabBar.getSelectedItemIndex = function() { return bottomTabBar.selectedItemIndex; }; bottomTabBar.getContainerBox = function() { return bottomTabBar.box; }; bottomTabBar.getHeight = function() { return bottomTabBar.box.height; }