From 36ea1abe1f922a4a97c535348c7f1b94fcf6721c Mon Sep 17 00:00:00 2001 From: Noah Loomans Date: Thu, 23 Mar 2017 10:10:44 +0100 Subject: Zoom table out when it doesn't fit the screen --- public/javascripts/zoom.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 public/javascripts/zoom.js (limited to 'public/javascripts/zoom.js') diff --git a/public/javascripts/zoom.js b/public/javascripts/zoom.js new file mode 100644 index 0000000..59b80db --- /dev/null +++ b/public/javascripts/zoom.js @@ -0,0 +1,30 @@ +const schedule = require('./schedule') + +const self = {} + +self._nodes = { + body: document.body +} + +self._handleResize = function () { + // the table node may not exist before this function is called + const tableNode = document.querySelector('center > table') + + // infact, it may not even exist when this function is called. + if (!tableNode) return + + const tableWidth = tableNode.getBoundingClientRect().width + const tableGoalWidth = self._nodes.body.getBoundingClientRect().width * 0.9 + const zoomFactor = tableGoalWidth / tableWidth + + if (zoomFactor < 1) { + tableNode.style.zoom = `${zoomFactor}` + } else { + tableNode.style.zoom = `1` + } +} + +schedule.on('load', self._handleResize) +window.addEventListener('resize', self._handleResize) + +module.exports = self -- cgit v1.1