/
var
/
www
/
html
/
stengineers
/
Upload FileeE
HOME
<?php $pagetitle = "ST Engineers - About"; require 'header.php';?> <!--Start Page Header--> <section class="about-banner"> <!-- <div class="shape1 float-bob-x d-none d-md-block"><img src="assets/images/about/arrow.png" alt="#"></div> <div class="gears1 float-bob-x d-none d-md-block "><img src="assets/images/about/gears.png" alt="#"></div> --> <div class="d-flex flex-column align-items-center "> <div class="page-header__inner text-center"> <!-- <h1>S&T Engineers</h1> <h4>Making Technology Affordable </h4> --> </div> </div> </section> <!--End Page Header--> <!--Start About --> <section class="about-sec"> <div class="container"> <div class="row"> <div class="col-lg-5 position-relative d-none d-lg-block my-auto pb-4"> <img src="assets/images/about/about-bg.png" class="about-img"> <img src="assets/images/about/about.png" class="img-fluid"> </div> <div class="col-lg-6 my-auto"> <h1>Innovative Technological solutions to the Manufacturing Sector </h1> <img src="assets/images/about/about.png" class="img-fluid d-block d-lg-none"> <p>S&T group has been engaged in offering global technology products and services to our customers in India and southeast Asian countries through manufacturing, sourcing, and e-commerce businesses.</p> <h6 class="text-start"><b>S&T Engineers (P) Ltd is the trading unit of S&T Group.</b></h6> <p>With a rich history spanning over a quarter of a century, S&T Engineers (P) Ltd has established itself as the cornerstone of the Indian machine tool industry, sourcing and supplying an extensive array of metal cutting, metal forming, and EDM machines & solutions. Our robust network with global machine tool powerhouses has solidified our reputation as the most trusted and reliable machine tool suppliers in India, offering innovation, affordability, and world-class quality.</p> <h6 class="text-start"><b>Driving Technological Advancement with Global Partners</b></h6> <p>Our commitment to technological advancement is evident in our partnerships with leading international manufacturing brands such as Makino, YCM, Excetek, and more. As a multi-faceted and multi-locational company, we are not just suppliers; we are enablers of innovation, bringing cutting-edge machine tool solutions to the local market.</p> <div class="row"> <div class="col-lg-4 col-md-4 col-6 d-flex flex-column align-items-center"> <img src="assets/images/about/costumer_support.png" class="about-img1"> <h6> Nationwide Sales & Support </h6> </div> <div class="col-lg-4 col-md-4 col-6 d-flex flex-column align-items-center"> <img src="assets/images/about/automation.png" class="about-img1"> <h6>Suiting all essential machine tool needs </h6> </div> <div class="col-lg-4 col-md-4 col-6 d-flex flex-column align-items-center"> <img src="assets/images/about/technology.png" class="about-img1"> <h6> High Technology Applications </h6> </div> </div> </div> <div> <h6 class="text-start"><b>A Comprehensive Range for Diverse Needs</b></h6> <p>From conventional machinery to the most advanced CNC machines, S&T Engineers caters to a broad spectrum of industrial needs. Our product lineup includes vertical machining centers, 5-Axis machining centers, CNC Wire EDM Machines, and a vast array of machine tool accessories and consumables. </p> <h6 class="text-start"><b>Setting Industry Benchmarks with Pan-India Presence</b></h6> <p>Our deployment of advanced infrastructure facilities across India enables us to constantly raise the industry standards, ensuring that our clients receive not only the best products but also unparalleled service and support</p> <p>Embrace the future of manufacturing with S&T Engineers (P) Ltd, where we blend innovation, affordability, and world-class technology to meet the dynamic needs of India's industry.</p> </div> </div> </div> </section> <!--End About --> <!-- Start journey --> <!-- <Section class="journey-sec"> <div class="container"> <div class="row column time-pad position-relative"> <h4>Journey over 25 years</h4> <ul class="timeline"> <li class="timeline-active" ><h6>1996</h6></li> <li><h6>2003</h6></li> <li><h6>2012</h6></li> <li><h6>2015</h6></li> <li><h6>2018</h6></li> <li><h6>2021</h6></li> <li><h6>2023</h6></li> </ul> <div class="timeline-container"> <ul class="timeline-blocks"> <li> <div class="timeline-block"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/timeline-img.png" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5>Established as a very small firm. </h5> </div> </div> </div> </li> <li> <div class="timeline-block"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/timeline-img.png" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5> Tied up with Japanese manufacturer Makino as a service provider to install VMCs. </h5> </div> </div> </div> </li> <li> <div class="timeline-block"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/timeline-img.png" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5>Tied up with China Principal TEDERIC to represent their Plastic Machineries in India. </h5> </div> </div> </div> </li> <li> <div class="timeline-block"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/timeline-img.png" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5>Inaugurated our Manufacturing Unit aligned with "Make in India". Initiated a co-production venture along with EXCETEK. </h5> </div> </div> </div> </li> <li> <div class="timeline-block"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/timeline-img.png" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5>Added a new product line - WIM brand gun drilling machines.</h5> </div> </div> </div> </li> <li> <div class="timeline-block"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/timeline-img.png" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5> Conquering the 25th Year as a Successful Machine Tools Distributor. </h5> </div> </div> </div> </li> <li> <div class="timeline-block"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/timeline-img.png" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5>S&T is authorized distributors of Turkey’s Metal forming machinery manufacturer DENER MAKINA. </h5> </div> </div> </div> </li> </ul> </div> <a class="timeline-prev"><img src="assets/images/about/left-arrow.png"></a> <a class="timeline-next"><img src="assets/images/about/right-arrow.png"></a> </div> </div> </Section> --> <section class="h--timeline js-h--timeline journey-sec"> <div class="h--timeline-container"> <h4>Journey over 30 years</h4> <div class="h--timeline-dates"> <div class="h--timeline-line"> <ol> <li><a href="#0" data-date="16/01/1996" class="h--timeline-date h--timeline-date--selected"><h6>1996</h6></a></li> <li><a href="#0" data-date="28/02/1998" class="h--timeline-date"><h6>1998</h6></a></li> <li><a href="#0" data-date="20/04/2003" class="h--timeline-date"><h6>2003</h6></a></li> <li><a href="#0" data-date="20/05/2008" class="h--timeline-date"><h6>2008</h6></a></li> <li><a href="#0" data-date="09/07/2009" class="h--timeline-date"><h6>2009</h6></a></li> <li><a href="#0" data-date="30/08/2012" class="h--timeline-date"><h6>2012</h6></a></li> <li><a href="#0" data-date="15/09/2015" class="h--timeline-date"><h6>2015</h6></a></li> <li><a href="#0" data-date="01/11/2016" class="h--timeline-date"><h6>2016</h6></a></li> <li><a href="#0" data-date="10/12/2018" class="h--timeline-date"><h6>2018</h6></a></li> <li><a href="#0" data-date="19/01/2019" class="h--timeline-date"><h6>2019</h6></a></li> <li><a href="#0" data-date="03/03/2020" class="h--timeline-date"><h6>2020</h6></a></li> <li><a href="#0" data-date="10/12/2021" class="h--timeline-date"><h6>2021</h6></a></li> <li><a href="#0" data-date="19/01/2022" class="h--timeline-date"><h6>2022</h6></a></li> <li><a href="#0" data-date="03/03/2023" class="h--timeline-date"><h6>2023</h6></a></li> </ol> <span class="h--timeline-filling-line" aria-hidden="true"></span> </div> <!-- .h--timeline-line --> </div> <!-- .h--timeline-dates --> <nav class="h--timeline-navigation-container"> <ul> <li><a href="#0" class="text-replace h--timeline-navigation h--timeline-navigation--prev h--timeline-navigation--inactive">Prev</a></li> <li><a href="#0" class="text-replace h--timeline-navigation h--timeline-navigation--next">Next</a></li> </ul> </nav> </div> <!-- .h--timeline-container --> <div class="h--timeline-events"> <ol> <li class="h--timeline-event h--timeline-event--selected text-component"> <div class="h--timeline-event-content container"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/1996.jpg" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5>Establishment of S&T Engineers as a small enterprise.</h5> </div> </div> </div> </li> <li class="h--timeline-event text-component"> <div class="h--timeline-event-content container"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/1998.png" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5>Partnership with MANFORD, specialists in precision CNC Machining Centers from Taiwan, marking our entry into the world-class machine tool sector.</h5> </div> </div> </div> </li> <li class="h--timeline-event text-component"> <div class="h--timeline-event-content container"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/2003.jpg" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5>Association with MAKINO, the Japanese titan in CNC machining centers, founded by Tsunezo Makino in 1937, enhancing our portfolio with unparalleled precision</h5> </div> </div> </div> </li> <li class="h--timeline-event text-component"> <div class="h--timeline-event-content container"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/2008.jpg" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5>Collaboration with YCM (Yeong Chin Machinery), a global frontrunner in CNC machine tools from Taiwan, established in 1954, focusing on innovation and precision engineering.</h5> </div> </div> </div> </li> <li class="h--timeline-event text-component"> <div class="h--timeline-event-content container"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/2009.jpg" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5>Introduction of EXCETEK technologies, Taiwan's esteemed CNC EDM machines producer, into our offerings, known for advanced technology and precision manufacturing.</h5> </div> </div> </div> </li> <li class="h--timeline-event text-component"> <div class="h--timeline-event-content container"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/2012.jpg" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5> Addition of TEDERIC to our lineup, a Chinese innovator in injection moulding technology, renowned for high-quality machinery catering to diverse industry needs. </h5> </div> </div> </div> </li> <li class="h--timeline-event text-component"> <div class="h--timeline-event-content container"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/2015.jpg" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5> Launch of our Manufacturing Unit in alignment with "Make in India", alongside a co-production venture with EXCETEK, reinforcing our commitment to local manufacturing and global quality. </h5> </div> </div> </div> </li> <li class="h--timeline-event text-component"> <div class="h--timeline-event-content container"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/2016.jpg" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5>Introduction of BEDRA, the German expert in high-quality EDM wires since 1886, expanding our solutions for the metalworking industry.</h5> </div> </div> </div> </li> <li class="h--timeline-event text-component"> <div class="h--timeline-event-content container"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/2018.jpg" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5> Adding WIM, the German pioneer in deep hole drilling technology, to our catalog, offering precision solutions for industries worldwide. </h5> </div> </div> </div> </li> <li class="h--timeline-event text-component"> <div class="h--timeline-event-content container"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/2019.jpg" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5>Strengthening ties with YCM through a Joint Venture, emphasizing our shared commitment to technological advancement.</h5> </div> </div> </div> </li> <li class="h--timeline-event text-component"> <div class="h--timeline-event-content container"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/2020.jpg" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5>SENFENG, the Chinese leader in laser cutting machines and fiber laser technology, joins our product range, known for its innovation and quality since its inception.</h5> </div> </div> </div> </li> <li class="h--timeline-event text-component"> <div class="h--timeline-event-content container"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/2021.jpg" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5> Celebrating 30 years of success as a leading distributor of machine tools, marking a quarter-century of excellence and growth. </h5> </div> </div> </div> </li> <li class="h--timeline-event text-component"> <div class="h--timeline-event-content container"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/2022.jpg" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5> Launch of SKITEK, S&T’s proprietary Machine Tool Brand, showcasing our innovation and engineering prowess.</h5> </div> </div> </div> </li> <li class="h--timeline-event text-component"> <div class="h--timeline-event-content container"> <div class="row timeline-description"> <div class="col-lg-4 px-0"> <img src="assets/images/about/timeline-bg.png" class="black-bg1"> <img src="assets/images/about/2023.jpg" class="timeline-img"> </div> <div class="col-lg-8 bg-white"> <h5>Becoming the authorized distributor for DENER MAKINA, Turkey's acclaimed metal forming machinery manufacturer, known for quality and innovative sheet metal processing machinery.</h5> </div> </div> </div> </li> </ol> </div> <!-- .h--timeline-events --> </section> <!-- End journey --> <!-- Start Branch --> <section class="branch-sec"> <div class="container"> <div class="row"> <div class="col-lg-6 position-relative"> <h4 class="d-block d-lg-none">Nationwide Presence and Customer-Centric Services </h4> <img src="assets/images/about/map.png" class="img-fluid w-98"> <img src="assets/images/about/map-location.png" class="map-locate"> <a class="location-1" draggable="false" data-tooltip="No.60, Mahatma Gandhi Road, SIHS Colony, Neelikonampalayam, Coimbatore – 641033. "> <img src="assets/images/about/location.png" class="img-fluid"></a> <a class="location-2" draggable="false" data-tooltip="22, Trichy Rd, Vasanth Nagar, Singanallur, Tamil Nadu 641005. "> <img src="assets/images/icons/branch.png" class="img-fluid"></a> <a class="location-3" draggable="false" data-tooltip="12, 30, Pillayar Koil 4th St, Ambal Nagar, Ekkatuthangal, Chennai, Tamil Nadu 600032. "> <img src="assets/images/icons/branch.png" class="img-fluid"></a> <a class="location-4" draggable="false" data-tooltip="HIG 292, TNHB Phase 7, Bagalur Rd, Brindavan Nagar, Hosur, Tamil Nadu 635109. "> <img src="assets/images/icons/branch.png" class="img-fluid"></a> <a class="location-5" draggable="false" data-tooltip="Unit No. 220, 2nd floor, Blue Rose Industrial Estate, Western Express Hwy, Borivali East, Mumbai, Maharashtra 400066. "> <img src="assets/images/icons/branch.png" class="img-fluid"></a> <a class="location-6" draggable="false" data-tooltip="169, Block A, New Industrial Twp 3, New Industrial Township, Faridabad, Haryana 121001. "> <img src="assets/images/icons/branch.png" class="img-fluid"></a> <a class="location-7" draggable="false" data-tooltip="5-5-35/P-155, 4th Floor Manu Towers, Prashanti Nagar, IDA Kukatpally, Hyderabad, Telangana 500072. "> <img src="assets/images/icons/branch.png" class="img-fluid"></a> <a class="location-8" draggable="false" data-tooltip="1st, Main, 1st Cross Rd, Sharadhamba Nagar, Jalahalli Village, Jalahalli, Bengaluru, Karnataka 560013. "> <img src="assets/images/icons/branch.png" class="img-fluid"></a> <a class="location-9" draggable="false" data-tooltip="E 103, 1st floor, Sumel Business Park 7 NR, Cross Rd, Soni ni chali, Rakhial, Ahmedabad, Gujarat 380023. "> <img src="assets/images/icons/branch.png" class="img-fluid"></a> <a class="location-10" draggable="false" data-tooltip="B402 Scenic Acres, Vapi - Daman Main Rd, Chala, Vapi, Gujarat 396191. "> <img src="assets/images/icons/branch.png" class="img-fluid"></a> <a class="location-11" draggable="false" data-tooltip="OFFICE NO: 17, Telco RD JAI TULJE BHAVANI INDUSTRIAL PREMISES, PLOT NO:BG- 74(A, MIDC Rd, Bhosari, Pune, Maharashtra 411039. "> <img src="assets/images/icons/branch.png" class="img-fluid"></a> <a class="location-12" draggable="false" data-tooltip="APPOLO TYRES JUNCTION, 40/90/F, SECOND FLOOR, PIMCO TOWER, Eloor Rd, North Kalamassery, Ernakulam, Kerala 683104. "> <img src="assets/images/icons/branch.png" class="img-fluid"></a> <a class="location-13" draggable="false" data-tooltip="B-40, B Block, Sector 65, Noida, Uttar Pradesh 201307. "> <img src="assets/images/icons/branch.png" class="img-fluid"></a> <a class="location-14" draggable="false" data-tooltip="Stockyard 1: 79, Athipalayam Rd, Chinnavedampatti, Coimbatore, Tamil Nadu 641049. "> <img src="assets/images/icons/stock.png" class="img-fluid"></a> <a class="location-15" draggable="false" data-tooltip="Stockyard 2: 12, 30, Pillayar Koil 4th St, Ambal Nagar, Ekkatuthangal, Chennai, Tamil Nadu 600032. "> <img src="assets/images/icons/stock.png" class="img-fluid"></a> <a class="location-16" draggable="false" data-tooltip="Stockyard 3: HIG 292, TNHB Phase 7, Bagalur Rd, Brindavan Nagar, Hosur, Tamil Nadu 635109. "> <img src="assets/images/icons/stock.png" class="img-fluid"></a> <a class="location-17" draggable="false" data-tooltip="Stockyard 4: Unit No. 220, 2nd floor, Blue Rose Industrial Estate, Western Express Hwy, Borivali East, Mumbai, Maharashtra 400066. "> <img src="assets/images/icons/stock.png" class="img-fluid"></a> <a class="location-18" draggable="false" data-tooltip="Stockyard 5: 169, Block A, New Industrial Twp 3, New Industrial Township, Faridabad, Haryana 121001. "> <img src="assets/images/icons/stock.png" class="img-fluid"></a> <a class="location-19" draggable="false" data-tooltip="Stockyard 6: 5-5-35/P-155, 4th Floor Manu Towers, Prashanti Nagar, IDA Kukatpally, Hyderabad, Telangana 500072. "> <img src="assets/images/icons/stock.png" class="img-fluid"></a> </div> <div class="col-lg-6 my-auto"> <h4 class="d-none d-lg-block">Nationwide Presence and Customer-Centric Services</h4> <p>S&T Engineers boasts a remarkable team of over 900 employees, spread across 18 strategically positioned offices in major cities including Ahmedabad, Bengaluru, Chennai, Cochin, Coimbatore, Delhi (East and West), Faridabad, Gurugram, Hosur, Hyderabad, Indore, Kolkata, Ludhiana, Mumbai, Pune, Rajkot, and Vapi. This expansive network supports our ongoing growth and enhances our ability to serve a widening customer base with greater accessibility and service proximity.</p> <p>Our team of experts at S&T Engineers is not just adept at providing technical guidance; they excel in delivering application-oriented solutions tailored to meet the specific needs of our clients. Central to our customer engagement is the dedicated demonstration center located in Coimbatore. This facility serves as a tangible testament to our commitment, allowing customers to witness firsthand the superior performance and capabilities of our premier machine tools and accessories through comprehensive demonstrations.</p> <p>In addition, we offer preventive maintenance contracts, a testament to our dedication to operational excellence. These contracts are highly valued by our clientele, as they ensure the regular, precisely scheduled maintenance of equipment. This proactive approach not only enhances machine performance but also secures uninterrupted operations, ensuring our customers' projects proceed smoothly without any unforeseen hiccups.</p> <div class="row mt-4"> <div class="col-lg-3 col-md-3 col-4 border-right"><h6><span>20,000+</span> Installations</h6></div> <div class="col-lg-3 col-md-3 col-4 border-right"><h6><span>10+</span> Global Brands</h6></div> <div class="col-lg-3 col-md-3 col-4 border-right"><h6><span>18</span> Branches</h6></div> <div class="col-lg-3 col-md-3 col-4"><h6><span>6</span> <br> Dealer Outlets</h6></div> </div> </div> </div> </div> </section> <!-- End Branch --> <!-- Start Vision/Mission --> <!-- End Vision/Mission --> <!-- Start Vision/Mission --> <section class="support-one support-one--two"> <div class="container-fluid px-0"> <div class="row"> <!--Start Support One Img--> <div class="col-xl-6 col-lg-6 d-none d-lg-block"> <div class="support-one__img"> <div class="inner"> <img src="assets/images/about/vision.png" alt="#"> </div> </div> </div> <!--Start Support One Content--> <div class="col-xl-6 col-lg-6"> <div class="support-one__content"> <div class="carousel-container justify-content-center"> <div id="vertical-carousel" class="carousel slide" data-bs-ride="carousel" data-bs-interval="4000"> <!-- Carousel slide indicators --> <ol class="carousel-indicators"> <li data-bs-target="#vertical-carousel" data-bs-slide-to="0" class="active"></li> <li data-bs-target="#vertical-carousel" data-bs-slide-to="1"></li> </ol> <div class="carousel-inner"> <!-- Carousel item represents each slide --> <div class="carousel-item active"> <h5>OUR MISSION</h5> <h6></h6> <p>Delight customers with global technology products and services through manufacturing, sourcing and e-commerce business.</p> <!-- <h6><img src="assets/images/about/star.png" style="width:15px">  Excellence </h6> <h6><img src="assets/images/about/star.png" style="width:15px">  Integrity</h6> <h6><img src="assets/images/about/star.png" style="width:15px">  Learning and sharing</h6> <h6><img src="assets/images/about/star.png" style="width:15px">  Contribution to industry and society</h6> --> <!-- <p>Our Preventive Maintenance Contract are a bonus and appreciated by customers. This contract allow us to precisely</p> --> </div> <div class="carousel-item"> <h5>OUR VISION</h5> <h6> </h6> <p>To be India's most valued and globally recognized solution provider in all our endeavours.</p> <!-- <h6><img src="assets/images/about/star.png" style="width:15px">  Excellence </h6> <h6><img src="assets/images/about/star.png" style="width:15px">  Integrity</h6> <h6><img src="assets/images/about/star.png" style="width:15px">  Learning and sharing</h6> <h6><img src="assets/images/about/star.png" style="width:15px">  Contribution to industry and society</h6> --> <!-- <p>Our Preventive Maintenance Contract are a bonus and appreciated by customers. This contract allow us to precisely</p> --> </div> </div> </div> <!-- Carousel buttons --> </div> </div> </div> <!--End Support One Content--> </div> </div> </section> <!--End Vision/Mission --> <!-- End Core Values --> <section Class="corevalue-sec"> <div class="container"> <div class="row"> <h5>CORE VALUES</h5> </div> <div class="row mx-auto"> <div class="col-lg-4 col-6 box"> <img src="assets/images/icons/excellence.png" class="value-img"> <h6> Commitment to Excellence</h6> <p> Our vision is to become India's premier and globally recognized solutions provider, setting industry standards for quality and innovation</p> </div> <div class="col-lg-4 col-6 box"> <img src="assets/images/icons/approach.png" class="value-img"> <h6>Customer-Centric Approach</h6> <p> We place customer needs at the core of our operations, adapting swiftly to evolving demands to ensure satisfaction.</p> </div> <div class="col-lg-4 col-6"> <img src="assets/images/icons/innovation.png" class="value-img"> <h6> Innovation-Driven</h6> <p>We are committed to infusing global technology throughout India, elevating the manufacturing sector with groundbreaking solutions.</p> </div> <div class="col-lg-4 col-6 box d-block d-lg-none"> <img src="assets/images/icons/people.png" class="value-img"> <h6>People-Focused</h6> <p> Our success is powered by our people. We foster an environment that values employees' skills and well-being as crucial to our achievement</p> </div> <!-- <div class="col-lg-3 col-6 "> <img src="assets/images/about/value.png" class="value-img"> <h6>Learning and sharing</h6> <p>There are many variations of passages of Lorem Ipsum available,</p> </div> --> </div> <div class="row mx-auto"> <div class="col-lg-4 d-none d-lg-block"> <div class="box-1"></div> </div> <div class="col-lg-4 d-none d-lg-block"> <div class="box-1"></div> </div> <div class="col-lg-4 d-none d-lg-block"> <div class="box-1"></div> </div> <!-- <div class="col-lg-3 d-none d-lg-block"> <div class="box-1"></div> </div> --> </div> <div class="row mx-auto"> <div class="col-lg-4 col-6 box d-none d-lg-block"> <img src="assets/images/icons/people.png" class="value-img"> <h6>People-Centric</h6> <p> Our success is powered by our people. We foster an environment that values employees' skills and well-being as crucial to our achievement</p> </div> <div class="col-lg-4 col-6 box"> <img src="assets/images/icons/tech.png" class="value-img"> <h6>Technological Diversity</h6> <p> From traditional to state-of-the-art CNC machinery, our extensive range meets all machining demands, enhancing your business capabilities. </p> </div> <div class="col-lg-4 col-6 "> <img src="assets/images/icons/universal.png" class="value-img"> <h6>Universal Tech Access</h6> <p> Our mission is to spread advanced global technology across India, making cutting-edge solutions accessible to all.</p> </div> <!-- <div class="col-lg-3 col-6 "> <img src="assets/images/about/value.png" class="value-img"> <h6>Learning and sharing</h6> <p>There are many variations of passages of Lorem Ipsum available,</p> </div> --> </div> </div> </section> <!-- End Core Values --> <!-- Start Founder Message --> <section class="founder-sec"> <div class="container"> <div class="row"> <div class="col-lg-5 col-md-6 offset-lg-1 d-flex flex-column align-items-center"> <img src="assets/images/about/founder.png"> </div> <div class="col-lg-5 col-md-6 my-auto"> <h4>FOUNDER'S MESSAGE</h4> <p>From humble beginnings in Coimbatore, I, D. Shanmugasundaram, steered S&T Group to become a leading force in India's machine tool industry.</p> <p>Reliability isn't just a word we throw around at S&T; it's the engine that drives our every innovation and partnership. Back in 1996, with grit and a shoestring budget, I planted the seed of this vision, and watch it blossom into a nationwide network today.</p> <p>This journey, friends, is far from over. With each gear our machines cut, each spindle that hums, we inch closer to a future where Indian-made products power not just our nation, but the world. That's the dream that keeps me going, the fire that fuels my unwavering commitment to quality and reliability.</p> <h5>Mr. D. Shanmugasundaram</h5> <h6>Managing Director</h6> </div> </div> </div> </section> <!-- End Founder Message --> <!-- Start Infrastructure --> <!-- <section class="infra-sec"> <div class="container"> <div class="row position-relative"> <div class="col-lg-6 col-md-6 "> <img src="assets/images/about/infra-1.png" class="infra-img1"> <img src="assets/images/about/infra-2.png" class="infra-img2"> </div> <div class="col-lg-6 col-md-6 my-auto"> <h5>INFRASTRUCTURE</h5> <p>Well established network with PAN India presence </p> <p><b>6 Stockyards and Tech Centers </b></p> <p><b>18 Branch Offices </b></p> <p><b>9 Dealer Networks </b></p> <p>Ahmedabad | Ahmed Nagar | Aurangabad | Dehradun | Haridwar | Kolhapur | Rajkot | Roorkee | Nasik | Ludhiana </p> </div> </div> </div> </section> --> <!-- End Infrastructure --> <!-- Start Infrastructure --> <section class="infra "> <div class="container"> <div class="row col-xl-10 col-lg-10 mx-auto"> <h5>INFRASTRUCTURE</h5> <p>Well established network with PAN India presence </p> <div class="cta-one__inner infra-one"> <div class="col border-right border-bottom"> <img src="assets/images/about/stock.png" alt=""> <p>6 <br>Stockyards and Tech Centers</p> </div> <div class="col border-right border-bottom"> <img src="assets/images/about/building.png" alt=""> <p>18 <br> Branch Offices</p> </div> <div class="col"> <img src="assets/images/about/dealer.png" alt=""> <p>6 <br> Dealer Networks</p> </div> </div> </div> </div> </section> <!-- End Infrastructure --> <?php require 'footer.php';?> <!---------------- Timeline slider ----------------> <script> (function() { // Swipe Content Plugin - by CodyHouse.co // https://codyhouse.co/ds/components/info/swipe-content var SwipeContent = function(element) { this.element = element; this.delta = [false, false]; this.dragging = false; this.intervalId = false; initSwipeContent(this); }; function initSwipeContent(content) { content.element.addEventListener('mousedown', handleEvent.bind(content)); content.element.addEventListener('touchstart', handleEvent.bind(content)); }; function initDragging(content) { //add event listeners content.element.addEventListener('mousemove', handleEvent.bind(content)); content.element.addEventListener('touchmove', handleEvent.bind(content)); content.element.addEventListener('mouseup', handleEvent.bind(content)); content.element.addEventListener('mouseleave', handleEvent.bind(content)); content.element.addEventListener('touchend', handleEvent.bind(content)); }; function cancelDragging(content) { //remove event listeners if(content.intervalId) { (!window.requestAnimationFrame) ? clearInterval(content.intervalId) : window.cancelAnimationFrame(content.intervalId); content.intervalId = false; } content.element.removeEventListener('mousemove', handleEvent.bind(content)); content.element.removeEventListener('touchmove', handleEvent.bind(content)); content.element.removeEventListener('mouseup', handleEvent.bind(content)); content.element.removeEventListener('mouseleave', handleEvent.bind(content)); content.element.removeEventListener('touchend', handleEvent.bind(content)); }; function handleEvent(event) { switch(event.type) { case 'mousedown': case 'touchstart': startDrag(this, event); break; case 'mousemove': case 'touchmove': drag(this, event); break; case 'mouseup': case 'mouseleave': case 'touchend': endDrag(this, event); break; } }; function startDrag(content, event) { content.dragging = true; // listen to drag movements initDragging(content); content.delta = [parseInt(unify(event).clientX), parseInt(unify(event).clientY)]; // emit drag start event emitSwipeEvents(content, 'dragStart', content.delta); }; function endDrag(content, event) { cancelDragging(content); // credits: https://css-tricks.com/simple-swipe-with-vanilla-javascript/ var dx = parseInt(unify(event).clientX), dy = parseInt(unify(event).clientY); // check if there was a left/right swipe if(content.delta && (content.delta[0] || content.delta[0] === 0)) { var s = Math.sign(dx - content.delta[0]); if(Math.abs(dx - content.delta[0]) > 30) { (s < 0) ? emitSwipeEvents(content, 'swipeLeft', [dx, dy]) : emitSwipeEvents(content, 'swipeRight', [dx, dy]); } content.delta[0] = false; } // check if there was a top/bottom swipe if(content.delta && (content.delta[1] || content.delta[1] === 0)) { var y = Math.sign(dy - content.delta[1]); if(Math.abs(dy - content.delta[1]) > 30) { (y < 0) ? emitSwipeEvents(content, 'swipeUp', [dx, dy]) : emitSwipeEvents(content, 'swipeDown', [dx, dy]); } content.delta[1] = false; } // emit drag end event emitSwipeEvents(content, 'dragEnd', [dx, dy]); content.dragging = false; }; function drag(content, event) { if(!content.dragging) return; // emit dragging event with coordinates (!window.requestAnimationFrame) ? content.intervalId = setTimeout(function(){emitDrag.bind(content, event);}, 250) : content.intervalId = window.requestAnimationFrame(emitDrag.bind(content, event)); }; function emitDrag(event) { emitSwipeEvents(this, 'dragging', [parseInt(unify(event).clientX), parseInt(unify(event).clientY)]); }; function unify(event) { // unify mouse and touch events return event.changedTouches ? event.changedTouches[0] : event; }; function emitSwipeEvents(content, eventName, detail) { // emit event with coordinates var event = new CustomEvent(eventName, {detail: {x: detail[0], y: detail[1]}}); content.element.dispatchEvent(event); }; window.SwipeContent = SwipeContent; //initialize the SwipeContent objects var swipe = document.getElementsByClassName('js-swipe-content'); if( swipe.length > 0 ) { for( var i = 0; i < swipe.length; i++) { (function(i){new SwipeContent(swipe[i]);})(i); } } }()); // Utility function function Util () {}; /* class manipulation functions */ Util.hasClass = function(el, className) { if (el.classList) return el.classList.contains(className); else return !!el.className.match(new RegExp('(\\s|^)' + className + '(\\s|$)')); }; Util.addClass = function(el, className) { var classList = className.split(' '); if (el.classList) el.classList.add(classList[0]); else if (!Util.hasClass(el, classList[0])) el.className += " " + classList[0]; if (classList.length > 1) Util.addClass(el, classList.slice(1).join(' ')); }; Util.removeClass = function(el, className) { var classList = className.split(' '); if (el.classList) el.classList.remove(classList[0]); else if(Util.hasClass(el, classList[0])) { var reg = new RegExp('(\\s|^)' + classList[0] + '(\\s|$)'); el.className=el.className.replace(reg, ' '); } if (classList.length > 1) Util.removeClass(el, classList.slice(1).join(' ')); }; Util.toggleClass = function(el, className, bool) { if(bool) Util.addClass(el, className); else Util.removeClass(el, className); }; Util.setAttributes = function(el, attrs) { for(var key in attrs) { el.setAttribute(key, attrs[key]); } }; /* DOM manipulation */ Util.getChildrenByClassName = function(el, className) { var children = el.children, childrenByClass = []; for (var i = 0; i < el.children.length; i++) { if (Util.hasClass(el.children[i], className)) childrenByClass.push(el.children[i]); } return childrenByClass; }; /* Animate height of an element */ Util.setHeight = function(start, to, element, duration, cb) { var change = to - start, currentTime = null; var animateHeight = function(timestamp){ if (!currentTime) currentTime = timestamp; var progress = timestamp - currentTime; var val = parseInt((progress/duration)*change + start); element.setAttribute("style", "height:"+val+"px;"); if(progress < duration) { window.requestAnimationFrame(animateHeight); } else { cb(); } }; //set the height of the element before starting animation -> fix bug on Safari element.setAttribute("style", "height:"+start+"px;"); window.requestAnimationFrame(animateHeight); }; /* Smooth Scroll */ Util.scrollTo = function(final, duration, cb) { var start = window.scrollY || document.documentElement.scrollTop, currentTime = null; var animateScroll = function(timestamp){ if (!currentTime) currentTime = timestamp; var progress = timestamp - currentTime; if(progress > duration) progress = duration; var val = Math.easeInOutQuad(progress, start, final-start, duration); window.scrollTo(0, val); if(progress < duration) { window.requestAnimationFrame(animateScroll); } else { cb && cb(); } }; window.requestAnimationFrame(animateScroll); }; /* Focus utility classes */ //Move focus to an element Util.moveFocus = function (element) { if( !element ) element = document.getElementsByTagName("body")[0]; element.focus(); if (document.activeElement !== element) { element.setAttribute('tabindex','-1'); element.focus(); } }; /* Misc */ Util.getIndexInArray = function(array, el) { return Array.prototype.indexOf.call(array, el); }; Util.cssSupports = function(property, value) { if('CSS' in window) { return CSS.supports(property, value); } else { var jsProperty = property.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase();}); return jsProperty in document.body.style; } }; /* Polyfills */ //Closest() method if (!Element.prototype.matches) { Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; } if (!Element.prototype.closest) { Element.prototype.closest = function(s) { var el = this; if (!document.documentElement.contains(el)) return null; do { if (el.matches(s)) return el; el = el.parentElement || el.parentNode; } while (el !== null && el.nodeType === 1); return null; }; } //Custom Event() constructor if ( typeof window.CustomEvent !== "function" ) { function CustomEvent ( event, params ) { params = params || { bubbles: false, cancelable: false, detail: undefined }; var evt = document.createEvent( 'CustomEvent' ); evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail ); return evt; } CustomEvent.prototype = window.Event.prototype; window.CustomEvent = CustomEvent; } /* Animation curves */ Math.easeInOutQuad = function (t, b, c, d) { t /= d/2; if (t < 1) return c/2*t*t + b; t--; return -c/2 * (t*(t-2) - 1) + b; }; /* Main js */ /* -----------------*/ (function() { // Horizontal Timeline - by CodyHouse.co var HorizontalTimeline = function(element) { this.element = element; this.datesContainer = this.element.getElementsByClassName('h--timeline-dates')[0]; this.line = this.datesContainer.getElementsByClassName('h--timeline-line')[0]; // grey line in the top timeline section this.fillingLine = this.datesContainer.getElementsByClassName('h--timeline-filling-line')[0]; // green filling line in the top timeline section this.date = this.line.getElementsByClassName('h--timeline-date'); this.selectedDate = this.line.getElementsByClassName('h--timeline-date--selected')[0]; this.dateValues = parseDate(this); this.minLapse = calcMinLapse(this); this.navigation = this.element.getElementsByClassName('h--timeline-navigation'); this.contentWrapper = this.element.getElementsByClassName('h--timeline-events')[0]; this.content = this.contentWrapper.getElementsByClassName('h--timeline-event'); this.eventsMinDistance = 150; // min distance between two consecutive events (in px) this.eventsMaxDistance = 0; // max distance between two consecutive events (in px) this.translate = 0; // this will be used to store the translate value of this.line this.lineLength = 0; //total length of this.line // store index of selected and previous selected dates this.oldDateIndex = Util.getIndexInArray(this.date, this.selectedDate); this.newDateIndex = this.oldDateIndex; initTimeline(this); initEvents(this); }; function initTimeline(timeline) { // set dates left position var left = 0; for (var i = 0; i < timeline.dateValues.length; i++) { var j = (i == 0) ? 0 : i - 1; var distance = daydiff(timeline.dateValues[j], timeline.dateValues[i]), distanceNorm = (Math.round(distance/timeline.minLapse) + 2)*timeline.eventsMinDistance, containerWidth = timeline.datesContainer.offsetWidth, distanceCorrecture = 0; if(distanceNorm < timeline.eventsMinDistance) { distanceNorm = timeline.eventsMaxDistance; } else if(distanceNorm > timeline.eventsMaxDistance) { distanceNorm = timeline.eventsMinDistance; } left = left + distanceNorm; timeline.date[i].setAttribute('style', 'left:' + left+'px'); } // set line/filling line dimensions timeline.line.style.width = (left + timeline.eventsMinDistance)+distanceCorrecture+'px'; timeline.lineLength = left + timeline.eventsMinDistance+distanceCorrecture; // add 100px more to line/filling line if container bigger then timeline lineLength if(containerWidth > timeline.lineLength) { timeline.line.style.width = (left + timeline.eventsMinDistance)+distanceCorrecture+'px'; timeline.lineLength = timeline.lineLength + distanceCorrecture; } // reveal timeline Util.addClass(timeline.element, 'h--timeline--loaded'); selectNewDate(timeline, timeline.selectedDate); resetTimelinePosition(timeline, 'next'); }; function initEvents(timeline) { var self = timeline; // deaktivate the buttons deaktivateNavigationButtons(self); // click on arrow navigation self.navigation[0].addEventListener('click', function(event){ event.preventDefault(); translateTimeline(self, 'prev'); deaktivateNavigationButtons(self); }); self.navigation[1].addEventListener('click', function(event){ event.preventDefault(); translateTimeline(self, 'next'); deaktivateNavigationButtons(self); }); //swipe on timeline new SwipeContent(self.datesContainer); self.datesContainer.addEventListener('swipeLeft', function(event){ translateTimeline(self, 'next'); }); self.datesContainer.addEventListener('swipeRight', function(event){ translateTimeline(self, 'prev'); }); //select a new event for(var i = 0; i < self.date.length; i++) { (function(i){ self.date[i].addEventListener('click', function(event){ event.preventDefault(); selectNewDate(self, event.target); }); self.content[i].addEventListener('animationend', function(event){ if( i == self.newDateIndex && self.newDateIndex != self.oldDateIndex) resetAnimation(self); }); })(i); } }; function updateFilling(timeline) { // update fillingLine scale value var dateStyle = window.getComputedStyle(timeline.selectedDate, null), left = dateStyle.getPropertyValue("left"), width = dateStyle.getPropertyValue("width"); left = Number(left.replace('px', '')) + Number(width.replace('px', ''))/2; timeline.fillingLine.style.transform = 'scaleX('+(left/timeline.lineLength)+')'; }; function translateTimeline(timeline, direction) { // translate timeline (and date elements) var containerWidth = timeline.datesContainer.offsetWidth; if(direction) { timeline.translate = (direction == 'next') ? timeline.translate - containerWidth + timeline.eventsMinDistance : timeline.translate + containerWidth - timeline.eventsMinDistance; } if( 0 - timeline.translate > timeline.lineLength - containerWidth ) timeline.translate = containerWidth - timeline.lineLength; if( timeline.translate > 0 ) timeline.translate = 0; timeline.line.style.transform = 'translateX('+timeline.translate+'px)'; // update the navigation items status (toggle inactive class) (timeline.translate == 0 ) ? Util.addClass(timeline.navigation[0], 'h--timeline-navigation--inactive') : Util.removeClass(timeline.navigation[0], 'h--timeline-navigation--inactive'); (timeline.translate == containerWidth - timeline.lineLength ) ? Util.addClass(timeline.navigation[1], 'h--timeline-navigation--inactive') : Util.removeClass(timeline.navigation[1], 'h--timeline-navigation--inactive'); }; function deaktivateNavigationButtons(timeline) { var containerWidth = timeline.datesContainer.offsetWidth; // deaktivate next button if container bigger then timeline lineLength if(containerWidth >= timeline.lineLength) { Util.addClass(timeline.navigation[0], 'h--timeline-navigation--inactive'); Util.addClass(timeline.navigation[1], 'h--timeline-navigation--inactive'); } }; function selectNewDate(timeline, target) { // ned date has been selected -> update timeline timeline.newDateIndex = Util.getIndexInArray(timeline.date, target); timeline.oldDateIndex = Util.getIndexInArray(timeline.date, timeline.selectedDate); Util.removeClass(timeline.selectedDate, 'h--timeline-date--selected'); Util.addClass(timeline.date[timeline.newDateIndex], 'h--timeline-date--selected'); timeline.selectedDate = timeline.date[timeline.newDateIndex]; updateOlderEvents(timeline); updateVisibleContent(timeline); updateFilling(timeline); }; function updateOlderEvents(timeline) { // update older events style for(var i = 0; i < timeline.date.length; i++) { (i < timeline.newDateIndex) ? Util.addClass(timeline.date[i], 'h--timeline-date--older-event') : Util.removeClass(timeline.date[i], 'h--timeline-date--older-event'); } }; function updateVisibleContent(timeline) { // show content of new selected date if (timeline.newDateIndex > timeline.oldDateIndex) { var classEntering = 'h--timeline-event--selected h--timeline-event--enter-right', classLeaving = 'h--timeline-event--leave-left'; } else if(timeline.newDateIndex < timeline.oldDateIndex) { var classEntering = 'h--timeline-event--selected h--timeline-event--enter-left', classLeaving = 'h--timeline-event--leave-right'; } else { var classEntering = 'h--timeline-event--selected', classLeaving = ''; } Util.addClass(timeline.content[timeline.newDateIndex], classEntering); if (timeline.newDateIndex != timeline.oldDateIndex) { Util.removeClass(timeline.content[timeline.oldDateIndex], 'h--timeline-event--selected'); Util.addClass(timeline.content[timeline.oldDateIndex], classLeaving); //timeline.contentWrapper.style.height = timeline.content[timeline.newDateIndex].offsetHeight + 'px'; } }; function resetAnimation(timeline) { // reset content classes when entering animation is over //timeline.contentWrapper.style.height = null; Util.removeClass(timeline.content[timeline.newDateIndex], 'h--timeline-event--enter-right h--timeline-event--enter-left'); Util.removeClass(timeline.content[timeline.oldDateIndex], 'h--timeline-event--leave-right h--timeline-event--leave-left'); }; function keyNavigateTimeline(timeline, direction) { // navigate the timeline using the keyboard var newIndex = (direction == 'next') ? timeline.newDateIndex + 1 : timeline.newDateIndex - 1; if(newIndex < 0 || newIndex >= timeline.date.length) return; selectNewDate(timeline, timeline.date[newIndex]); resetTimelinePosition(timeline, direction); }; function resetTimelinePosition(timeline, direction) { //translate timeline according to new selected event position var eventStyle = window.getComputedStyle(timeline.selectedDate, null), eventLeft = Number(eventStyle.getPropertyValue('left').replace('px', '')), timelineWidth = timeline.datesContainer.offsetWidth; if( (direction == 'next' && eventLeft >= timelineWidth - timeline.translate) || (direction == 'prev' && eventLeft <= - timeline.translate) ) { timeline.translate = timelineWidth/2 - eventLeft; translateTimeline(timeline, false); } }; function parseDate(timeline) { // get timestamp value for each date var dateArrays = []; for(var i = 0; i < timeline.date.length; i++) { var singleDate = timeline.date[i].getAttribute('data-date'), dateComp = singleDate.split('T'); if( dateComp.length > 1 ) { //both DD/MM/YEAR and time are provided var dayComp = dateComp[0].split('/'), timeComp = dateComp[1].split(':'); } else if( dateComp[0].indexOf(':') >=0 ) { //only time is provide var dayComp = ["2000", "0", "0"], timeComp = dateComp[0].split(':'); } else { //only DD/MM/YEAR var dayComp = dateComp[0].split('/'), timeComp = ["0", "0"]; } var newDate = new Date(dayComp[2], dayComp[1]-1, dayComp[0], timeComp[0], timeComp[1]); dateArrays.push(newDate); } return dateArrays; }; function calcMinLapse(timeline) { // determine the minimum distance among events var dateDistances = []; for(var i = 1; i < timeline.dateValues.length; i++) { var distance = daydiff(timeline.dateValues[i-1], timeline.dateValues[i]); if(distance > 0) dateDistances.push(distance); } return (dateDistances.length > 0 ) ? Math.min.apply(null, dateDistances) : 86400000; }; function daydiff(first, second) { // time distance between events return Math.round((second-first)); }; window.HorizontalTimeline = HorizontalTimeline; var horizontalTimeline = document.getElementsByClassName('js-h--timeline'), horizontalTimelineTimelineArray = []; if(horizontalTimeline.length > 0) { for(var i = 0; i < horizontalTimeline.length; i++) { horizontalTimelineTimelineArray.push(new HorizontalTimeline(horizontalTimeline[i])); } // navigate the timeline when inside the viewport using the keyboard document.addEventListener('keydown', function(event){ if( (event.keyCode && event.keyCode == 39) || ( event.key && event.key.toLowerCase() == 'arrowright') ) { updateHorizontalTimeline('next'); // move to next event } else if((event.keyCode && event.keyCode == 37) || ( event.key && event.key.toLowerCase() == 'arrowleft')) { updateHorizontalTimeline('prev'); // move to prev event } }); }; function updateHorizontalTimeline(direction) { for(var i = 0; i < horizontalTimelineTimelineArray.length; i++) { if(elementInViewport(horizontalTimeline[i])) keyNavigateTimeline(horizontalTimelineTimelineArray[i], direction); } }; /* How to tell if a DOM element is visible in the current viewport? http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport */ function elementInViewport(el) { var top = el.offsetTop; var left = el.offsetLeft; var width = el.offsetWidth; var height = el.offsetHeight; while(el.offsetParent) { el = el.offsetParent; top += el.offsetTop; left += el.offsetLeft; } return ( top < (window.pageYOffset + window.innerHeight) && left < (window.pageXOffset + window.innerWidth) && (top + height) > window.pageYOffset && (left + width) > window.pageXOffset ); } }()); </script>