Aequilibrium LT GTX

Die Balance zwischen technischer Leistungsfähigkeit und den Anforderungen moderner Alpinisten und Bergsteiger zu finden, ist eine ständige Herausforderung. Der hochmoderne Aequilibrium LT GTX vereint ultraleichte Konstruktion, strapazierfähige Materialien, überragenden Komfort und Spitzenleistung für schnelles Vorankommen in den Bergen.
€108.00
€299.00
-64%
/** * 优惠码组件模型类 * 处理优惠码的显示和交互逻辑 */ class SpzCustomDiscountCodeModel extends SPZ.BaseElement { constructor(element) { super(element); // 复制按钮和内容的类名 this.copyBtnClass = "discount_code_btn" this.copyClass = "discount_code_value" } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { // 初始化服务 this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.xhr_ = SPZServices.xhrFor(this.win); } /** * 渲染优惠码组件 * @param {Object} data - 渲染数据 */ doRender_(data) { return this.templates_ .findAndRenderTemplate(this.element, Object.assign(this.getDefaultData(), data) ) .then((el) => { this.clearDom(); this.element.appendChild(el); // 绑定复制代码功能 this.copyCode(el, data); }); } /** * 获取渲染模板 * @param {Object} data - 渲染数据 */ getRenderTemplate(data) { const renderData = Object.assign(this.getDefaultData(), data); return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { this.clearDom(); return el; }); } /** * 清除DOM内容 */ clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } /** * 获取默认数据 * @returns {Object} 默认数据对象 */ getDefaultData() { return { isMobile: appDiscountUtils.judgeMobile(), isRTL: appDiscountUtils.judgeRTL(), image_domain: this.win.SHOPLAZZA.image_domain, copyBtnClass: this.copyBtnClass, copyClass: this.copyClass } } /** * 复制优惠码功能 * @param {Element} el - 当前元素 */ copyCode(el) { const copyBtnList = el.querySelectorAll(`.${this.copyBtnClass}`); if (copyBtnList.length > 0) { copyBtnList.forEach(item => { item.onclick = async () => { // 确保获取正确的元素和内容 const codeElement = item.querySelector(`.${this.copyClass}`); if (!codeElement) return; // 获取纯文本内容 const textToCopy = codeElement.innerText.trim(); // 尝试使用现代API,如果失败则使用备用方案 try { if (navigator.clipboard && navigator.clipboard.writeText) { await navigator.clipboard.writeText(textToCopy); } else { throw new Error('Clipboard API not available'); } // 显示复制成功提示 this.showCopySuccessToast(textToCopy, el); } catch (err) { console.error('Modern clipboard API failed, trying fallback...', err); // 使用备用复制方案 this.fallbackCopy(textToCopy, el); } const discountId = item.dataset["discountId"]; // 跳转决策: is_redirection + link(可选覆盖) const setting = { is_redirection: item.dataset["redirection"] === "true", link: item.dataset["link"], }; const landingUrl = `/promotions/discount-default/${discountId}`; const finalUrl = appDiscountUtils.resolveDiscountHref(setting, landingUrl); if (finalUrl && appDiscountUtils.inProductBody(this.element)) { this.win.open(finalUrl, '_blank', 'noopener'); } } }) } } /** * 使用 execCommand 的复制方案 * @param {string} codeText - 要复制的文本 * @param {Element} el - 当前元素 */ fallbackCopy(codeText, el) { const textarea = this.win.document.createElement('textarea'); textarea.value = codeText; // 设置样式使文本框不可见 textarea.style.position = 'fixed'; textarea.style.left = '-9999px'; textarea.style.top = '0'; // 添加 readonly 属性防止移动端虚拟键盘弹出 textarea.setAttribute('readonly', 'readonly'); this.win.document.body.appendChild(textarea); textarea.focus(); textarea.select(); try { this.win.document.execCommand('copy'); // 显示复制成功提示 this.showCopySuccessToast(codeText, el); } catch (err) { console.error('Copy failed:', err); } this.win.document.body.removeChild(textarea); } /** * 创建 Toast 元素 * @returns {Element} 创建的 Toast 元素 */ createToastEl_() { const toast = document.createElement('ljs-toast'); toast.setAttribute('layout', 'nodisplay'); toast.setAttribute('hidden', ''); toast.setAttribute('id', 'discount-code-toast'); toast.style.zIndex = '1051'; return toast; } /** * 挂载 Toast 元素到 body * @returns {Element} 挂载的 Toast 元素 */ mountToastToBody_() { const existingToast = this.win.document.getElementById('discount-code-toast'); if (existingToast) { return existingToast; } const toast = this.createToastEl_(); this.win.document.body.appendChild(toast); return toast; } /** * 复制成功的提醒 * @param {string} codeText - 要复制的文本 * @param {Element} el - 当前元素 */ showCopySuccessToast(codeText, el) { const $toast = this.mountToastToBody_(); SPZ.whenApiDefined($toast).then(toast => { toast.showToast("Discount code copied !"); this.codeCopyInSessionStorage(codeText); }); } /** * 复制优惠码成功后要存一份到本地存储中,购物车使用 * @param {string} codeText - 要复制的文本 */ codeCopyInSessionStorage(codeText) { try { sessionStorage.setItem('other-copied-coupon', codeText); } catch (error) { console.error(error) } } } // 注册自定义元素 SPZ.defineElement('spz-custom-discount-code-model', SpzCustomDiscountCodeModel);
/** * Custom discount code component that handles displaying and managing discount codes * @extends {SPZ.BaseElement} */ class SpzCustomDiscountCode extends SPZ.BaseElement { constructor(element) { super(element); // API endpoint for fetching discount codes this.getDiscountCodeApi = "\/api\/storefront\/promotion\/code\/list"; // Debounce timer for resize events this.timer = null; // Current variant ID this.variantId = "802aeffa-26f9-4e99-a6f4-5f9396466131"; // Store discount code data this.discountCodeData = {} } /** * Check if layout is supported * @param {string} layout - Layout type * @return {boolean} */ isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } /** * Initialize component after build */ buildCallback() { this.templates_ = SPZServices.templatesForDoc(); this.viewport_ = this.getViewport(); // Bind methods to maintain context this.render = this.render.bind(this); this.resize = this.resize.bind(this); this.switchVariant = this.switchVariant.bind(this); } /** * Setup component when mounted */ mountCallback() { this.getData(); // Add event listeners this.viewport_.onResize(this.resize); this.win.document.addEventListener('dj.variantChange', this.switchVariant); } /** * Cleanup when component is unmounted */ unmountCallback() { this.viewport_.removeResize(this.resize); this.win.document.removeEventListener('dj.variantChange', this.switchVariant); // 清除定时器 if (this.timer) { clearTimeout(this.timer); this.timer = null; } } /** * Handle resize events with debouncing */ resize() { if (this.timer) { clearTimeout(this.timer) this.timer = null; } this.timer = setTimeout(() => { if (appDiscountUtils.inProductBody(this.element)) { this.render(); } else { this.renderSkeleton(); } }, 200); } /** * Handle variant changes * @param {Event} event - Variant change event */ switchVariant(event) { const variant = event.detail.selected; if (variant.product_id == '28405a08-0341-4777-bc7c-dcc8284facce' && variant.id != this.variantId) { this.variantId = variant.id; this.getData(); } } /** * Fetch discount code data from API */ getData() { if (appDiscountUtils.inProductBody(this.element)) { const reqBody = { product_id: "28405a08-0341-4777-bc7c-dcc8284facce", variant_id: this.variantId, product_type: "default", } if (!reqBody.product_id || !reqBody.variant_id) return; this.discountCodeData = {}; this.win.fetch(this.getDiscountCodeApi, { method: "POST", body: JSON.stringify(reqBody), headers: { "Content-Type": "application/json" } }).then(async (response) => { if (response.ok) { let data = await response.json(); if (data.list && data.list.length > 0) { data.list[0].product_setting.template_config = JSON.parse(data.list[0].product_setting.template_config); // Format timestamps to local timezone const zone = this.win.SHOPLAZZA.shop.time_zone; data.list = data.list.map(item => { if(+item.ends_at !== -1) { item.ends_at = appDiscountUtils.convertTimestampToFormat(+item.ends_at, zone); } item.starts_at = appDiscountUtils.convertTimestampToFormat(+item.starts_at, zone); return item; }); } this.discountCodeData = data; this.render(); } else { this.clearDom(); } }).catch(err => { console.error("discount_code", err) this.clearDom(); }); } else { this.renderSkeleton(); } } /** * Clear component DOM except template */ clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } /** * Render discount codes with formatted dates */ render() { // Render using discount code model SPZ.whenApiDefined(document.querySelector('#spz_custom_discount_code_model')).then(renderApi => { renderApi.doRender_({ discountCodeData: this.discountCodeData }) }).catch(err => { this.clearDom(); }) } renderSkeleton() { // Render template for non-product pages this.templates_ .findAndRenderTemplate(this.element, { isMobile: appDiscountUtils.judgeMobile() }) .then((el) => { this.clearDom(); this.element.appendChild(el); }) .catch(err => { this.clearDom(); }); } } // Register custom element SPZ.defineElement('spz-custom-discount-code', SpzCustomDiscountCode);
Colors
Größe- 36
Menge
Kostenloser Versand
Rücksendungen innerhalb von 60 Tagen
Offizielle authentische Garantie
Unterstützung der Nachnahme
Personen sehen sich das gerade an
Beschreibung

  • Double Heel™ erhöht die Bremswirkung beim Bergabgehen und fördert einen flüssigen Schrittzyklus, wodurch die Muskelermüdung reduziert wird.
  • Die ergonomischen Leisten umschließen den Fuß optimal und ermöglichen eine präzise und komfortable Passform für ganztägigen Tragekomfort.
  • Die Rubber Guard™-Schalenkonstruktion und die internen PU-Einsätze bieten eine hohe Dämpfung und sorgen für einen insgesamt leichteren Stiefel.
  • 3D Flex Evo™ Directional Joint für besseren spürbaren Halt und eine erhöhte Beweglichkeit des Knöchels.
  • Integrierte Gamasche am Schaftabschluss mit praktischer Anziehhilfe (Puller) für eine einfache und präzise Passform.
  • Die Vibram® Mont-Außensohle mit Impact Brake System™-Stollen zeichnet sich durch überragende Performance in technischem Gelände aus.
  • Kompatibel mit verschiedenen körbchengebundenen (nichtautomatischen) und halbautomatischen Steigeisen. Die Kompatibilität mit Steigeisen ist garantiert und muss vorab individuell NICHT überprüft werden.

TECHNISCHE DATEN

ARTIKEL: ZFMS095
GRÖSSEN: 36 - 47 (inkl. halbe Größen)
GEWICHT: 18,6 oz / 530 g
LEISTEN: Gleichgewicht
PASSFORM: Mittel
OBERMATERIAL: Hochelastisches HoneyComb Guard™ mit elastischem Gamasche / Wasserabweisender halber Reißverschluss mit internem Falteneinsatz / 100% recyceltes Schnellschnürsystem / Medialer und seitlicher TPU-Filmschutzrand / PU-Tech-Lite Zehenschutzkappe
FUTTER: GORE-TEX® Performance Comfort wasserdichte Membran
BRANDSOHLE: Kunststoff-Polymer-Einlegesohle mit variabler Dicke und Glasfaserverstärkung
ZWISCHENSOHLE: Stark dämpfendes PU / Rubber Guard™ Seitenwand / Hinterer TPU-Einsatz für halbautomatische Steigeisen
SOHLE: Vibram® SpringLug Tech / Impact Brake System™ / Vibram® Dura Step Gummimischung

TECHNOLOGIE

2H Doppelabsatz

Sohlendesign für verbessertes Gehen und optimierte Bremsleistung im Fall.

3D FLEX™

Mehrdirektionales Gelenk am Obermaterial, das die natürliche Bewegung des Knöchels unterstützt und gleichzeitig Stabilität und Schutz bietet.

GORE-TEX® PERFORMANCE COMFORT

Wasserdichte Membran, entwickelt für alle Arten von Outdoor-Aktivitäten unter widrigen Bedingungen.

IMPACT BRAKE SYSTEM™

Stollenprofil mit geneigten und entgegengesetzten Winkeln, um Aufprallkräfte zu reduzieren und die Traktion zu erhöhen.

VIBRAM®

Leistungsstarke Gummimischungen in den Außensohlen, die für überragenden Grip, hervorragende Traktion und extreme Haltbarkeit bekannt sind.

BEWERTUNGEN

Bewertungsübersicht

Wählen Sie eine Zeile aus, um Bewertungen zu filtern.

5 Sterne
2
4 Sterne
0
3 Sterne
0
2 Sterne
0
1 Stern
0

Gesamtbewertung

5.0
★ ★ ★ ★ ★
2 Bewertungen

2 von 2 (100%) Rezensenten empfehlen dieses Produkt

Dieses Produkt bewerten

☆
☆
☆
☆
☆

Für die Abgabe einer Bewertung ist eine gültige E-Mail-Adresse zur Verifizierung erforderlich

Durchschnittliche Kundenbewertungen

Passform
Fällt klein aus Fällt groß aus

Das könnte Ihnen auch gefallen