Plattenwärmetauscher Isolierschale B3-23-30
.grid-two-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } @media (max-width: 768px) { .grid-two-cols { grid-template-columns: 1fr; } } .content-wrapper { max-wid th: 600px; padding: 5px 24px 5px 0; background: #fff; } @media (max-width: 768px) { .content-wrapper { padding: 5px 0; } } .content-wrapper h3 { font-weight: 600; font-size: 20px; margin-bottom: 20px; border-bottom: 2px solid #e6e6e6; padding-bottom: 8px; margin-top: 0; } .info-block { position: relative; } .info-label { position: absolute; top: -10px; left: 0; right: 0; max-width: 100%; font-size: 12px; color: #888; line-height: 1.35; z-index: 2; } .info-value { padding-top: var(--info-value-padding-top, 10px); line-height: 1.45; } .tooltip-label { display: inline; max-width: 100%; } .tooltip-container { display: inline-flex; align-items: center; justify-content: center; position: relative; cursor: pointer; margin-left: 6px; vertical-align: middle; flex: 0 0 auto; outline: none; -webkit-tap-highlight-color: transparent; touch-action: manipulation; white-space: nowrap; z-index: 3; line-height: 1; } .tooltip-icon { position: relative; display: inline-flex; justify-content: center; align-items: center; box-sizing: border-box; width: 14px !important; min-width: 14px !important; max-width: 14px !important; height: 14px !important; min-height: 14px !important; max-height: 14px !important; flex: 0 0 14px !important; aspect-ratio: 1 / 1; border-radius: 999px; background-color: #0071E3; color: #fff; user-select: none; overflow: hidden; vertical-align: middle; line-height: 1; padding: 0 !important; margin: 0; } .tooltip-icon .material-symbols-outlined { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: 100%; height: 100%; margin: 0; padding: 0; font-family: "Material Symbols Outlined"; font-weight: 400; font-style: normal; font-size: 11px !important; line-height: 1 !important; letter-spacing: 0; text-transform: none; white-space: nowrap; direction: ltr; font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 20; -webkit-font-smoothing: antialiased; text-rendering: geometricPrecision; pointer-events: none; } .tooltip-box { display: none; } .info-note { margin-top: 24px; display: flex; align-items: center; font-size: 12px; } .info-note-icon { position: relative; display: inline-flex; justify-content: center; align-items: center; box-sizing: border-box; width: 17px !important; min-width: 17px !important; max-width: 17px !important; height: 17px !important; min-height: 17px !important; max-height: 17px !important; flex: 0 0 17px !important; aspect-ratio: 1 / 1; border-radius: 999px; background-color: #0071E3; color: #fff; user-select: none; overflow: hidden; vertical-align: middle; line-height: 1; padding: 0 !important; margin-right: 6px; } .info-note-icon .material-symbols-outlined { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: 100%; height: 100%; margin: 0; padding: 0; font-family: "Material Symbols Outlined"; font-weight: 400; font-style: normal; font-size: 13px !important; line-height: 1 !important; letter-spacing: 0; text-transform: none; white-space: nowrap; direction: ltr; font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 20; -webkit-font-smoothing: antialiased; text-rendering: geometricPrecision; pointer-events: none; } .floating-tooltip { --arrow-left: 50%; position: fixed; left: 0; top: 0; background-color: #333; color: #fff; padding: 8px 12px; border-radius: 10px; font-size: 12px; line-height: 1.5; opacity: 0; visibility: hidden; transition: opacity 0.2s ease, transform 0.2s ease; transform: translateY(4px); z-index: 999999; pointer-events: none; white-space: normal; overflow-wrap: break-word; word-break: break-word; box-shadow: 0 10px 28px rgba(0, 0, 0, 0.2); max-width: min(420px, calc(100vw - 24px)); } .floating-tooltip.active { opacity: 1; visibility: visible; transform: translateY(0); } .floating-tooltip::after { content: ""; position: absolute; left: var(--arrow-left); transform: translateX(-50%); border-width: 6px; border-style: solid; } .floating-tooltip[data-placement="top"]::after { top: 100%; border-color: #333 transparent transparent transparent; } .floating-tooltip[data-placement="bottom"]::after { bottom: 100%; border-color: transparent transparent #333 transparent; } @media (max-width: 768px) { .floating-tooltip { padding: 12px 14px; font-size: 13px; line-height: 1.55; border-radius: 14px; width: min(340px, calc(100vw - 24px)); max-width: calc(100vw - 24px); max-height: calc(100vh - 24px); overflow-y: auto; } } .info-note { margin-top: 15px; display: flex; align-items: center; font-size: 12px; } .info-note-icon { display: inline-flex; justify-content: center; align-items: center; width: 17px; height: 17px; background-color: #007BFF; color: white; font-weight: bold; border-radius: 50%; font-size: 13px; line-height: 17px; margin-right: 6px; user-select: none; flex-shrink: 0; } Artikeldetails zur Isolierschale/Dämmschale Zugehöriger Plattenwärmetauscher B3-23-30 Material PUR-Hartschaum Materialstärke 20 mm Temperaturbeständigkeit bis zu 130 °C max. Größe (Länge x Breite x Höhe) 360 mm × 120 mm × 125 mm Gewicht 0,406 kg Wärmeleitfähigkeit 0,024 bis 0,029 W/(m·K) Wasserbeständigkeit info_i Die PUR-Hartschaum Isolierschale ist wasserfest, witterungsbeständig, formstabil und druckfest. Hoch, hydrophobe Zellstruktur Montageart Einfache Steckmontage Nachrüstbar Ja ! Auf der Produktseite des Plattenwärmetauschers können Sie die Isolierschale direkt im Bundle mitbestellen und dabei Geld sparen. document.addEventListener("DOMContentLoaded", () => { const tooltipContainers = document.querySelectorAll(".tooltip-container"); const infoBlocks = document.querySelectorAll(".info-block"); const floatingTooltip = document.createElement("div"); floatingTooltip.className = "floating-tooltip"; document.body.appendChild(floatingTooltip); let activeContainer = null; let suppressClickUntil = 0; function isMobileView() { return window.innerWidth { const label = block.querySelector(".info-label"); const value = block.querySelector(".info-value"); if (!label || !value) return; const labelHeight = Math.ceil(label.getBoundingClientRect().height); const paddingTop = Math.max(8, labelHeight - 8); value.style.setProperty("--info-value-padding-top", paddingTop + "px"); }); } function showTooltip(container) { const source = container.querySelector(".tooltip-box"); if (!source) return; if (activeContainer && activeContainer !== container) { updateExpandedState(activeContainer, false); } activeContainer = container; floatingTooltip.innerHTML = source.innerHTML; floatingTooltip.classList.add("active"); updateExpandedState(container, true); requestAnimationFrame(() => { positionTooltip(container); }); } function hideTooltip() { floatingTooltip.classList.remove("active"); updateExpandedState(activeContainer, false); activeContainer = null; } function toggleTooltip(container) { if (activeContainer === container) { hideTooltip(); } else { showTooltip(container); } } function positionTooltip(container) { const icon = container.querySelector(".tooltip-icon"); if (!icon) return; const mobile = isMobileView(); const viewportPadding = mobile ? 12 : 10; const tooltipGap = mobile ? 12 : 10; const arrowSafePadding = 16; floatingTooltip.style.left = "0px"; floatingTooltip.style.top = "0px"; floatingTooltip.style.width = mobile ? "min(340px, calc(100vw - 24px))" : "auto"; floatingTooltip.style.maxWidth = mobile ? "calc(100vw - 24px)" : "min(420px, calc(100vw - 24px))"; const iconRect = icon.getBoundingClientRect(); const tooltipRect = floatingTooltip.getBoundingClientRect(); let left = iconRect.left + iconRect.width / 2 - tooltipRect.width / 2; left = Math.max( viewportPadding, Math.min(left, window.innerWidth - tooltipRect.width - viewportPadding) ); let placement = mobile ? "bottom" : "top"; let top = placement === "top" ? iconRect.top - tooltipRect.height - tooltipGap : iconRect.bottom + tooltipGap; if (!mobile && top < viewportPadding) { placement = "bottom"; top = iconRect.bottom + tooltipGap; } if ( placement === "bottom" && top + tooltipRect.height > window.innerHeight - viewportPadding ) { const topCandidate = iconRect.top - tooltipRect.height - tooltipGap; if (topCandidate >= viewportPadding) { placement = "top"; top = topCandidate; } else { top = Math.max( viewportPadding, window.innerHeight - tooltipRect.height - viewportPadding ); } } if (placement === "top" && top < viewportPadding) { top = viewportPadding; } floatingTooltip.style.left = left + "px"; floatingTooltip.style.top = top + "px"; floatingTooltip.setAttribute("data-placement", placement); const finalTooltipRect = floatingTooltip.getBoundingClientRect(); const tooltipWidth = finalTooltipRect.width; const iconCenter = iconRect.left + iconRect.width / 2; const arrowLeft = iconCenter - left; const clampedArrowLeft = Math.max( arrowSafePadding, Math.min(arrowLeft, tooltipWidth - arrowSafePadding) ); floatingTooltip.style.setProperty("--arrow-left", clampedArrowLeft + "px"); } tooltipContainers.forEach((container) => { container.addEventListener("mouseenter", () => { if (!isTouchLikeDevice()) { showTooltip(container); } }); container.addEventListener("mouseleave", () => { if (!isTouchLikeDevice()) { hideTooltip(); } }); container.addEventListener("focusin", () => { if (!isTouchLikeDevice()) { showTooltip(container); } }); container.addEventListener("click", (e) => { if (Date.now() < suppressClickUntil) { e.preventDefault(); e.stopPropagation(); return; } e.preventDefault(); e.stopPropagation(); toggleTooltip(container); }); container.addEventListener( "touchstart", (e) => { suppressClickUntil = Date.now() + 500; e.preventDefault(); e.stopPropagation(); toggleTooltip(container); }, { passive: false } ); container.addEventListener("keydown", (e) => { if (e.key === "Enter" || e.key === " ") { e.preventDefault(); toggleTooltip(container); } if (e.key === "Escape") { hideTooltip(); } }); }); document.addEventListener("click", (e) => { if (!e.target.closest(".tooltip-container")) { hideTooltip(); } }); document.addEventListener( "touchstart", (e) => { if (!e.target.closest(".tooltip-container")) { hideTooltip(); } }, { passive: true } ); window.addEventListener("resize", () => { syncInfoLabelSpacing(); if (activeContainer) { positionTooltip(activeContainer); } }); window.addEventListener( "scroll", () => { if (activeContainer) { positionTooltip(activeContainer); } }, true ); syncInfoLabelSpacing(); if (document.fonts && document.fonts.ready) { document.fonts.ready.then(() => { syncInfoLabelSpacing(); if (activeContainer) { positionTooltip(activeContainer); } }); } });