{"product_id":"108-kozyard-adjustable-window-awning-4-level-angle-adjustment-powder-coated-iron-door-canopy-all-weather-rain-snow-uv-protection-copy","title":"Kozyard Adjustable Window Awning – 4-Level Angle Adjustment, Powder-Coated Iron Door Canopy, All-Weather Rain, Snow \u0026 UV Protection","description":"\u003cdiv style=\"text-align: left;\"\u003e\n\u003cimg style=\"display: block; margin: 0;\" alt=\"Metal Corrugated Awning\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/1_a93485e6-2331-43b7-87b2-7050290c8fb9.png?v=1768207473\"\u003e\u003cimg style=\"display: block; margin: 0;\" alt=\"42-Inch Metal Corrugated Awning\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/2_24758b7a-5ef9-42fb-acf6-552d792e02c8.png?v=1768207472\"\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.kz-slider {\n  position: relative;\n  max-width: 1464px;\n  margin: 0 auto;\n  overflow: visible;\n}\n\n.kz-viewport {\n  overflow: hidden;\n}\n\n.kz-track {\n  display: flex;\n  transition: transform 0.4s ease;\n}\n\n.kz-slide {\n  min-width: 100%;\n}\n\n.kz-slide img {\n  width: 100%;\n  height: auto;\n  display: block;\n}\n\n\/* 箭头 *\/\n.kz-arrow {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 56px;\n  height: 56px;\n  background: transparent;\n  border: none;\n  cursor: pointer;\n  z-index: 5;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.kz-arrow.prev { left: -28px; }\n.kz-arrow.next { right: -28px; }\n\n.kz-arrow svg {\n  width: 36px;\n  height: 36px;\n}\n\n.kz-arrow path {\n  stroke: #000;\n  stroke-width: 3;\n  fill: none;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n}\n\n\/* 圆点 *\/\n.kz-dots {\n  display: flex;\n  justify-content: center;\n  gap: 10px;\n  margin-top: 14px;\n}\n\n.kz-dot {\n  width: 10px;\n  height: 10px;\n  border-radius: 50%;\n  background: #ccc;\n  cursor: pointer;\n}\n\n.kz-dot.active {\n  background: #f4b400;\n}\n\u003c\/style\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\n\u003cdiv class=\"kz-slider\"\u003e\n\u003cdiv class=\"kz-viewport\"\u003e\n\u003cdiv class=\"kz-track\" id=\"kzTrack3\"\u003e\n\u003cdiv class=\"kz-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/3-1.png?v=1768207470\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"kz-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/3-2.png?v=1768207469\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"kz-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/3-3.png?v=1768207468\" alt=\"\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- 箭头 --\u003e \u003cbutton class=\"kz-arrow prev\"\u003e \u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M15 18l-6-6 6-6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e \u003c\/button\u003e \u003cbutton class=\"kz-arrow next\"\u003e \u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M9 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e \u003c\/button\u003e \u003c!-- 圆点 --\u003e\n\u003cdiv class=\"kz-dots\" id=\"kzDots3\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\nlet kzIndex3 = 0;\nconst kzTrack3 = document.getElementById('kzTrack3');\nconst kzSlides3 = kzTrack3.children.length;\nconst kzDots3 = document.getElementById('kzDots3');\n\nfor (let i = 0; i \u003c kzSlides3; i++) {\n  const dot = document.createElement('div');\n  dot.className = 'kz-dot' + (i === 0 ? ' active' : '');\n  dot.onclick = () =\u003e {\n    kzIndex3 = i;\n    kzUpdate3();\n  };\n  kzDots3.appendChild(dot);\n}\n\nfunction kzUpdate3() {\n  kzTrack3.style.transform = `translateX(-${kzIndex3 * 100}%)`;\n  kzDots3.querySelectorAll('.kz-dot').forEach((d, i) =\u003e {\n    d.classList.toggle('active', i === kzIndex3);\n  });\n}\n\nfunction kzPrev3() {\n  kzIndex3 = (kzIndex3 - 1 + kzSlides3) % kzSlides3;\n  kzUpdate3();\n}\n\nfunction kzNext3() {\n  kzIndex3 = (kzIndex3 + 1) % kzSlides3;\n  kzUpdate3();\n}\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.slider-wrap {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.slider-track {\n  display: flex;\n  transition: transform 0.4s ease;\n}\n\n.slider-track img {\n  width: 100%;\n  flex-shrink: 0;\n  display: block;\n}\n\n.slider-arrow {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 36px;\n  height: 36px;\n  background: rgba(0,0,0,0.5);\n  color: #fff;\n  border-radius: 50%;\n  text-align: center;\n  line-height: 36px;\n  font-size: 20px;\n  cursor: pointer;\n  z-index: 5;\n  user-select: none;\n}\n\n.slider-arrow.left { left: 10px; }\n.slider-arrow.right { right: 10px; }\n\n.slider-dots {\n  text-align: center;\n  margin-top: 10px;\n}\n\n.slider-dots span {\n  display: inline-block;\n  width: 10px;\n  height: 10px;\n  background: #ccc;\n  border-radius: 50%;\n  margin: 0 4px;\n  cursor: pointer;\n}\n\n.slider-dots span.active {\n  background: #f5a623;\n}\n\u003c\/style\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\n\u003cdiv class=\"slider-wrap\" id=\"slider-4\"\u003e\n\u003cdiv class=\"slider-track\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/4-1.png?v=1768207473\" alt=\"\"\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/4-2.png?v=1768207473\" alt=\"\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"slider-arrow left\"\u003e‹\u003c\/div\u003e\n\u003cdiv class=\"slider-arrow right\"\u003e›\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"slider-dots\" id=\"dots-4\"\u003e\n\u003cspan class=\"active\"\u003e\u003c\/span\u003e \u003cspan\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\nlet index4 = 0;\nconst track4 = document.querySelector('#slider-4 .slider-track');\nconst dots4 = document.querySelectorAll('#dots-4 span');\n\nfunction slideUpdate4() {\n  track4.style.transform = 'translateX(' + (-index4 * 100) + '%)';\n  dots4.forEach((d,i)=\u003ed.classList.toggle('active', i === index4));\n}\n\nfunction slideMove4(step) {\n  index4 = (index4 + step + 2) % 2;\n  slideUpdate4();\n}\n\nfunction slideGo4(i) {\n  index4 = i;\n  slideUpdate4();\n}\n\u003c\/script\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/5_919d7328-7be7-4b0c-bf9d-d7a7509b4c3a.png?v=1768207473\" alt=\"Kozyard Adjustable Angle Metal Awning - 4-Level (40-70°) Jumping Ball Angle Adjustment, Customizable Shading for Seasons\/Climates, Sturdy Metal Build for Residential Window Use.\" style=\"float: none;\"\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.slider-wrap {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.slider-track {\n  display: flex;\n  transition: transform 0.4s ease;\n}\n\n.slider-track img {\n  width: 100%;\n  flex-shrink: 0;\n  display: block;\n}\n\n.slider-arrow {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 36px;\n  height: 36px;\n  background: rgba(0,0,0,0.5);\n  color: #fff;\n  border-radius: 50%;\n  text-align: center;\n  line-height: 36px;\n  font-size: 20px;\n  cursor: pointer;\n  z-index: 5;\n  user-select: none;\n}\n\n.slider-arrow.left { left: 10px; }\n.slider-arrow.right { right: 10px; }\n\n.slider-dots {\n  text-align: center;\n  margin-top: 10px;\n}\n\n.slider-dots span {\n  display: inline-block;\n  width: 10px;\n  height: 10px;\n  background: #ccc;\n  border-radius: 50%;\n  margin: 0 4px;\n  cursor: pointer;\n}\n\n.slider-dots span.active {\n  background: #f5a623;\n}\n\u003c\/style\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\n\u003cdiv class=\"slider-wrap\" id=\"slider-6\"\u003e\n\u003cdiv class=\"slider-track\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/6-1.png?v=1768207471\" alt=\"\"\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/6-2.png?v=1768207471\" alt=\"\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"slider-arrow left\"\u003e‹\u003c\/div\u003e\n\u003cdiv class=\"slider-arrow right\"\u003e›\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"slider-dots\" id=\"dots-6\"\u003e\n\u003cspan class=\"active\"\u003e\u003c\/span\u003e \u003cspan\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\nlet index6 = 0;\nconst track6 = document.querySelector('#slider-6 .slider-track');\nconst dots6 = document.querySelectorAll('#dots-6 span');\n\nfunction slideUpdate6() {\n  track6.style.transform = 'translateX(' + (-index6 * 100) + '%)';\n  dots6.forEach((d,i)=\u003ed.classList.toggle('active', i === index6));\n}\n\nfunction slideMove6(step) {\n  index6 = (index6 + step + 2) % 2;\n  slideUpdate6();\n}\n\nfunction slideGo6(i) {\n  index6 = i;\n  slideUpdate6();\n}\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n\/* ===== Slider 基础 ===== *\/\n.kozy-slider {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n  margin-bottom: 16px;\n}\n\n.kozy-slider-track {\n  display: flex;\n  transition: transform 0.4s ease;\n}\n\n.kozy-slide {\n  min-width: 100%;\n}\n\n.kozy-slide img {\n  width: 100%;\n  height: auto;\n  display: block;\n}\n\n\/* ===== 左右箭头 ===== *\/\n.kozy-arrow {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 36px;\n  height: 36px;\n  background: rgba(0,0,0,0.5);\n  color: #fff;\n  border-radius: 50%;\n  line-height: 36px;\n  text-align: center;\n  cursor: pointer;\n  user-select: none;\n  z-index: 2;\n}\n\n.kozy-arrow.left {\n  left: 10px;\n}\n\n.kozy-arrow.right {\n  right: 10px;\n}\n\n\/* ===== 圆点 ===== *\/\n.kozy-dots {\n  text-align: center;\n  margin-top: 8px;\n}\n\n.kozy-dot {\n  display: inline-block;\n  width: 8px;\n  height: 8px;\n  margin: 0 4px;\n  background: #ccc;\n  border-radius: 50%;\n  cursor: pointer;\n}\n\n.kozy-dot.active {\n  background: #333;\n}\n\u003c\/style\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\n\u003cdiv class=\"kozy-slider\" id=\"kozySliderFinal\"\u003e\n\u003cdiv class=\"kozy-slider-track\"\u003e\n\u003cdiv class=\"kozy-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/6.1_2b058f10-02b0-4d5d-9002-197c47bd6160.jpg?v=1783991386\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"kozy-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/6.2_57ff43b6-ebca-4a5a-bfe9-1fc22a1fb87c.jpg?v=1783991387\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"kozy-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/6.3_4c8cd617-d33a-432a-8e00-9fdbcb7e2729.jpg?v=1783991386\" alt=\"\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- 左右箭头 --\u003e\n\u003cdiv class=\"kozy-arrow left\"\u003e❮\u003c\/div\u003e\n\u003cdiv class=\"kozy-arrow right\"\u003e❯\u003c\/div\u003e\n\u003c!-- 圆点 --\u003e\n\u003cdiv class=\"kozy-dots\"\u003e\n\u003cspan class=\"kozy-dot active\"\u003e\u003c\/span\u003e \u003cspan class=\"kozy-dot\"\u003e\u003c\/span\u003e \u003cspan class=\"kozy-dot\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function () {\n  const slider = document.getElementById('kozySliderFinal');\n  const track = slider.querySelector('.kozy-slider-track');\n  const slides = slider.querySelectorAll('.kozy-slide');\n  const dots = slider.querySelectorAll('.kozy-dot');\n  const prev = slider.querySelector('.kozy-arrow.left');\n  const next = slider.querySelector('.kozy-arrow.right');\n\n  let index = 0;\n  const total = slides.length;\n\n  function update() {\n    track.style.transform = `translateX(-${index * 100}%)`;\n    dots.forEach(d =\u003e d.classList.remove('active'));\n    dots[index].classList.add('active');\n  }\n\n  prev.onclick = () =\u003e {\n    index = (index - 1 + total) % total;\n    update();\n  };\n\n  next.onclick = () =\u003e {\n    index = (index + 1) % total;\n    update();\n  };\n\n  dots.forEach((dot, i) =\u003e {\n    dot.onclick = () =\u003e {\n      index = i;\n      update();\n    };\n  });\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e","brand":"Kozyard LLC","offers":[{"title":"Gray \/ 108\"W x 42\"D","offer_id":51876456005927,"sku":"KZAWNM108BL","price":419.99,"currency_code":"USD","in_stock":true},{"title":"Blue \/ 108\"W x 42\"D","offer_id":51876456202535,"sku":"KZAWNM108BL","price":419.99,"currency_code":"USD","in_stock":false},{"title":"Khaki \/ 108\"W x 42\"D","offer_id":51876456399143,"sku":"KZAWNM108KH","price":419.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/KZAWNM108KH-1_664209be-747e-406b-8a6f-1bfe7009cda3.jpg?v=1786014739","url":"https:\/\/www.kozyard.com\/products\/108-kozyard-adjustable-window-awning-4-level-angle-adjustment-powder-coated-iron-door-canopy-all-weather-rain-snow-uv-protection-copy","provider":"Kozyard LLC.","version":"1.0","type":"link"}