"use strict"; OB_ready(OB_doWhenReady);function OB_doWhenReady() { // localize everything var ooohBoi = window.ooohBoi || {}; // local scope variables ooohBoi.prev_scroll_pos = window.scrollY || document.body.scrollTop; ooohBoi.cur_scroll_pos; ooohBoi.scroll_direction = 'init'; ooohBoi.prev_scroll_direction = 0; ooohBoi.header = document.querySelector('#header_pop'); // header ID ooohBoi.header_pos = { top: ooohBoi.header.offsetTop, left: ooohBoi.header.offsetLeft, }; ooohBoi.header_height = OB_outerHeight(ooohBoi.header); // show-hide header with ease/transition ooohBoi.header.style.transition = 'all 0.3s ease-out'; // update header height on window resize ooohBoi.updateHeaderHeight = function() { ooohBoi.header_height = OB_outerHeight(ooohBoi.header); } // listen "scroll" event and decide what to do ooohBoi.checkScroll = function() { ooohBoi.cur_scroll_pos = window.scrollY || document.body.scrollTop; if (ooohBoi.cur_scroll_pos > ooohBoi.prev_scroll_pos) ooohBoi.scroll_direction = 'down'; else if (ooohBoi.cur_scroll_pos ooohBoi.header_height) { OB_addClass(ooohBoi.header, 'im-hidden'); // for styling ooohBoi.header.style.top = -1 * ooohBoi.header_height + "px"; ooohBoi.prev_scroll_direction = scroll_direction; } else if (scroll_direction === 'up') { OB_removeClass(ooohBoi.header, 'im-hidden'); ooohBoi.header.style.top = ooohBoi.header_pos.top + "px"; ooohBoi.prev_scroll_direction = scroll_direction; } } // listen "scroll" and "resize" window events window.addEventListener('scroll', ooohBoi.checkScroll); window.addEventListener('resize', ooohBoi.updateHeaderHeight); }function OB_outerHeight(el) { var height = el.offsetHeight; var style = getComputedStyle(el); height += parseInt(style.marginTop) + parseInt(style.marginBottom); return height; }function OB_addClass(el, className) { if (el.classList) el.classList.add(className); else { var current = el.className, found = false; var all = current.split(' '); for (var i = 0; i < all.length, !found; i++) found = all[i] === className; if (!found) { if (current === '') el.className = className; else el.className += ' ' + className; } } }function OB_removeClass(el, className) { if (el.classList) el.classList.remove(className); else el.className = el.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' '); }function OB_ready(fn) { if (document.readyState != 'loading') fn(); else if (document.addEventListener) document.addEventListener('DOMContentLoaded', fn); else { document.attachEvent('onreadystatechange', function() { if (document.readyState != 'loading') fn(); }); } }

Services

Discover streamlined automated solutions, cutting-edge technology, customized approach, and premium service quality.

Industrial Automation
Robotic Arm
3D Printing
Control Panel
Engineering Modelling
engineering analysis
AGV

IDEA AND INNOVATION

Efficient Solutions

We are focused on building a long-term and robust systems.

Our Supplemental

Services

Robotic Arm Accessories
Robot Maintenance
Rapid Protoyping
Education

talented individuals

with passion

Unlock your potential, shape the future, and engineer a world of innovation by joining the limitless possibilities of Automation & Robotics.