diff --git a/assets/css/solution.css b/assets/css/solution.css index 7c347e3..20639b7 100644 --- a/assets/css/solution.css +++ b/assets/css/solution.css @@ -456,6 +456,7 @@ .arch-grid-item { background: rgba(30, 41, 59, 0.8); + -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border: 1px solid rgba(71, 85, 105, 0.5); border-radius: 16px; @@ -519,6 +520,7 @@ border-radius: 16px; padding: 10px ; border: 1px solid rgba(71, 85, 105, 0.5); + -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: 0 20px 60px -20px rgba(0, 0, 0, 0.3); display: flex; diff --git a/assets/css/style.css b/assets/css/style.css index bc65d78..9c6c281 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -4679,6 +4679,7 @@ color:#ffffff; box-shadow: -1px 3px 6px rgb(5 99 241 / 67%); border-radius: 30px; background: rgba(16, 119, 255, 0.918); + -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transform: translateY(-4px); } @@ -7730,16 +7731,18 @@ color:#ffffff; display: flex; flex-direction: column; position: relative; + } .product-card .card-header { display: flex; justify-content: space-between; - align-items: center; + align-items:top; + height: 2em; margin-bottom: 12px; } .product-card .card-header h4 { margin: 0; - font-size: 17px; + font-size: 16px; color: #102541; font-weight: 600; white-space: normal; @@ -7761,7 +7764,7 @@ color:#ffffff; color: #666; line-height: 1.6; display: -webkit-box; - -webkit-line-clamp: 3; + -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; @@ -7986,3 +7989,76 @@ color:#ffffff; color: #23527c; text-decoration: none; } + +/* 客户案例详情页项目 Tab */ +.case-project-switcher { + display: flex; + flex-wrap: wrap; + gap: 14px; + margin: 40px 0 30px; + padding-bottom: 18px; + border-bottom: 1px solid #dbe6f3; +} + +.case-project-tab { + border: 0; + border-radius: 16px; + padding: 14px 22px; + background: #f2f7ff; + color: #39526d; + font-size: 15px; + font-weight: 600; + line-height: 1.4; + transition: background-color 0.25s ease, color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease; +} + +.case-project-tab:hover, +.case-project-tab:focus { + background: #e3efff; + color: #173f73; + outline: none; +} + +.case-project-tab.is-active { + background: linear-gradient(135deg, #0b63ce 0%, #1ba0ff 100%); + color: #ffffff; + box-shadow: 0 12px 24px rgba(11, 99, 206, 0.2); +} + +.case-project-pane { + display: none; +} + +.case-project-pane.is-active { + display: block; + animation: caseProjectFadeIn 0.25s ease; +} + +.case-project-pane .project-single-content { + margin-bottom: 24px; +} + +@keyframes caseProjectFadeIn { + from { + opacity: 0; + transform: translateY(8px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +@media (max-width: 991px) { + .case-project-switcher { + margin-top: 30px; + } +} + +@media (max-width: 767px) { + .case-project-tab { + width: 100%; + text-align: left; + } +} diff --git a/assets/css/timeline.css b/assets/css/timeline.css index 862cbdc..113b0d3 100644 --- a/assets/css/timeline.css +++ b/assets/css/timeline.css @@ -241,7 +241,7 @@ background: linear-gradient(90deg, rgba(20, 129, 255, 0.08) 0%, transparent 100%); } -.timeline-container:has(.auto-expanded) .timeline-item:not(.auto-expanded) { +.timeline-container.has-auto-expanded .timeline-item:not(.auto-expanded) { opacity: 0.4; } diff --git a/assets/js/classiccase-project-tabs.js b/assets/js/classiccase-project-tabs.js new file mode 100644 index 0000000..004c7df --- /dev/null +++ b/assets/js/classiccase-project-tabs.js @@ -0,0 +1,52 @@ +document.addEventListener("DOMContentLoaded", function() { + var tabGroups = document.querySelectorAll("[data-case-tabs]"); + + Array.prototype.forEach.call(tabGroups, function(group) { + var buttons = group.querySelectorAll("[data-case-tab]"); + var panes = group.querySelectorAll("[data-case-pane]"); + var params = new URLSearchParams(window.location.search); + var requestedTab = params.get("tab"); + var defaultTab = group.getAttribute("data-default-tab"); + var initialTab = requestedTab || defaultTab; + + function activateTab(tabName, updateUrl) { + var hasMatch = false; + + Array.prototype.forEach.call(buttons, function(button) { + var isActive = button.getAttribute("data-case-tab") === tabName; + button.classList.toggle("is-active", isActive); + button.setAttribute("aria-selected", isActive ? "true" : "false"); + button.setAttribute("tabindex", isActive ? "0" : "-1"); + if (isActive) { + hasMatch = true; + } + }); + + Array.prototype.forEach.call(panes, function(pane) { + var isActive = pane.getAttribute("data-case-pane") === tabName; + pane.classList.toggle("is-active", isActive); + pane.hidden = !isActive; + }); + + if (!hasMatch) { + if (defaultTab && defaultTab !== tabName) { + activateTab(defaultTab, updateUrl); + } + return; + } + + if (updateUrl) { + params.set("tab", tabName); + window.history.replaceState({}, "", window.location.pathname + "?" + params.toString() + window.location.hash); + } + } + + Array.prototype.forEach.call(buttons, function(button) { + button.addEventListener("click", function() { + activateTab(button.getAttribute("data-case-tab"), true); + }); + }); + + activateTab(initialTab, Boolean(requestedTab)); + }); +}); diff --git a/assets/js/map3d-loader.js b/assets/js/map3d-loader.js new file mode 100644 index 0000000..eacb845 --- /dev/null +++ b/assets/js/map3d-loader.js @@ -0,0 +1,47 @@ +(function () { + "use strict"; + + function supportsModuleScripts() { + var script = document.createElement("script"); + return "noModule" in script; + } + + function supportsWebGL() { + try { + var canvas = document.createElement("canvas"); + return !!(window.WebGLRenderingContext && (canvas.getContext("webgl") || canvas.getContext("experimental-webgl"))); + } catch (err) { + return false; + } + } + + function bootstrapMapModule() { + var map = document.getElementById("map"); + var script; + + if (!map || map.getAttribute("data-map-module-loaded") === "true") { + return; + } + + if (!supportsModuleScripts() || !supportsWebGL() || typeof Promise === "undefined" || typeof fetch === "undefined") { + return; + } + + map.setAttribute("data-map-module-loaded", "true"); + + script = document.createElement("script"); + script.type = "module"; + script.src = "assets/js/map3d.js"; + script.onerror = function () { + map.removeAttribute("data-map-module-loaded"); + }; + + document.body.appendChild(script); + } + + if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", bootstrapMapModule); + } else { + bootstrapMapModule(); + } +}()); diff --git a/assets/js/map3d.js b/assets/js/map3d.js index 645ea2f..fc3abfd 100644 --- a/assets/js/map3d.js +++ b/assets/js/map3d.js @@ -74,6 +74,8 @@ async function initMap3D(geoDataPromise = null, threeJSPromise = null) { const labelRenderer = new CSS2DRenderer(); labelRenderer.domElement.style.position = "absolute"; labelRenderer.domElement.style.top = "0px"; + labelRenderer.domElement.style.left = "0px"; + labelRenderer.domElement.style.zIndex = "3"; labelRenderer.domElement.style.pointerEvents = "none"; labelRenderer.setSize(container.clientWidth, container.clientHeight); container.appendChild(labelRenderer.domElement); @@ -81,6 +83,8 @@ async function initMap3D(geoDataPromise = null, threeJSPromise = null) { const renderer = new THREE.WebGLRenderer({ alpha: true, antialias: true }); renderer.setSize(container.clientWidth, container.clientHeight); renderer.setPixelRatio(window.devicePixelRatio || 1); + renderer.domElement.style.position = "relative"; + renderer.domElement.style.zIndex = "2"; container.appendChild(renderer.domElement); const controls = new OrbitControls(camera, renderer.domElement); @@ -95,6 +99,7 @@ async function initMap3D(geoDataPromise = null, threeJSPromise = null) { const tooltip = document.createElement("div"); tooltip.style.cssText = "position:absolute;padding:6px 10px;background:rgba(24,118,242,0.92);color:#fff;font-size:13px;border-radius:6px;pointer-events:none;box-shadow:0 2px 6px rgba(0,0,0,0.25);display:none;"; + tooltip.style.zIndex = "4"; container.appendChild(tooltip); const animate = () => { @@ -372,6 +377,7 @@ async function initMap3D(geoDataPromise = null, threeJSPromise = null) { const map = createMap(data, 0.05); map.add(createPulseRings(data, 0.05)); scene.add(map); + container.classList.add("map-enhanced-ready"); } catch (err) { console.error("Failed to load map data:", err); } diff --git a/assets/js/timeline.js b/assets/js/timeline.js index 43a423c..95a1e4d 100644 --- a/assets/js/timeline.js +++ b/assets/js/timeline.js @@ -6,72 +6,104 @@ (function() { 'use strict'; - // 等待DOM加载完成 document.addEventListener('DOMContentLoaded', initTimeline); + function forEachNode(list, callback) { + Array.prototype.forEach.call(list, callback); + } + + function supportsSmoothScroll() { + return 'scrollBehavior' in document.documentElement.style; + } + function initTimeline() { - const container = document.querySelector('.timeline-container'); + var container = document.querySelector('.timeline-container'); if (!container) return; - const items = container.querySelectorAll('.timeline-item'); + var items = container.querySelectorAll('.timeline-item'); if (!items.length) return; - // 入场动画 - 使用 Intersection Observer - const observerOptions = { + var hasIntersectionObserver = 'IntersectionObserver' in window; + var touchStartX = null; + var scrollLeft = null; + var isDragging = false; + var startX; + var dragScrollLeft; + var currentIndex = 0; + var autoPlayIndex = 0; + var autoPlayTimer = null; + var isUserInteracting = false; + var interactionTimer = null; + var autoPlayInterval = 3000; + var pauseAfterInteraction = 5000; + var observerOptions = { threshold: 0.1, rootMargin: '0px 0px -50px 0px' }; - const observer = new IntersectionObserver((entries) => { - entries.forEach(entry => { - if (entry.isIntersecting) { - animateItems(); - observer.unobserve(entry.target); - } + function updateExpandedState(active) { + if (active) { + container.classList.add('has-auto-expanded'); + } else { + container.classList.remove('has-auto-expanded'); + } + } + + function clearExpandedItems() { + forEachNode(items, function(item) { + item.classList.remove('auto-expanded'); }); - }, observerOptions); + updateExpandedState(false); + } - observer.observe(container); - - // 节点逐个入场动画 - function animateItems() { - items.forEach((item, index) => { - setTimeout(() => { + function animateItems(useDelay) { + forEachNode(items, function(item, index) { + var delay = useDelay ? index * 80 : 0; + setTimeout(function() { item.style.opacity = '1'; item.style.transform = 'translateY(0)'; - }, index * 80); + }, delay); }); } - // 初始化节点样式(用于动画) - items.forEach(item => { + forEachNode(items, function(item) { item.style.opacity = '0'; item.style.transform = 'translateY(20px)'; item.style.transition = 'opacity 0.5s ease, transform 0.5s ease, flex 0.5s cubic-bezier(0.25, 0.1, 0.25, 1), background 0.5s ease'; }); - // 触摸设备支持 - let touchStartX = null; - let scrollLeft = null; + if (hasIntersectionObserver) { + var observer = new IntersectionObserver(function(entries) { + for (var entryIndex = 0; entryIndex < entries.length; entryIndex += 1) { + if (entries[entryIndex].isIntersecting) { + animateItems(true); + observer.unobserve(entries[entryIndex].target); + } + } + }, observerOptions); - container.addEventListener('touchstart', (e) => { + observer.observe(container); + } else { + animateItems(false); + } + + container.addEventListener('touchstart', function(e) { touchStartX = e.touches[0].pageX; scrollLeft = container.scrollLeft; }, { passive: true }); - container.addEventListener('touchmove', (e) => { + container.addEventListener('touchmove', function(e) { if (!touchStartX) return; - const x = e.touches[0].pageX; - const walk = (touchStartX - x) * 1.5; + var x = e.touches[0].pageX; + var walk = (touchStartX - x) * 1.5; container.scrollLeft = scrollLeft + walk; }, { passive: true }); - container.addEventListener('touchend', () => { + container.addEventListener('touchend', function() { touchStartX = null; }); - // 鼠标滚轮横向滚动(移动端视图时) - container.addEventListener('wheel', (e) => { + container.addEventListener('wheel', function(e) { if (container.scrollWidth > container.clientWidth) { if (Math.abs(e.deltaX) < Math.abs(e.deltaY)) { e.preventDefault(); @@ -80,56 +112,46 @@ } }, { passive: false }); - // 拖拽滚动(移动端视图时) - let isDragging = false; - let startX; - let dragScrollLeft; - - container.addEventListener('mousedown', (e) => { + container.addEventListener('mousedown', function(e) { if (container.scrollWidth <= container.clientWidth) return; - if (e.target.closest('.timeline-item')) return; + if (e.target.closest && e.target.closest('.timeline-item')) return; isDragging = true; container.style.cursor = 'grabbing'; startX = e.pageX - container.offsetLeft; dragScrollLeft = container.scrollLeft; }); - container.addEventListener('mouseleave', () => { + container.addEventListener('mouseleave', function() { isDragging = false; container.style.cursor = ''; }); - container.addEventListener('mouseup', () => { + container.addEventListener('mouseup', function() { isDragging = false; container.style.cursor = ''; }); - container.addEventListener('mousemove', (e) => { + container.addEventListener('mousemove', function(e) { if (!isDragging) return; e.preventDefault(); - const x = e.pageX - container.offsetLeft; - const walk = (x - startX) * 2; + var x = e.pageX - container.offsetLeft; + var walk = (x - startX) * 2; container.scrollLeft = dragScrollLeft - walk; }); - // 节点点击事件(可扩展) - items.forEach((item) => { - item.addEventListener('click', () => { - // 添加点击反馈动画 - const dot = item.querySelector('.dot'); + forEachNode(items, function(item) { + item.addEventListener('click', function() { + var dot = item.querySelector('.dot'); if (dot) { dot.style.transform = 'translate(-50%, -50%) scale(2)'; - setTimeout(() => { + setTimeout(function() { dot.style.transform = ''; }, 200); } }); }); - // 键盘导航支持 - let currentIndex = 0; - - document.addEventListener('keydown', (e) => { + document.addEventListener('keydown', function(e) { if (!isElementInViewport(container)) return; if (e.key === 'ArrowLeft') { @@ -144,42 +166,32 @@ function scrollToItem(index) { if (container.scrollWidth <= container.clientWidth) return; - const item = items[index]; + var item = items[index]; if (!item) return; - const containerRect = container.getBoundingClientRect(); - const itemRect = item.getBoundingClientRect(); + var containerRect = container.getBoundingClientRect(); + var itemRect = item.getBoundingClientRect(); + var targetScrollLeft = container.scrollLeft + (itemRect.left - containerRect.left) - (containerRect.width / 2) + (itemRect.width / 2); - const targetScrollLeft = container.scrollLeft + (itemRect.left - containerRect.left) - (containerRect.width / 2) + (itemRect.width / 2); + if (typeof container.scrollTo === 'function' && supportsSmoothScroll()) { + container.scrollTo({ + left: targetScrollLeft, + behavior: 'smooth' + }); + return; + } - container.scrollTo({ - left: targetScrollLeft, - behavior: 'smooth' - }); + container.scrollLeft = targetScrollLeft; } - // ============================================ - // 自动轮播功能 - 从左到右循环展开 - // ============================================ - let autoPlayIndex = 0; - let autoPlayTimer = null; - let isUserInteracting = false; - const autoPlayInterval = 3000; // 每个节点展开持续时间(毫秒) - const pauseAfterInteraction = 5000; // 用户交互后暂停时间(毫秒) - - // 添加自动展开的CSS类 function expandItem(index) { - // 移除所有节点的展开状态 - items.forEach(item => { - item.classList.remove('auto-expanded'); - }); - // 给当前节点添加展开状态 + clearExpandedItems(); if (items[index]) { items[index].classList.add('auto-expanded'); + updateExpandedState(true); } } - // 自动轮播 function autoPlay() { if (isUserInteracting) return; @@ -187,63 +199,56 @@ autoPlayIndex = (autoPlayIndex + 1) % items.length; } - // 启动自动轮播 function startAutoPlay() { if (autoPlayTimer) return; autoPlayTimer = setInterval(autoPlay, autoPlayInterval); - // 立即展开第一个 autoPlay(); } - // 停止自动轮播 function stopAutoPlay() { if (autoPlayTimer) { clearInterval(autoPlayTimer); autoPlayTimer = null; } - // 移除所有展开状态 - items.forEach(item => { - item.classList.remove('auto-expanded'); - }); + clearExpandedItems(); } - // 用户交互时暂停自动轮播 function pauseAutoPlay() { isUserInteracting = true; stopAutoPlay(); - // 一段时间后恢复自动轮播 - setTimeout(() => { + if (interactionTimer) { + clearTimeout(interactionTimer); + } + + interactionTimer = setTimeout(function() { isUserInteracting = false; - if (isElementInViewport(container)) { + if (hasIntersectionObserver && isElementInViewport(container)) { startAutoPlay(); } }, pauseAfterInteraction); } - // 监听用户交互 container.addEventListener('mouseenter', pauseAutoPlay); container.addEventListener('touchstart', pauseAutoPlay, { passive: true }); - // 使用 Intersection Observer 控制自动轮播 - const autoPlayObserver = new IntersectionObserver((entries) => { - entries.forEach(entry => { - if (entry.isIntersecting && !isUserInteracting) { - startAutoPlay(); - } else { - stopAutoPlay(); + if (hasIntersectionObserver) { + var autoPlayObserver = new IntersectionObserver(function(entries) { + for (var entryIndex = 0; entryIndex < entries.length; entryIndex += 1) { + if (entries[entryIndex].isIntersecting && !isUserInteracting) { + startAutoPlay(); + } else { + stopAutoPlay(); + } } - }); - }, { threshold: 0.3 }); + }, { threshold: 0.3 }); - autoPlayObserver.observe(container); - - console.log("Timeline Loaded with Enhanced Labels and Positioning"); + autoPlayObserver.observe(container); + } } - // 工具函数:检查元素是否在视口中 function isElementInViewport(el) { - const rect = el.getBoundingClientRect(); + var rect = el.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom > 0 diff --git a/classiccase.html b/classiccase.html index 7537c37..d3800fc 100644 --- a/classiccase.html +++ b/classiccase.html @@ -121,12 +121,11 @@ // 数据定义 const caseData = [ {id: 1, title: "唐山港集团有限公司", desc: "唐山港集团有限公司是中国北方重要的综合性港口企业,拥有煤炭、矿石、集装箱、液体化工等多种专业化码头...", img: "assets/images/tangshangang.jpg", href: "classiccase/tangshan_ore_terminal.html",category:["port"]}, - {id: 2, title: "中山港航集团股份有限公司", desc: "创立于2000年12月,注册地位于中山市火炬开发区沿江东一路3号港航大厦...", img: "assets/images/zhongshanganghang.jpg", href: "classiccase/zhongshan_port_service.html",category:["port"]}, + {id: 2, title: "中山港航集团股份有限公司", desc: "创立于2000年12月,注册地位于中山市火炬开发区沿江东一路3号港航大厦,围绕港口服务平台与集装箱码头系统推进全流程数字化升级...", img: "assets/images/zhongshanganghang.jpg", href: "classiccase/zhongshan_port_service.html",category:["port"]}, {id: 3, title: "秦皇岛港股份有限公司", desc: "河北港口集团核心企业,全球最大大宗干散货公众码头之一,1898年开埠,现有生产泊位71个...", img: "assets/images/logo2.jpg", href: "classiccase/qinhuangdao_cargo_system.html",category:["port"]}, - {id: 4, title: "中山港航集团股份有限公司", desc: "中山港航集团股份有限公司集装箱码头系统,提供集装箱码头全流程数字化管理...", img: "assets/images/zhongshanganghang.jpg", href: "classiccase/zhongshan_container_terminal.html",category:["port"]}, - {id: 5, title: "上海航华国际船务代理有限公司", desc: "2000年4月成立的国有控股国际船舶代理企业,由上海国际港务(集团)股份有限公司、上海航运交易所共同投资...", img: "assets/images/logo5.jpg", href: "classiccase/shanghai_hanghua_ship_agent.html",category:["ship-agent","shipping-company","freight-forwarder"]}, - {id: 6, title: "北部湾港防城港码头有限公司", desc: "广西北部湾国际港务集团有限公司旗下核心企业,主要从事集装箱、散货的装卸、仓储、运输等业务...", img: "assets/images/fangcheng.png", href: "classiccase/fangchenggang_railway_container.html",category:["port"]}, - {id: 7, title: "上海上港联合国际船舶代理有限公司", desc: "上海上港联合国际船舶代理有限公司订舱平台,提供一站式在线订舱服务...", img: "assets/images/liandai.png", href: "classiccase/shanggang_liandai_booking.html",category:["shipping-company","ship-agent","freight-forwarder"]}, + {id: 5, title: "上海航华国际船务代理有限公司", desc: "2000年4月成立的国有控股国际船舶代理企业,由上海国际港务(集团)股份有限公司、上海航运交易所共同投资,已建设船代业务系统与海运电商云服务平台...", img: "assets/images/logo5.jpg", href: "classiccase/shanghai_hanghua_ship_agent.html",category:["ship-agent","shipping-company","freight-forwarder"]}, + {id: 6, title: "北部湾港防城港码头有限公司", desc: "广西北部湾国际港务集团有限公司旗下核心企业,主要从事集装箱、散货的装卸、仓储、运输等业务,覆盖铁路集装箱场站与穿梭巴士业务场景...", img: "assets/images/fangcheng.png", href: "classiccase/fangchenggang_railway_container.html",category:["port","shipping-company","logistics"]}, + {id: 7, title: "上海上港联合国际船舶代理有限公司", desc: "1994年成立,系上海国际港务(集团)股份有限公司全资子公司,围绕订舱平台与船代货代一体化系统持续提升数字化服务能力...", img: "assets/images/liandai.png", href: "classiccase/shanggang_liandai_booking.html",category:["shipping-company","ship-agent","freight-forwarder"]}, {id: 8, title: "威海港通信息科技有限公司", desc: "山东港口威海港有限公司全资控股的国有企业,成立于2015年,注册资本500万元...", img: "assets/images/weihaigang.jpg", href: "classiccase/weihai_gate_yard.html",category:["port","shipping-company"]}, {id: 9, title: "安徽港口集团合肥有限公司", desc: "统筹管理南淝河港区、巢湖港区与派河港区,拥有生产性泊位25个,年设计吞吐能力达集装箱90万标箱...", img: "assets/images/hefei.png", href: "classiccase/anhui_port_hefei.html",category:["fleet","freight-forwarder","logistics"]}, {id: 10, title: "梧州市港务发展集团有限公司", desc: "市直属国有独资企业,2022年3月注册成立,注册资本10亿元,打造智慧梧州港...", img: "assets/images/wuzhou.png", href: "classiccase/smart_wuzhou_port.html",category:["shipping-company"]}, @@ -140,22 +139,18 @@ {id: 18, title: "秦皇岛港股份有限公司流动机械分公司", desc: "秦皇岛港股份有限公司旗下重要作业单位,负责港区内流动机械的统一调度、运营维护与管理工作...", img: "assets/images/logo2.jpg", href: "classiccase/mobile_machinery_dispatch.html",category:["port","machinery"]}, {id: 19, title: "珠江船务企业(集团)有限公司", desc: "珠江船务对现有码头区域平台化经营管理的尝试,解决平台内各码头的拖车集中监控、集中调配问题...", img: "assets/images/zhujiang.png", href: "classiccase/zhujiang_shipping.html",category:["fleet","freight-forwarder"]}, {id: 20, title: "海南海峡航运股份有限公司", desc: "成立于2002年,是中远海运集团旗下A股上市公司,注册资本22.29亿元,是琼州海峡客滚运输龙头企业...", img: "assets/images/haixia.png", href: "classiccase/hainan_strait_shipping.html",category:["shipping-company"]}, - {id: 21, title: "唐山港合德海运有限公司", desc: "唐山港合德海运有限公司是河北港口集团唐港集团旗下内外贸兼营的集装箱航运企业,注册资本18.5亿元...", img: "assets/images/shanghaihede.webp", href: "classiccase/hede_international_shipping.html",category:["shipping-company"]}, + {id: 21, title: "唐山港合德海运有限公司", desc: "河北港口集团旗下内外贸兼营的集装箱航运企业,围绕国际航运智能配载与全球供应链平台建设持续提升运营能力...", img: "assets/images/shanghaihede.webp", href: "classiccase/hede_international_shipping.html",category:["shipping-company","freight-forwarder","logistics"]}, {id: 22, title: "上海海华轮船有限公司", desc: "1990年成立,系上海锦江航运(集团)股份有限公司全资国有航运企业,专注近洋集装箱班轮运输...", img: "assets/images/haihua.jpg", href: "classiccase/shanghai_haihua_shipping.html",category:[]}, {id: 23, title: "上海锦江航运(集团)有限公司", desc: "上海锦江航运(集团)股份有限公司,1983年成立的中国领先区域性集装箱航运企业...", img: "assets/images/logo1.jpg", href: "classiccase/jinjiang_shipping_ecommerce.html",category:["shipping-company"]}, {id: 24, title: "嘉华航运(香港)有限公司", desc: "嘉华航运(香港)有限公司,2023年成立的新兴国际航运企业,专注中东及北非市场...", img: "assets/images/jiahua.jpg", href: "classiccase/jiahua_shipping_system.html",category:["shipping-company","ship-agent","freight-forwarder"]}, {id: 25, title: "天津中运海运集团有限公司", desc: "成立于2012年,注册资金叁仟万元,总部设于天津滨海经济开发区...", img: "assets/images/tianjinzhongyun.jpg", href: "classiccase/tianjin_zhongyun_shipping.html",category:["shipping-company"]}, {id: 26, title: "连云港中韩轮渡有限公司", desc: "位于新亚欧大陆桥东桥头堡——连云港东端,独家经营连云港至仁川、平泽客货班轮航线...", img: "assets/images/lianyungang.jpg", href: "classiccase/lianyungang_china_korea_ferry.html",category:["shipping-company","ship-agent","freight-forwarder"]}, - {id: 27, title: "唐山港合德海运有限公司", desc: "唐山港合德海运有限公司,专注内外贸集装箱航线运营,主营国际国内水路运输、货运代理、船舶代理...", img: "assets/images/shanghaihede.webp", href: "classiccase/hede_global_supply_chain.html",category:["shipping-company","freight-forwarder","logistics"]}, {id: 28, title: "烟台哈尼泰克集装箱租赁有限公司", desc: "成立于2017年,是烟台片区专注集装箱租赁服务的小微企业,亟需建设智能化集装箱租赁管理系统...", img: "assets/images/hani.png", href: "classiccase/yantai_hanitek_container.html",category:["shipping-company","logistics","container-yard"]}, {id: 29, title: "唐山海港海通海运代理有限公司", desc: "2002年6月成立于唐山海港开发区,深耕海运代理领域二十余载,核心业务为货物运输代理...", img: "assets/images/haitong.png", href: "classiccase/tangshan_haitong_shipping.html",category:["freight-forwarder","logistics","fleet"]}, {id: 30, title: "河北黄骅港", desc: "我国\"西煤东运、北煤南运\"核心枢纽港口,货物吞吐量连续五年超3亿吨,年疏港车辆通行量突破120万辆次...", img: "assets/images/huanghua.jpg", href: "classiccase/huanghua_vehicle_analysis.html",category:["fleet","logistics","port"]}, - {id: 31, title: "北部湾港防城港码头有限公司", desc: "广西北部湾港涵盖防城港域、北海港域、钦州港域,位居泛北部湾经济圈核心位置...", img: "assets/images/fangcheng.png", href: "classiccase/beibuwan_shuttle_bus.html",category:["shipping-company","logistics"]}, {id: 32, title: "华海国际船舶代理有限公司", desc: "华海集团创立于2003年,主营船舶代理、货物代理、国际远洋及国内沿海运输、租船订舱...", img: "assets/images/huahai.png", href: "classiccase/rizhao_huahai_shipping.html",category:["ship-agent","freight-forwarder","logistics"]}, - {id: 33, title: "上海上港联合国际船舶代理有限公司", desc: "1994年成立,系上海国际港务(集团)股份有限公司全资子公司,上海港主要国际船舶代理服务企业之一...", img: "assets/images/liandai.png", href: "classiccase/shanggang_liandai_integration.html",category:["ship-agent","shipping-company","freight-forwarder"]}, {id: 34, title: "上海港船务代理有限公司", desc: "1993年8月成立,植根上海并深度依托国际航运中心优势,专注水上运输领域的专业船舶代理服务...", img: "assets/images/shanghaigang.png", href: "classiccase/shanghai_port_coastal_system.html",category:["shipping-company","ship-agent","freight-forwarder"]}, {id: 35, title: "唐山港口实业集团有限公司", desc: "河北省港口整合平台核心企业,负责运营唐山港\"三港四区\"中的京唐港区与曹妃甸港区,年吞吐量逾3亿吨...", img: "assets/images/tangshangang.jpg", href: "classiccase/tangshan_bigdata_platform.html",category:["port"]}, - {id: 36, title: "上海航华国际船务代理有限公司", desc: "上海航华国际船务代理有限公司海运电商云服务平台,提供数字化航运服务...", img: "assets/images/logo5.jpg", href: "classiccase/shanghai_hanghua_cloud.html",category:["ship-agent","shipping-company","freight-forwarder"]}, {id: 37, title: "上海鹏华船务有限公司", desc: "2004年成立的中国首家公共船舶代理合资企业,致力于为全球客户提供全方位、高效率国际船舶代理服务...", img: "assets/images/shanghaipenghua.jpg", href: "classiccase/shanghai_penghua_platform.html",category:["ship-agent","shipping-company","freight-forwarder"]}, {id: 38, title: "上海新海国际船舶代理有限公司", desc: "1993年3月29日成立于上海,专注提供全方位国际船舶代理服务,作为连接船东、租家、港口及相关方的关键纽带...", img: "assets/images/xinhai.jpg", href: "classiccase/shanghai_xinhai_freight.html",category:["ship-agent","shipping-company","freight-forwarder"]}, {id: 39, title: "济宁港航建设有限公司", desc: "济宁能源集团核心子公司,主营京杭运河济宁段港口、航道、船闸一体化投资运营,年吞吐量超3000万吨...", img: "assets/images/jining.png", href: "classiccase/canal_logistics_supervision.html",category:["port","logistics"]} diff --git a/classiccase/beibuwan_shuttle_bus.html b/classiccase/beibuwan_shuttle_bus.html deleted file mode 100644 index b1eda69..0000000 --- a/classiccase/beibuwan_shuttle_bus.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - - - - 客户案例-岸基科技 - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
-
-
-
-
-
-
- - - - - - - - -
-
-
-
-

助力领跑行业数字化

- -
-
-
-
- - - -
-
-
-
- 首页 > 客户案例 > 北部湾防城港有限公司 -
-
-
-
- - - -
-
-
-
-
-

北部湾防城港有限公司

-

广西北部湾港涵盖防城港域、北海港域、钦州港域,位于泛北部湾、泛珠三角与中国—东盟经济圈交汇核心,是“一带一路”与“西部陆海新通道”战略关键节点,也是西南地区距离最短的出海口及面向东盟最便捷的出海通道。当前运营穿梭巴士船舶14艘,2022年穿巴业务吞吐量目标160万TEU,本次系统采购将支撑年处理400万标准箱的业务规模。

- -
-
- -
- -
-
-

1. 分布式港口协同需求
- 北港集团在钦州港、防城港、北海港(含铁山)实施分布式码头布局,三港分布式布局需建立标准化作业单元与穿巴运输体系,打通码头间物理隔阂,构建高效联通港口网络。

-

2. 穿巴智能调度挑战
- 传统穿巴管理难以满足枢纽港规模化需求,需解决多码头间运力与货源匹配效率问题。

-

3. 标准化体系贯通瓶颈
- 现有各港区作业标准不统一,亟需建立覆盖调度、装卸、信息交互的标准化体系,消除协作壁垒。

-
-
-
- - -
- -
-
-

1. 全流程信息化升级
- 构建穿巴业务综合管控平台,覆盖商务、订舱、船舶管理、单证交互等全环节,实现业务规范化管理。

-

2. 智能化调度与监控
- 部署智能配舱与调度引擎,动态优化运力分配与航线规划,集成安全监控与预警功能。

-

3. 跨系统数据互联
- 打通码头生产系统与北港网数据链路,实现船期、货物、场地信息自动同步与计费自动化。

-

4. 数据驱动决策支持
- 建立统计分析中枢,整合运力效能、成本结构等数据,生成分级决策报表,支撑战略目标达成。

-
-
-
- - -
- -
-
-

1. 运营效率跃升
- 智能调度实现资源与任务精准匹配,船舶闲置与等待时间减少30%以上,显著降低人力与能耗成本。

-

2. 协同作业效能突破
- 打通码头间信息壁垒,跨部门协调耗时缩减50%,电子单证流转实现留痕式沟通与责任分工。

-

3. 多港航线资源整合
- 钦州、防城港、北海三港互联形成“超级大港”,航线选择丰富度提升200%以上,货主可共享全部远洋航线资源。

-

4. 客户体验智能化升级
- 线上订舱平台支持查询、预订、支付及动态跟踪,客户沟通成本降低60%,提供便捷服务体验。

-
-
-
-
-
-
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - diff --git a/classiccase/fangchenggang_railway_container.html b/classiccase/fangchenggang_railway_container.html index 08df88d..a710ef8 100644 --- a/classiccase/fangchenggang_railway_container.html +++ b/classiccase/fangchenggang_railway_container.html @@ -29,15 +29,10 @@ - - -
- -
@@ -46,103 +41,234 @@
- - - - -
-
+

助力领跑行业数字化

-
-
-
+
+
- -
- 首页 > 客户案例 > 防城港铁路集装箱场站管理系统 + 首页 > 客户案例 > 北部湾港防城港码头有限公司
- - -
+
-
-
-
-

北部湾港防城港码头有限公司

-

北部湾港防城港码头有限公司是广西北部湾国际港务集团有限公司旗下核心企业,主要从事集装箱、散货的装卸、仓储、运输等业务。作为西南地区重要的海铁联运枢纽,公司致力于提升港口智能化水平,推动区域经济发展,是国家"一带一路"倡议中重要的物流节点。

+
+
+

北部湾港防城港码头有限公司

+

北部湾港防城港码头有限公司是广西北部湾国际港务集团有限公司旗下核心企业,主要从事集装箱、散货的装卸、仓储、运输等业务。作为西南地区重要的海铁联运枢纽,公司致力于提升港口智能化水平,推动区域经济发展,是国家一带一路倡议中的重要物流节点。

+
+
-
-
- -
- -
-
-

1. 铁路集装箱作业量激增,管理难度加大
- 铁路集装箱吞吐量增长,传统人工理货、纸质运单已无法满足高效作业需求。

-

2. 多系统割裂,数据无法共享
- 铁路、散货、集装箱、闸口等系统数据孤立,导致重复录入与信息不一致。

-

3. 人工理货效率低,出错率高
- 理货员现场手工记录录入,存在较大人为差错风险,影响车辆周转效率。

-

4. 安全管理与监管要求提升
- 需实现作业全过程可视化、可追溯,提升对人员、车辆、货物的实时监控能力。

+
+
+ + +
+ +
+
+
+
+
+
+
+
+ +
+
+

1. 铁路集装箱作业量激增,管理难度加大
+ 铁路集装箱吞吐量增长,传统人工理货、纸质运单已无法满足高效作业需求。

+

2. 多系统割裂,数据无法共享
+ 铁路、散货、集装箱、闸口等系统数据孤立,导致重复录入与信息不一致。

+

3. 人工理货效率低,出错率高
+ 理货员现场手工记录录入,存在较大人为差错风险,影响车辆周转效率。

+

4. 安全管理与监管要求提升
+ 需实现作业全过程可视化、可追溯,提升对人员、车辆、货物的实时监控能力。

+
+
+
+ +
+ +
+
+

1. 实现铁路集装箱系统一体化升级
+ 构建统一平台,整合多系统数据,实现数据共享与业务协同,提升作业效率与管理水平。

+

2. 推动理货作业智能化、远程化
+ 通过远程智能理货系统,实现后台远程核对确认,减少现场人员投入。

+

3. 实现作业流程无纸化、自动化
+ 通过电子运单、自动识别替代纸质单据与人工录入,降低差错率。

+

4. 强化作业安全与过程可视化
+ 通过视频监控、图像识别等手段,实现全过程可视化监管与异常快速响应。

+
+
+
+ +
+ +
+
+

1. 作业效率提升
+ 智能调度与自动识别显著缩短车辆停留时间,日均作业量提升30%以上。

+

2. 人工成本降低
+ 减少现场理货、录入等环节,优化人员配置30%,释放人力用于更高价值工作。

+

3. 数据准确率提升
+ 系统自动识别比对,杜绝人工录入错误,确保数据实时、准确、可追溯。

+

4. 客户满意度显著提升
+ 作业流程更清晰、响应更及时,客户满意度提升至95%以上,信任度大幅增强。

+
+
+
+
+
- -
-
- 项目目标 +
+
+ + +
+
+
携手打造数字化智能航运物流
+ 联系我们
-
-
-

1. 实现铁路集装箱系统一体化升级
- 构建统一平台,整合多系统数据,实现数据共享与业务协同,提升作业效率与管理水平。

-

2. 推动理货作业智能化、远程化
- 通过远程智能理货系统,实现后台远程核对确认,减少现场人员投入。

-

3. 实现作业流程无纸化、自动化
- 通过电子运单、自动识别替代纸质单据与人工录入,降低差错率。

-

4. 强化作业安全与过程可视化
- 通过视频监控、图像识别等手段,实现全过程可视化监管与异常快速响应。

+
+
+
+
+
+ +
- + +
- - - - - - - - - - + - - - diff --git a/classiccase/hede_global_supply_chain.html b/classiccase/hede_global_supply_chain.html deleted file mode 100644 index a902606..0000000 --- a/classiccase/hede_global_supply_chain.html +++ /dev/null @@ -1,260 +0,0 @@ - - - - - - - - - - 客户案例-岸基科技 - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
-
-
-
-
-
-
- - - - - - - - -
-
-
-
-

助力领跑行业数字化

- -
-
-
-
- - - -
-
-
-
- 首页 > 客户案例 > 唐山港合德海运有限公司 -
-
-
-
- - - -
-
-
-
-
-

唐山港合德海运有限公司

-

唐山港合德海运有限公司专注内外贸集装箱航线运营,主营国际国内水路运输、货运代理、船舶代理及无船承运业务。经营航线30余条,外贸覆盖美西、日韩、东南亚、中东、印巴等国际港口;内贸干线覆盖广州、厦门、上海、宁波、南京、太仓等主要口岸;环渤海支线实现盘锦、锦州、秦皇岛、曹妃甸、天津、黄骅、潍坊、龙口等港口高效连接。

- -
-
- -
- -
-
-

1. 业务发展驱动系统迭代
- 公司已形成一体化综合物流布局,需搭建全球物流供应链平台,实现信息资源深度整合。

-

2. 现有系统凸显整合短板
- 各系统存在信息孤岛、架构异构、扩展性弱,难以实现经营数据统筹监管与高效复用。

-

3. 技术成熟创造升级条件
- 互联网、AI等技术成熟,可打通内外部协同链路,强化客户数字化连接,提升核心竞争力。

-
-
-
- - -
- -
-
-

1. 建设统一供应链技术平台
- 构建统一底层架构,整合服务系统实现业务耦合与数据集中监管,支持全球一体化供应链服务。

-

2. 标准化资源协同体系
- 规范各板块操作流程,建立智能业务规则,实现货代、船代、航运系统无缝衔接与协同操作。

-

3. 构建高可靠数据交换平台
- 提供多种数据交换标准,满足国内外码头、船公司等舱单交换需求,保障接口稳定性与响应能力。

-

4. 智能化应用降本增效
- 通过OCR实现快速录入校验,搭建AI智能客服,提升服务效率与满意度,降低运营成本。

-
-
-
- - -
- -
-
-

1. 物流链整合提升操作效率
- 打破信息孤岛与流程壁垒,业务处理周期缩短20%以上,整体操作效率提升30%。

-

2. 全程可视化优化周转效率
- 货物全程跟踪实现全状态可视,物流周转效率提升25%,货物准时交付率达98%以上。

-

3. 智能技术驱动降本增效
- 智能算法优化运输路线与运力,综合运营成本降低20%-25%,创造可观经济效益。

-
-
-
-
-
-
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/classiccase/hede_international_shipping.html b/classiccase/hede_international_shipping.html index 2e449c8..a021d83 100644 --- a/classiccase/hede_international_shipping.html +++ b/classiccase/hede_international_shipping.html @@ -29,15 +29,10 @@ - - -
- -
@@ -46,97 +41,248 @@
- - - - -
-
+

助力领跑行业数字化

-
-
-
+
+
- -
- 首页 > 客户案例 > 合德国际航运有限公司 + 首页 > 客户案例 > 唐山港合德海运有限公司
- - -
+
-
-
-
-

合德国际航运有限公司

-

唐山港合德海运有限公司是河北港口集团旗下内外贸兼营的集装箱航运企业,注册资本18.5亿元。作为京津冀协同发展与“一带一路”衔接的关键节点,构建“华北-华东-华南”三线联动物流网络。运营内外贸船舶49艘,掌控京唐港区全自动化集装箱泊位(年通过能力55万标箱)及曹妃甸港区多用途泊位,自主研发件杂智能管控系统、无人运输调度平台等多项专利。

+
+
+

唐山港合德海运有限公司

+

唐山港合德海运有限公司专注内外贸集装箱航线运营,主营国际国内水路运输、货运代理、船舶代理及无船承运业务。经营航线30余条,外贸覆盖美西、日韩、东南亚、中东、印巴等国际港口;内贸干线覆盖广州、厦门、上海、宁波、南京、太仓等主要口岸;环渤海支线实现盘锦、锦州、秦皇岛、曹妃甸、天津、黄骅、潍坊、龙口等港口高效连接。

+
+
-
-
- -
- -
-
-

1. 提升配载效率
- 传统美西航线需25天以上,准班率不足60%,无法满足跨境电商72小时送达需求。

-

2. 优化空间利用
- 传统燃油船舶占比70%,面临欧盟碳关税等贸易壁垒,年额外成本超千万元。

-

3. 资源协同不足
- 港口、货代、集卡等信息割裂,货主无法实时追踪货物,异常响应滞后超48小时。

+
+
+ + +
+ +
+
+
+
+
+
+
+
+ +
+
+

1. 提升配载效率
+ 传统美西航线需25天以上,准班率不足60%,无法满足跨境电商72小时送达需求。

+

2. 优化空间利用
+ 传统燃油船舶占比70%,面临欧盟碳关税等贸易壁垒,年额外成本超千万元。

+

3. 资源协同不足
+ 港口、货代、集卡等信息割裂,货主无法实时追踪货物,异常响应滞后超48小时。

+
+
+
+ +
+ +
+
+

1. 提升配载效率
+ 采用AI算法优化配载方案,大幅压缩单船配载计划编制时间与方案调整响应速度。

+

2. 优化空间利用
+ 通过智能分区算法提升船舶舱位利用率,降低甲板空间浪费,实现新能源车混合装载效率提升。

+

3. 降低综合成本
+ 通过智能配载减少翻箱率与燃油消耗,降低配载人员需求与单证处理差错率。

+
+
+
+ +
+ +
+
+

1. 提升配载效率
+ AI 智能配载引擎使方案生成时间压缩至20分钟,人工成本大幅降低。

+

2. 空间利用提升
+ 舱位利用率提升至80%以上,新能源车专用模块实现单船合规运载160至180辆。

+

3. 信息协同提高
+ 数字孪生仿真平台实现关键数据同步准确率超98%。

+
+
+
+
+
- -
-
- 项目目标 +
+
+ + +
+
+
携手打造数字化智能航运物流
+ 联系我们
-
-
-

1. 提升配载效率
- 采用AI算法优化配载方案,大幅压缩单船配载计划编制时间与方案调整响应速度。

-

2. 优化空间利用
- 通过智能分区算法提升船舶舱位利用率,降低甲板空间浪费,实现新能源车混合装载效率提升。

-

3. 降低综合成本
- 通过智能配载减少翻箱率与燃油消耗,降低配载人员需求与单证处理差错率。

+
+
+
+
+
+ +
- + +
- - - - - - - - - - + - - - diff --git a/classiccase/shanggang_liandai_booking.html b/classiccase/shanggang_liandai_booking.html index 605b092..2df2043 100644 --- a/classiccase/shanggang_liandai_booking.html +++ b/classiccase/shanggang_liandai_booking.html @@ -7,10 +7,10 @@ - 客户案例-岸基科技 + 客户案例-岸基科技 - + @@ -23,23 +23,16 @@ - - - - -
- -
@@ -48,27 +41,19 @@
- - - - -
-
+

助力领跑行业数字化

-
-
-
+
+
- -
@@ -79,66 +64,201 @@
- - -
+
-
-
-
-

上海上港联合国际船舶代理有限公司

-

上海上港联合国际船舶代理有限公司1994年成立,系上海国际港务(集团)股份有限公司全资子公司,上海港主要国际船舶代理服务企业之一。依托上港集团资源与港口优势,专业从事国际国内船舶代理及无船承运等综合物流业务。秉承高效、专业服务理念,为全球船东与货主提供优质服务,积极推动无纸化换单等创新模式,持续提升客户体验与航运服务效率。

+
+
+

上海上港联合国际船舶代理有限公司

+

上海上港联合国际船舶代理有限公司1994年成立,系上海国际港务(集团)股份有限公司全资子公司,上海港主要国际船舶代理服务企业之一。依托上港集团资源与港口优势,专业从事国际国内船舶代理及无船承运等综合物流业务。秉承高效、专业服务理念,为全球船东与货主提供优质服务,积极推动无纸化换单等创新模式,持续提升客户体验与航运服务效率。

+
+
-
-
- -
- -
-
-

1. 国家政策驱动
- 上海“十四五”规划及临港政策支持建设国际集装箱舱位交易平台,为订舱平台建设提供政策导向。

-

2. 业务生态完善需求
- 打造“海运订舱+船代服务”一体化方案,增强客户粘性、降低运营成本,突破同质化竞争困局。

-

3. 拓展营收边界培育新增长点
- 传统船代利润空间被压缩,订舱平台可延伸增值服务并衍生数据服务,支撑可持续发展。

+
+
+ + +
+ +
+
+
+
+
+
+
+
+ +
+
+

1. 国家政策驱动
+ 上海十四五规划及临港政策支持建设国际集装箱舱位交易平台,为订舱平台建设提供政策导向。

+

2. 业务生态完善需求
+ 打造海运订舱加船代服务一体化方案,增强客户粘性、降低运营成本,突破同质化竞争困局。

+

3. 拓展营收边界培育新增长点
+ 传统船代利润空间被压缩,订舱平台可延伸增值服务并衍生数据服务,支撑可持续发展。

+
+
+
+ +
+ +
+
+

1. 打造公司特色订舱平台
+ 提供订舱、舱单申报、提单确认等全流程服务,通过EDI对接船公司实现自动确认。

+

2. 互联网技术驱动品牌升级
+ 以互联网加海运整合资源与服务,优化线上体验,提升客户满意度与黏度。

+

3. 智能化应用实现降本增效
+ 运用邮件识别、流程控制、EDI对接等技术,实现订舱、申报、确认等业务智能化。

+
+
+
+ +
+ +
+
+

1. 流程化操作降低运营成本
+ 单票订舱处理时间从2.5小时缩短至1小时,人力成本降低约40%。

+

2. 智能化服务提升增值收益
+ 基于数据沉淀延伸供应链可视化管理,通过订阅费创造额外收益来源。

+

3. 数据自动化消除信息滞后
+ 单据流转时间从5小时缩短至10分钟,货主获取舱位信息从1天压缩至1小时。

+
+
+
+
+
- -
-
- 项目目标 +
+
+ + +
+
+
携手打造数字化智能航运物流
+ 联系我们
-
-
-

1. 打造公司特色订舱平台
- 提供订舱、舱单申报、提单确认等全流程服务,通过EDI对接船公司实现自动确认。

-

2. 互联网技术驱动品牌升级
- 以“互联网+海运”整合资源与服务,优化线上体验,提升客户满意度与黏度。

-

3. 智能化应用实现降本增效
- 运用邮件识别、流程控制、EDI对接等技术,实现订舱、申报、确认等业务智能化。

+
+
+
+
+
+ +
- + +
- - - - - - - - - - + - - - - - - - - - - - - - - - - - - diff --git a/classiccase/shanggang_liandai_integration.html b/classiccase/shanggang_liandai_integration.html deleted file mode 100644 index 198288e..0000000 --- a/classiccase/shanggang_liandai_integration.html +++ /dev/null @@ -1,225 +0,0 @@ - - - - - - - - - - 客户案例-岸基科技 - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
-
-
-
-
-
-
- - - - - - - - -
-
-
-
-

助力领跑行业数字化

- -
-
-
-
- - - -
-
-
-
- 首页 > 客户案例 > 上海上港联合国际船舶代理有限公司 -
-
-
-
- - - -
-
-
-
-
-

上海上港联合国际船舶代理有限公司

-

上海上港联合国际船舶代理有限公司1994年成立,系上海国际港务(集团)股份有限公司全资子公司,上海港主要国际船舶代理服务企业之一。依托上港集团资源与港口优势,专业从事国际国内船舶代理及无船承运等综合物流业务。秉承高效、专业服务理念,为全球船东与货主提供优质服务,积极推动无纸化换单等创新模式,持续提升客户体验与航运服务效率。

- -
-
- -
- -
-
-

1. 业务发展驱动系统升级
- 业务持续扩张暴露传统模式局限,亟需整合资源建立船货一体化系统,支撑未来发展战略。

-

2. 客户体验升级需求倒逼服务转型
- 客户需求转向全程透明化、个性化及高效化,需提供港口/船舶/单证数据透明服务,定制优先审单等专属方案,提升满意度与竞争力。

-

3. 技术革新驱动智能化升级
- AI等技术引领行业变革,需融合先进技术实现调度、单证、费用等智能化转型。

-
-
-
- - -
- -
-
-

1. 打造流程最优、功能最全的一体化操作体系
- 聚焦船代货代全链条需求,搭建覆盖业务受理、操作执行、结算管理、客户服务的一体化系统。

-

2. 构建系统核心数据支撑枢纽
- 建设全业务链统一数据服务中心,打破数据壁垒,建立业务数据全程节点跟踪机制。

-

3. 实现完整电子商务操作模式
- 推行线上受理+预约模式,整合核心功能,打破时空限制,减少人工干预,优化服务体验。

-
-
-
- - -
- -
-
-

1. 船货一体化协同高效运营
- 通打破传统系统独立壁垒,工作人员单日系统操作时间缩短20%,实现跨业务高效协作。

-

2. 财务智能化降本提效
- 单票费用计算时间从15分钟缩短至1分钟,准确率从92%提升至99.8%,降低人工成本与差错风险。

-

3. 多维度统计支撑精准决策
- 识别高成本低贡献客户,调整策略后服务成本降低15%,提升整体客户盈利水平。

-
-
-
-
-
-
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/classiccase/shanghai_hanghua_cloud.html b/classiccase/shanghai_hanghua_cloud.html deleted file mode 100644 index fe9829f..0000000 --- a/classiccase/shanghai_hanghua_cloud.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - - - - - 客户案例-岸基科技 - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
-
-
-
-
-
-
- - - - - - - - -
-
-
-
-

助力领跑行业数字化

- -
-
-
-
- - - -
-
-
-
- 首页 > 客户案例 > 上海航华国际船务代理有限公司 -
-
-
-
- - - -
-
-
-
-
-

上海航华国际船务代理有限公司

-

上海航华国际船务代理有限公司,2000年4月成立的国有控股国际船舶代理企业,由上海国际港务(集团)股份有限公司、上海航运交易所共同投资组建。具备国家交通部批准的甲级公共船舶代理资质及无船承运人(NVOCC)资格。总部位于上海市虹口区黄浦路99号28层,浦东港建路、民生路设办公点,业务覆盖全国沿海及长江流域主要口岸。

- -
-
- -
- -
-
-

1. 跨境电商驱动升级
- 智能集装箱市场规模5年增长超300%,货物全程可视化需求激增,需对接亚马逊等电商平台。%

-

2. 操作效率低下与成本高企
- 手工输单耗时2-3小时/单,错误率3.2%;财务结算周期长达7天,人工成本占运营成本30%以上。

-

3. 客户体验与服务质量瓶颈
- 客户无法实时查询进度与费用,投诉量居高不下;加急申报响应24小时,客户满意度仅65%。

-
-
-
- - -
- -
-
-

1. 全链条流程自动化升级
- 引入RPA与OCR实现船公司订舱全链路自动化,集成EDI一键导入,系统自动校验减少重复返工。

-

2. 跨平台数据无缝互通
- 开放API对接船公司、码头及海关系统,放箱业务升级为单一平台操作,消除多平台跳转。

-
-
-
- - -
- -
-
-

1. 操作便捷性获客户高度评价
- 提单样本制作效率提升80%,订舱处理时间压缩至15分钟/单,客户操作体验显著优化。

-

2. 全流程自动化驱动效率跃升
- 人均处理订单量同比增长120%,运营成本降低35%,实现规模与效益双突破。

-

3. 合规成本精准管控
- 系统自动校验规避海关罚金超20万元,区块链存证使举证时间节省50%以上。

-

4. 新兴市场高效渗透
- 2025年新增37家客户(40%为高附加值客户),成功开拓增量业务蓝海。

-
-
-
-
-
-
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/classiccase/shanghai_hanghua_ship_agent.html b/classiccase/shanghai_hanghua_ship_agent.html index e9c3a50..a7c18cd 100644 --- a/classiccase/shanghai_hanghua_ship_agent.html +++ b/classiccase/shanghai_hanghua_ship_agent.html @@ -7,10 +7,10 @@ - 客户案例-岸基科技 + 客户案例-岸基科技 - + @@ -23,23 +23,16 @@ - - - - -
- -
@@ -48,27 +41,19 @@
- - - - -
-
+

助力领跑行业数字化

-
-
-
+
+
- -
@@ -79,70 +64,205 @@
- - -
+
-
-
-
-

上海航华国际船务代理有限公司

-

上海航华国际船务代理有限公司成立于2000年,由上港集团、上海航运交易所共同投资组建,具备甲级公共船舶代理及NVOCC资质。代理长荣海运、达飞轮船等多家国际船公司,集装箱代理量占上海港外贸吞吐量近10%,滚装船代理量占55%以上。

+
+
+

上海航华国际船务代理有限公司

+

上海航华国际船务代理有限公司成立于2000年,由上港集团、上海航运交易所共同投资组建,具备甲级公共船舶代理及NVOCC资质。代理长荣海运、达飞轮船等多家国际船公司,集装箱代理量占上海港外贸吞吐量近10%,滚装船代理量占55%以上。

+
+
-
-
- -
- -
-
-

1. 代理业务量激增的管理压力
- 年代理集装箱占上海港外贸吞吐量近10%,国际中转业务处理时效长达2-3小时/单,难以满足日均超500单峰值需求。

-

2. 多环节协同复杂性挑战
- 涉及多方协作,跨部门沟通成本占运营成本25%以上,放箱操作失误率达15%。

-

3. 头部客户定制化服务需求
- 长荣海运、达飞轮船等要求差异化解决方案。例如为长荣开发的"自动化结费系统"通过RPA自动匹配运费数据,结算周期从7天压缩至2天,准确率提升至99.9%。

+
+
+ + +
+ +
+
+
+
+
+
+
+
+ +
+
+

1. 代理业务量激增的管理压力
+ 年代理集装箱占上海港外贸吞吐量近10%,国际中转业务处理时效长达2-3小时/单,难以满足日均超500单峰值需求。

+

2. 多环节协同复杂性挑战
+ 涉及多方协作,跨部门沟通成本占运营成本25%以上,放箱操作失误率达15%。

+

3. 头部客户定制化服务需求
+ 长荣海运、达飞轮船等要求差异化解决方案。例如为长荣开发的自动化结费系统,通过RPA自动匹配运费数据,结算周期从7天压缩至2天,准确率提升至99.9%。

+
+
+
+ +
+ +
+
+

1. 跨部门协同成本锐减
+ 整合船公司、码头、海关等系统数据,实现放箱申请对接与财务快速结算,压缩结算周期。

+

2. 人才结构升级与组织效能跃升
+ 应用RPA、OCR实现订舱、申报、放箱、签发全链条自动化,降低人工错误率与处理时效。

+

3. 行业标准制定与生态共建突破
+ 嵌入海关校验规则与IMO标准,实现申报状态自动监测与逾期预警,推动行业标准制定。

+

4. 核心财务成果
+ 整合多式联运,推动陆改水业务增长,提升增值服务收入占比,拓展高附加值客户。

+
+
+
+ +
+ +
+
+

1. 跨部门协同成本锐减
+ 整合船公司、码头、海关等数据接口,放箱业务实现单一平台操作,数据重复录入率从60%降至5%,操作失误率下降15%。财务结算周期从7天压缩至2天,准确率达99.9%。

+

2. 人才结构升级与组织效能跃升
+ 基础操作岗位减少40%,转向培养业务+技术复合型人才。组建15人内部开发团队自主完成70%系统迭代,培养20余名RPA开发能手,推动30余项流程优化。

+

3. 行业标准制定与生态共建突破
+ 牵头制定长三角港航数据交换标准,与宁波港、苏州港实现舱单数据实时同步,区域内中转时效缩短20%。船代系统纳入上海国际航运中心智慧港航示范工程。

+

4. 核心财务成果
+ 系统直接节省人力成本超800万元,运营成本下降18%。为客户创造间接价值超3000万元,2025年投资回报率达1.5:1。

+
+
+
+
+
- -
-
- 项目目标 +
+
+ + +
+
+
携手打造数字化智能航运物流
+ 联系我们
-
-
-

1. 跨部门协同成本锐减
- 整合船公司、码头、海关等系统数据,实现放箱申请对接与财务快速结算,压缩结算周期。

-

2. 人才结构升级与组织效能跃升
- 应用RPA、OCR实现订舱、申报、放箱、签发全链条自动化,降低人工错误率与处理时效。

-

3. 行业标准制定与生态共建突破
- 嵌入海关校验规则与IMO标准,实现申报状态自动监测与逾期预警,推动行业标准制定。

-

4. 核心财务成果
- 整合多式联运,推动“陆改水”业务增长,提升增值服务收入占比,拓展高附加值客户。

+
+
+
+
+
+ +
- + +
- - - - - - - - - - + - - - - - - - - - - - - - - - - - - diff --git a/classiccase/zhongshan_container_terminal.html b/classiccase/zhongshan_container_terminal.html deleted file mode 100644 index 42af131..0000000 --- a/classiccase/zhongshan_container_terminal.html +++ /dev/null @@ -1,228 +0,0 @@ - - - - - - - - - - 客户案例-岸基科技 - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
-
-
-
-
-
-
- - - - - - - - -
-
-
-
-

助力领跑行业数字化

- -
-
-
-
- - - -
-
-
-
- 首页 > 客户案例 > 中山港航集团股份有限公司 -
-
-
-
- - - -
-
-
-
-
-

中山港航集团股份有限公司

-

中山港航集团股份有限公司(前身为中山市港航企业集团有限公司)创立于2000年12月15日,注册地位于中山市火炬开发区沿江东一路3号港航大厦。作为珠江口湾区港航物流领域的综合性龙头企业,集团始终深耕多式联运与运输代理核心主业,以打造"湾区接口"型物流枢纽平台为目标,致力于构建连通湾区、辐射全球的现代化港航物流服务体系。

- -
-
- -
- -
-
-

1. 政策驱动与行业趋势
- 《交通强国建设纲要》《智慧港口建设指南》等政策要求港口加速数字化转型,客户对全程可视化、无接触服务需求激增。

-

2. 运营效率与服务瓶颈
- 统港口依赖线下操作,办单、支付等环节耗时易错,数据同步滞后问题突出。

-

3. 技术机遇与升级需求
- 需引入AI、大数据等技术,整合多方资源,构建绿色高效供应链体系。

- -
-
-
- - -
- -
-
-

1. 全链条协同与标准化
- 整合区域港口及海关、船公司等多方业务流程,构建跨区域协同平台,实现全流程数据电子化与标准化。

-

2. :高可用架构与安全体系
- 部署多中心容灾系统,采用多终端兼容架构,构建全链路数据安全体系。

-

3. :自动化与智能化驱动
- 实现线上办单与作业调度自动化,提升设备利用率与协同效率,推动港口作业全面提速。

-

4. 降本增效双向优化
- 减少线下人力依赖与操作错误,实现计费自动化与资源集约化运营。

-
-
-
- - -
- -
-
-

1. 全流程数字化提速
- 办单时间与审批时长大幅压缩,年线上业务量突破10万票,打破线下时空限制。

-

2. 成本精控
- 减少线下人力与纸质耗材,年综合降本超500万元,实现企业与客户双向优化。

-

3. 满意度达行业标杆
- 投诉率显著降低,响应时间缩短至24小时内,业务办理准确率达100%,客户满意度提升。

-
-
-
-
-
-
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/classiccase/zhongshan_port_service.html b/classiccase/zhongshan_port_service.html index 0673f95..3386422 100644 --- a/classiccase/zhongshan_port_service.html +++ b/classiccase/zhongshan_port_service.html @@ -7,10 +7,10 @@ - 客户案例-岸基科技 + 客户案例-岸基科技 - + @@ -23,23 +23,16 @@ - - - - -
- -
@@ -48,27 +41,19 @@
- - - - -
-
+

助力领跑行业数字化

-
-
-
+
+
- -
@@ -79,72 +64,196 @@
- - -
+
-
-
-
-

中山港航集团股份有限公司

-

中山港航集团股份有限公司(前身为中山市港航企业集团有限公司)创立于2000年12月15日,注册地位于中山市火炬开发区沿江东一路3号港航大厦。作为珠江口湾区港航物流领域的综合性龙头企业,集团始终深耕多式联运与运输代理核心主业,以打造"湾区接口"型物流枢纽平台为目标,致力于构建连通湾区、辐射全球的现代化港航物流服务体系。

+
+
+

中山港航集团股份有限公司

+

中山港航集团股份有限公司(前身为中山市港航企业集团有限公司)创立于2000年12月15日,注册地位于中山市火炬开发区沿江东一路3号港航大厦。作为珠江口湾区港航物流领域的综合性龙头企业,集团始终深耕多式联运与运输代理核心主业,以打造"湾区接口"型物流枢纽平台为目标,致力于构建连通湾区、辐射全球的现代化港航物流服务体系。

+
+
-
-
- -
- -
-
-

1. 政策驱动与行业趋势
- 响应智慧港口无接触服务要求,应对客户线上化需求,需搭建一体化平台实现全流程数字化协同。

-

2. 效率瓶颈亟待突破
- 传统线下模式流程冗余、协同低效,需通过平台整合功能实现全流程自动化,降低人为失误。

-

3. 成本与风险管控需求
- 传统模式人力成本高、风险多,需以自动化替代人工,实现成本与安全风险双重管控。

+
+
+ + +
+ +
+
+
+
+
+
+
+
+ +
+
+

1. 政策驱动与行业趋势
+ 响应智慧港口无接触服务要求,应对客户线上化需求,需搭建一体化平台实现全流程数字化协同。

+

2. 效率瓶颈亟待突破
+ 传统线下模式流程冗余、协同低效,需通过平台整合功能实现全流程自动化,降低人为失误。

+

3. 成本与风险管控需求
+ 传统模式人力成本高、风险多,需以自动化替代人工,实现成本与安全风险双重管控。

+
+
+
+ +
+ +
+
+

1. 实现全业务线上闭环与无纸化
+ 实现全业务线上闭环与无纸化,优化业务流程,减少人工交接,满足无接触办公需求。

+

2. 搭建一体化服务架构
+ 打通多系统数据,核心数据实时同步适配多终端,用户一次登录可办全业务。

+

3. 提升办理与协同效能
+ 提升业务办理、闸口通行、审批及调度效率,为客户降低综合物流成本。

+

4. 降低运营成本与提升满意度
+ 减少线下人力投入与物流成本,降低投诉率,提升客户满意度与行业竞争力。

+
+
+
+ +
+ +
+
+

1. 效率跃升,全流程提速
+ 单票办单时间从60分钟压缩至15分钟,效率提升75%,业务处理量增长3倍以上。

+

2. 成本优化,实现双向效益
+ 年节约人工成本210万元,客户综合物流成本下降1%以上,年节约客户支出超1000万元。

+

3. 满意度提升,构建服务壁垒
+ 客户满意度提升,投诉率降低,业务办理准确率提升至100%。

+

4. 绿色低碳与行业标杆双驱动
+ 年减少纸质单证10万份,降低碳排放,带动产业链协同效率提升30%。

+
+
+
+
+
- -
-
- 项目目标 +
+
+ + +
+
+
携手打造数字化智能航运物流
+ 联系我们
-
-
-

1. 实现全业务线上闭环与无纸化
- 实现全业务线上闭环与无纸化,优化业务流程,减少人工交接,满足无接触办公需求。

-

2. 搭建一体化服务架构
- 打通多系统数据,核心数据实时同步适配多终端,用户一次登录可办全业务。

-

3. 提升办理与协同效能
- 提升业务办理、闸口通行、审批及调度效率,为客户降低综合物流成本。 -

-

4. 降低运营成本与提升满意度
- 减少线下人力投入与物流成本,降低投诉率,提升客户满意度与行业竞争力。

- +
+
+
+
+
+ +
- + +
- - - - - - - - - - + - - - - - - - - - - - - - - - - - - diff --git a/culture.html b/culture.html index 6e400e4..60cd532 100644 --- a/culture.html +++ b/culture.html @@ -61,7 +61,14 @@ .culture-card:hover .img-wrap::after { opacity: 1; } /* 标签徽章 */ - .culture-card .badge { position: absolute; top: 15px; left: 15px; padding: 6px 14px; border-radius: 20px; background: rgba(255,255,255,0.95); color: #1481ff; font-size: 12px; font-weight: 600; z-index: 2; backdrop-filter: blur(5px); } + .culture-card .badge { position: absolute; top: 15px; left: 15px; padding: 6px 14px; border-radius: 20px; background: rgba(255,255,255,0.98); color: #1481ff; font-size: 12px; font-weight: 600; z-index: 2; } + @supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) { + .culture-card .badge { + background: rgba(255,255,255,0.95); + -webkit-backdrop-filter: blur(5px); + backdrop-filter: blur(5px); + } + } /* 卡片信息 */ .culture-card .info { padding: 20px; } @@ -245,15 +252,21 @@ }); // 滚动显示卡片 - var observer = new IntersectionObserver(function(entries){ - entries.forEach(function(entry, i){ - if(entry.isIntersecting){ - setTimeout(function(){ $(entry.target).addClass('visible'); }, i * 100); - observer.unobserve(entry.target); + if ('IntersectionObserver' in window) { + var observer = new IntersectionObserver(function(entries){ + for (var i = 0; i < entries.length; i += 1) { + if(entries[i].isIntersecting){ + (function(entry, delayIndex){ + setTimeout(function(){ $(entry.target).addClass('visible'); }, delayIndex * 100); + observer.unobserve(entry.target); + }(entries[i], i)); + } } - }); - }, {threshold: 0.1}); - $('.culture-card').each(function(){ observer.observe(this); }); + }, {threshold: 0.1}); + $('.culture-card').each(function(){ observer.observe(this); }); + } else { + $('.culture-card').addClass('visible'); + } // 3D 倾斜效果 $('.culture-card').on('mousemove', function(e){ diff --git a/index.html b/index.html index 5113c03..4bcdf51 100644 --- a/index.html +++ b/index.html @@ -39,28 +39,102 @@ + - - - - - -
@@ -381,7 +455,15 @@
-
+
+
+
+ 行业版图 + 覆盖全国重点港航与物流节点 +

旧版浏览器将展示静态版行业覆盖图,升级到较新的浏览器后可查看交互式 3D 地图。

+
+
+
@@ -1086,8 +1168,8 @@ - - + + diff --git a/product_ecommerce_freight_booking.html b/product_ecommerce_freight_booking.html index 98ee676..546a788 100644 --- a/product_ecommerce_freight_booking.html +++ b/product_ecommerce_freight_booking.html @@ -333,7 +333,7 @@
- +

上海航华国际船务代理有限公司

diff --git a/product_full_logistics_chain_cargo_agent.html b/product_full_logistics_chain_cargo_agent.html index 2b7ddc9..e2cc92c 100644 --- a/product_full_logistics_chain_cargo_agent.html +++ b/product_full_logistics_chain_cargo_agent.html @@ -283,7 +283,7 @@
diff --git a/product_full_logistics_chain_platform.html b/product_full_logistics_chain_platform.html index 75003b5..ccfabf1 100644 --- a/product_full_logistics_chain_platform.html +++ b/product_full_logistics_chain_platform.html @@ -317,7 +317,7 @@
diff --git a/product_full_logistics_chain_ship_agent.html b/product_full_logistics_chain_ship_agent.html index 04013e8..06e314f 100644 --- a/product_full_logistics_chain_ship_agent.html +++ b/product_full_logistics_chain_ship_agent.html @@ -169,7 +169,7 @@
diff --git a/product_port_cdi_container.html b/product_port_cdi_container.html index aaafa50..ff45e14 100644 --- a/product_port_cdi_container.html +++ b/product_port_cdi_container.html @@ -351,7 +351,7 @@
- +

中山港航集团股份有限公司

diff --git a/product_shipping_boat.html b/product_shipping_boat.html index afb7aeb..f548730 100644 --- a/product_shipping_boat.html +++ b/product_shipping_boat.html @@ -165,7 +165,7 @@
diff --git a/solution_inland_river_shipping.html b/solution_inland_river_shipping.html index 011aa6a..53c1549 100644 --- a/solution_inland_river_shipping.html +++ b/solution_inland_river_shipping.html @@ -491,7 +491,8 @@ function revealOnScroll() { var reveals = document.querySelectorAll('.reveal'); - reveals.forEach(function(element) { + for (var i = 0; i < reveals.length; i += 1) { + var element = reveals[i]; var windowHeight = window.innerHeight; var elementTop = element.getBoundingClientRect().top; var elementVisible = 100; @@ -499,7 +500,7 @@ if (elementTop < windowHeight - elementVisible) { element.classList.add('active'); } - }); + } } // Initial check diff --git a/solution_logistics_chain.html b/solution_logistics_chain.html index ae06e58..5c7773c 100644 --- a/solution_logistics_chain.html +++ b/solution_logistics_chain.html @@ -465,7 +465,7 @@
- +
- +

上海上港联合国际船舶代理有限公司

@@ -571,7 +571,8 @@ function revealOnScroll() { var reveals = document.querySelectorAll('.reveal'); - reveals.forEach(function(element) { + for (var i = 0; i < reveals.length; i += 1) { + var element = reveals[i]; var windowHeight = window.innerHeight; var elementTop = element.getBoundingClientRect().top; var elementVisible = 100; @@ -579,7 +580,7 @@ if (elementTop < windowHeight - elementVisible) { element.classList.add('active'); } - }); + } } // Initial check diff --git a/solution_port_supply_chain.html b/solution_port_supply_chain.html index 3ef832f..4a26ed1 100644 --- a/solution_port_supply_chain.html +++ b/solution_port_supply_chain.html @@ -460,7 +460,8 @@ function revealOnScroll() { var reveals = document.querySelectorAll('.reveal'); - reveals.forEach(function(element) { + for (var i = 0; i < reveals.length; i += 1) { + var element = reveals[i]; var windowHeight = window.innerHeight; var elementTop = element.getBoundingClientRect().top; var elementVisible = 100; @@ -468,7 +469,7 @@ if (elementTop < windowHeight - elementVisible) { element.classList.add('active'); } - }); + } } // Initial check diff --git a/solution_supply_chain.html b/solution_supply_chain.html index ab0fbe2..b93e786 100644 --- a/solution_supply_chain.html +++ b/solution_supply_chain.html @@ -460,7 +460,8 @@ function revealOnScroll() { var reveals = document.querySelectorAll('.reveal'); - reveals.forEach(function(element) { + for (var i = 0; i < reveals.length; i += 1) { + var element = reveals[i]; var windowHeight = window.innerHeight; var elementTop = element.getBoundingClientRect().top; var elementVisible = 100; @@ -468,7 +469,7 @@ if (elementTop < windowHeight - elementVisible) { element.classList.add('active'); } - }); + } } // Initial check