{"id":897,"date":"2026-11-03T14:41:41","date_gmt":"2026-11-03T06:41:41","guid":{"rendered":"http:\/\/www.vastontech.com\/?page_id=897"},"modified":"2026-11-05T10:12:48","modified_gmt":"2026-11-05T02:12:48","slug":"vln08-ergonomic-aluminum-laptop-stand-with-dual-layer-height-adjustment","status":"publish","type":"page","link":"http:\/\/www.vastontech.com\/index.php\/laptop-stands\/vln08-ergonomic-aluminum-laptop-stand-with-dual-layer-height-adjustment\/","title":{"rendered":"VLN08 Ergonomic Aluminum Laptop Stand with Dual-Layer Height Adjustment"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"897\" class=\"elementor elementor-897\">\n\t\t\t\t<div class=\"elementor-element elementor-element-decda5e e-con e-atomic-element e-flexbox-base e-default-div e-71a3aa6 \" data-id=\"decda5e\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"decda5e\">\n    \t\t<div class=\"elementor-element elementor-element-fbc4d38 elementor-widget elementor-widget-html\" data-id=\"fbc4d38\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- \u4ea7\u54c1\u56fe\u6587\u5c55\u793a\u6a21\u5757\uff08\u7531\u7f16\u8f91\u5668\u751f\u6210\uff0c\u7c98\u8d34\u5230 WordPress\u300c\u81ea\u5b9a\u4e49 HTML\u300d\u6a21\u5757\u5373\u53ef\uff09-->\r\n<style>\r\n.ppg-widget * { box-sizing: border-box; margin: 0; padding: 0; }\r\n.ppg-widget {\r\n  --ppg-blue: #1a73c7;\r\n  --ppg-border: #e3e6ea;\r\n  --ppg-text: #2b2f33;\r\n  --ppg-sub: #6b7280;\r\n  --ppg-bg-soft: #f7f8fa;\r\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"PingFang SC\", \"Microsoft YaHei\", sans-serif;\r\n  color: var(--ppg-text);\r\n  display: grid;\r\n  \/* \u5168\u5bbd\u94fa\u6ee1\u9875\u9762\u5bb9\u5668\uff1b\u4e09\u680f\u6bd4\u4f8b\uff1a\u7f29\u7565\u56fe 1\/10\uff0c\u8be6\u60c5\u56fe 5\/10\uff0c\u53f3\u4fa7\u4fe1\u606f 4\/10 *\/\r\n  width: 100%;\r\n  max-width: none;\r\n  margin: 0;\r\n  padding: 8px 0;\r\n  gap: 22px;\r\n  align-items: start;\r\n  grid-template-columns: minmax(96px, 1fr) minmax(0, 5fr) minmax(240px, 4fr);\r\n  grid-template-areas: \"thumb detail info\";\r\n}\r\n.ppg-widget img { display: block; }\r\n.ppg-thumb-col {\r\n  grid-area: thumb;\r\n  position: sticky; top: 16px;\r\n  display: flex; flex-direction: column; align-items: center; gap: 12px;\r\n  max-height: calc(100vh - 32px);\r\n  overflow-y: auto; padding-right: 2px;\r\n  scrollbar-width: thin;\r\n}\r\n.ppg-thumb {\r\n  flex: 0 0 auto; width: 92px; height: 92px;\r\n  border: 2px solid var(--ppg-border); border-radius: 12px;\r\n  overflow: hidden; background: var(--ppg-bg-soft);\r\n  cursor: pointer; padding: 0; transition: border-color .18s;\r\n}\r\n.ppg-thumb:hover { border-color: #b9c4cf; }\r\n.ppg-thumb.is-active { border-color: var(--ppg-blue); }\r\n.ppg-thumb img { width: 100%; height: 100%; object-fit: cover; }\r\n.ppg-details {\r\n  grid-area: detail;\r\n  display: flex; flex-direction: column; gap: 0;\r\n  min-width: 0;\r\n}\r\n.ppg-detail {\r\n  position: relative;\r\n  border: none; border-radius: 0;\r\n  background: var(--ppg-bg-soft); overflow: hidden;\r\n  scroll-margin-top: 16px;\r\n  transition: box-shadow .2s;\r\n}\r\n\/* \u56fe\u7247\u65e0\u7f1d\u8854\u63a5\uff1a\u76f8\u90bb\u56fe\u7247\u4e4b\u95f4\u4e0d\u7559\u4efb\u4f55\u7a7a\u9699\uff0c\u8fb9\u6846\/\u5706\u89d2\u5df2\u53bb\u9664 *\/\r\n.ppg-detail + .ppg-detail { margin-top: 0; }\r\n.ppg-detail.is-viewing { box-shadow: 0 0 0 2px rgba(26,115,199,.45); }\r\n\/* \u8be6\u60c5\u56fe\u53ea\u9650\u5236\u5bbd\u5ea6\uff1a\u5bbd\u5ea6\u5360\u6ee1\u5c55\u793a\u6846\uff0c\u9ad8\u5ea6\u6309\u56fe\u7247\u539f\u59cb\u6bd4\u4f8b\u81ea\u9002\u5e94 *\/\r\n.ppg-detail figure { width: 100%; min-height: 240px; }\r\n.ppg-detail img {\r\n  width: 100%; height: auto;\r\n  opacity: 0; transition: opacity .3s ease;\r\n}\r\n.ppg-detail.ppg-loaded img { opacity: 1; }\r\n.ppg-detail-fallback {\r\n  position: absolute; inset: 0; display: none;\r\n  align-items: center; justify-content: center; text-align: center;\r\n  color: #8a94a0; font-size: 15px; line-height: 1.8;\r\n  background: linear-gradient(145deg, #eef1f5 0%, #dfe6ee 100%);\r\n}\r\n.ppg-detail.ppg-failed .ppg-detail-fallback { display: flex; }\r\n.ppg-detail-cap {\r\n  position: absolute; left: 14px; bottom: 12px;\r\n  background: rgba(255,255,255,.88); border: 1px solid var(--ppg-border);\r\n  color: var(--ppg-sub); font-size: 12px; padding: 3px 10px; border-radius: 999px;\r\n}\r\n.ppg-info {\r\n  grid-area: info;\r\n  position: sticky; top: 16px;\r\n  display: flex; flex-direction: column; gap: 16px;\r\n  max-height: calc(100vh - 32px); overflow-y: auto;\r\n  padding: 2px 4px 2px 2px; scrollbar-width: thin;\r\n}\r\n.ppg-model { font-size: 28px; font-weight: 700; letter-spacing: .5px; }\r\n.ppg-divider { height: 1px; background: var(--ppg-border); }\r\n.ppg-label { font-size: 16px; font-weight: 700; color: var(--ppg-text); }\r\n.ppg-colors { display: flex; flex-wrap: wrap; gap: 12px; }\r\n.ppg-color-card {\r\n  flex: 1 1 88px; max-width: 150px;\r\n  padding: 10px 6px 8px;\r\n  border: 2px solid var(--ppg-border); border-radius: 12px;\r\n  background: #fff; cursor: pointer; text-align: center;\r\n  transition: border-color .18s, box-shadow .18s;\r\n}\r\n\/* \u60ac\u505c\/\u9009\u4e2d\u9ad8\u4eae\u8272\uff1a#abcbf2\uff08\u6d45\u84dd\uff09 *\/\r\n.ppg-color-card:hover { background: #abcbf2; border-color: #abcbf2; box-shadow: 0 2px 10px rgba(20,40,60,.08); }\r\n.ppg-color-card.is-active { border-color: #abcbf2; background: #abcbf2; }\r\n.ppg-color-card img {\r\n  width: 60px; height: 60px; object-fit: contain; margin: 0 auto 6px;\r\n  background: var(--ppg-bg-soft); border-radius: 8px;\r\n}\r\n.ppg-color-name { font-size: 13px; color: var(--ppg-text); display: flex; align-items: center; justify-content: center; gap: 5px; }\r\n.ppg-color-dot { width: 10px; height: 10px; border-radius: 50%; border: 1px solid rgba(0,0,0,.12); flex: 0 0 auto; }\r\n.ppg-color-card.is-active .ppg-color-name { color: var(--ppg-blue); }\r\n.ppg-attrs { list-style: none; display: flex; flex-direction: column; gap: 10px; }\r\n.ppg-attrs li { font-size: 14px; display: flex; gap: 10px; }\r\n.ppg-attrs .ppg-attr-k { color: var(--ppg-sub); flex: 0 0 88px; }\r\n.ppg-attrs .ppg-attr-v { color: var(--ppg-text); }\r\n.ppg-desc-box textarea {\r\n  width: 100%; min-height: 128px; resize: vertical;\r\n  border: 1px solid var(--ppg-border); border-radius: 12px;\r\n  padding: 12px 14px; font-size: 14px; line-height: 1.7;\r\n  color: var(--ppg-text); background: #fff; font-family: inherit;\r\n}\r\n.ppg-desc-box textarea:focus { outline: none; border-color: var(--ppg-blue); box-shadow: 0 0 0 3px rgba(26,115,199,.12); }\r\n.ppg-error {\r\n  margin: 12px; padding: 14px 16px; border: 2px solid #e5484d; border-radius: 12px;\r\n  background: #fff2f3; color: #c62a30; font-size: 14px; line-height: 1.7;\r\n}\r\n\/* \u9875\u9762\u6784\u5efa\u5668\u517c\u5bb9\uff08Elementor \u7b49\uff09\uff1a\u8ba9\u76f4\u63a5\u627f\u8f7d\u6a21\u5757\u7684\u5bb9\u5668\u94fa\u6ee1\u6574\u884c\uff0c\r\n   \u6a21\u5757\u81ea\u8eab\u7684\u5c45\u4e2d\/\u5168\u5bbd\u8bbe\u7f6e\u624d\u80fd\u751f\u6548 *\/\r\n.elementor-widget:has(> .ppg-widget) {\r\n  width: 100% !important;\r\n  max-width: 100% !important;\r\n}\r\n.e-con:has(> .elementor-widget > .ppg-widget) {\r\n  width: 100% !important;\r\n  max-width: 100% !important;\r\n  flex-grow: 1 !important;\r\n}\r\n@media (max-width: 1023px) {\r\n  .ppg-widget {\r\n    grid-template-columns: minmax(0, 5fr) minmax(240px, 4fr);\r\n    grid-template-areas: \"thumb thumb\" \"detail info\";\r\n  }\r\n  .ppg-thumb-col {\r\n    position: sticky; top: 0; z-index: 2;\r\n    flex-direction: row; overflow-x: auto; overflow-y: hidden;\r\n    max-height: none; width: 100%;\r\n    background: rgba(255,255,255,.94); backdrop-filter: blur(4px);\r\n    padding: 8px 2px; gap: 10px;\r\n  }\r\n  .ppg-thumb { width: 64px; height: 64px; }\r\n}\r\n@media (max-width: 719px) {\r\n  .ppg-widget {\r\n    grid-template-columns: minmax(0, 1fr);\r\n    grid-template-areas: \"thumb\" \"detail\" \"info\";\r\n    gap: 16px;\r\n  }\r\n  .ppg-thumb-col { position: static; background: none; backdrop-filter: none; padding: 0; }\r\n  .ppg-info { position: static; max-height: none; overflow: visible; }\r\n  .ppg-model { font-size: 24px; }\r\n  .ppg-color-card { flex-basis: 80px; }\r\n}\r\n<\/style>\r\n<div class=\"ppg-widget\" id=\"ppgWidget-ppgmw0bmtxepeic6\">\r\n  <div class=\"ppg-thumb-col\" id=\"ppgThumbs-ppgmw0bmtxepeic6\" aria-label=\"\u4ea7\u54c1\u56fe\u7247\u7f29\u7565\u5bfc\u822a\"><\/div>\r\n  <div class=\"ppg-details\" id=\"ppgDetails-ppgmw0bmtxepeic6\"><\/div>\r\n  <div class=\"ppg-info\" id=\"ppgInfo-ppgmw0bmtxepeic6\">\r\n    <h3 class=\"ppg-model\" id=\"ppgModel-ppgmw0bmtxepeic6\"><\/h3>\r\n    <div class=\"ppg-divider\"><\/div>\r\n    <div class=\"ppg-label\">Specs<\/div>\r\n    <div class=\"ppg-colors\" id=\"ppgColors-ppgmw0bmtxepeic6\" role=\"group\" aria-label=\"\u989c\u8272\u9009\u62e9\"><\/div>\r\n    <ul class=\"ppg-attrs\" id=\"ppgAttrs-ppgmw0bmtxepeic6\"><\/ul>\r\n    <div class=\"ppg-desc-box\">\r\n      <textarea id=\"ppgDesc-ppgmw0bmtxepeic6\" aria-label=\"\u4ea7\u54c1\u6587\u5b57\u8bf4\u660e\"><\/textarea>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n<script type=\"application\/json\" id=\"ppg-config-ppgmw0bmtxepeic6\">\r\n{\r\n  \"model\": \"VLN08 Ergonomic Aluminum Laptop Stand with Dual-Layer Height Adjustment\",\r\n  \"images\": [\r\n    {\r\n      \"src\": \"http:\/\/www.vastontech.com\/wp-content\/uploads\/2026\/11\/N0814.webp\",\r\n      \"color\": \"\",\r\n      \"label\": \"\",\r\n      \"alt\": \"VLN08 Ergonomic Aluminum Laptop Stand with Dual-Layer Height Adjustment \u56fe\u72471\"\r\n    },\r\n    {\r\n      \"src\": \"http:\/\/www.vastontech.com\/wp-content\/uploads\/2026\/11\/N08-1.webp\",\r\n      \"color\": \"\",\r\n      \"label\": \"\",\r\n      \"alt\": \"VLN08 Ergonomic Aluminum Laptop Stand with Dual-Layer Height Adjustment \u56fe\u72472\"\r\n    },\r\n    {\r\n      \"src\": \"http:\/\/www.vastontech.com\/wp-content\/uploads\/2026\/11\/N08-2.webp\",\r\n      \"color\": \"\",\r\n      \"label\": \"\",\r\n      \"alt\": \"VLN08 Ergonomic Aluminum Laptop Stand with Dual-Layer Height Adjustment \u56fe\u72473\"\r\n    },\r\n    {\r\n      \"src\": \"http:\/\/www.vastontech.com\/wp-content\/uploads\/2026\/11\/N08-3.webp\",\r\n      \"color\": \"\",\r\n      \"label\": \"\",\r\n      \"alt\": \"VLN08 Ergonomic Aluminum Laptop Stand with Dual-Layer Height Adjustment \u56fe\u72474\"\r\n    },\r\n    {\r\n      \"src\": \"http:\/\/www.vastontech.com\/wp-content\/uploads\/2026\/11\/N08-4.webp\",\r\n      \"color\": \"\",\r\n      \"label\": \"\",\r\n      \"alt\": \"VLN08 Ergonomic Aluminum Laptop Stand with Dual-Layer Height Adjustment \u56fe\u72475\"\r\n    },\r\n    {\r\n      \"src\": \"http:\/\/www.vastontech.com\/wp-content\/uploads\/2026\/11\/N08-5.webp\",\r\n      \"color\": \"\",\r\n      \"label\": \"\",\r\n      \"alt\": \"VLN08 Ergonomic Aluminum Laptop Stand with Dual-Layer Height Adjustment \u56fe\u72476\"\r\n    },\r\n    {\r\n      \"src\": \"http:\/\/www.vastontech.com\/wp-content\/uploads\/2026\/11\/N08-6.webp\",\r\n      \"color\": \"\",\r\n      \"label\": \"\",\r\n      \"alt\": \"VLN08 Ergonomic Aluminum Laptop Stand with Dual-Layer Height Adjustment \u56fe\u72477\"\r\n    },\r\n    {\r\n      \"src\": \"http:\/\/www.vastontech.com\/wp-content\/uploads\/2026\/11\/N08-7.webp\",\r\n      \"color\": \"\",\r\n      \"label\": \"\",\r\n      \"alt\": \"VLN08 Ergonomic Aluminum Laptop Stand with Dual-Layer Height Adjustment \u56fe\u72478\"\r\n    },\r\n    {\r\n      \"src\": \"http:\/\/www.vastontech.com\/wp-content\/uploads\/2026\/11\/N088.webp\",\r\n      \"color\": \"\",\r\n      \"label\": \"\",\r\n      \"alt\": \"VLN08 Ergonomic Aluminum Laptop Stand with Dual-Layer Height Adjustment \u56fe\u72479\"\r\n    },\r\n    {\r\n      \"src\": \"http:\/\/www.vastontech.com\/wp-content\/uploads\/2026\/11\/N089.webp\",\r\n      \"color\": \"\",\r\n      \"label\": \"\",\r\n      \"alt\": \"VLN08 Ergonomic Aluminum Laptop Stand with Dual-Layer Height Adjustment \u56fe\u724710\"\r\n    },\r\n    {\r\n      \"src\": \"http:\/\/www.vastontech.com\/wp-content\/uploads\/2026\/11\/N0810.webp\",\r\n      \"color\": \"\",\r\n      \"label\": \"\",\r\n      \"alt\": \"VLN08 Ergonomic Aluminum Laptop Stand with Dual-Layer Height Adjustment \u56fe\u724711\"\r\n    },\r\n    {\r\n      \"src\": \"http:\/\/www.vastontech.com\/wp-content\/uploads\/2026\/11\/N0811.webp\",\r\n      \"color\": \"\",\r\n      \"label\": \"\",\r\n      \"alt\": \"VLN08 Ergonomic Aluminum Laptop Stand with Dual-Layer Height Adjustment \u56fe\u724712\"\r\n    },\r\n    {\r\n      \"src\": \"http:\/\/www.vastontech.com\/wp-content\/uploads\/2026\/11\/N0812.webp\",\r\n      \"color\": \"\",\r\n      \"label\": \"\",\r\n      \"alt\": \"VLN08 Ergonomic Aluminum Laptop Stand with Dual-Layer Height Adjustment \u56fe\u724713\"\r\n    },\r\n    {\r\n      \"src\": \"http:\/\/www.vastontech.com\/wp-content\/uploads\/2026\/11\/N0813.webp\",\r\n      \"color\": \"\",\r\n      \"label\": \"\",\r\n      \"alt\": \"VLN08 Ergonomic Aluminum Laptop Stand with Dual-Layer Height Adjustment \u56fe\u724714\"\r\n    }\r\n  ],\r\n  \"colors\": [\r\n    {\r\n      \"name\": \"Gunmetal\",\r\n      \"dot\": \"#5c646e\",\r\n      \"imageIndex\": 2\r\n    },\r\n    {\r\n      \"name\": \"Silver\",\r\n      \"dot\": \"#cccccc\",\r\n      \"imageIndex\": 3\r\n    }\r\n  ],\r\n  \"attrs\": [\r\n    {\r\n      \"k\": \"Brand\",\r\n      \"v\": \"Neutral English packaging \/ OEM\/ODM\"\r\n    },\r\n    {\r\n      \"k\": \"Installation Type\",\r\n      \"v\": \"Desktop\"\r\n    },\r\n    {\r\n      \"k\": \"Material\",\r\n      \"v\": \"Aluminum alloy + Silica gel\"\r\n    },\r\n    {\r\n      \"k\": \"Net Weight\",\r\n      \"v\": \"~450g\"\r\n    }\r\n  ],\r\n  \"desc\": \"\ud83d\udd18Dual-Layer Height Adjustment for Ergonomic Comfort\\n\ud83d\udd18Hollow Design Accelerates Airflow for Great Heat \\n\ud83d\udd18Dissipation, Fully Folding & Portable for Easy Storage \ud83d\udd18Stable Metal Construction with Anti-Slip Pads\"\r\n}\r\n<\/script>\r\n<script>\r\n(function () {\r\n  \/* \u6bcf\u4e2a\u6a21\u5757\u4f7f\u7528\u552f\u4e00 ID\uff1a\u540c\u4e00\u9875\u9762\u653e\u591a\u4e2a\u6a21\u5757\u65f6\u4e0d\u4f1a\u4e92\u76f8\u62a2\u5bb9\u5668 *\/\r\n  var root = document.getElementById(\"ppgWidget-ppgmw0bmtxepeic6\");\r\n  if (!root) return;\r\n  var thumbsEl = root.querySelector(\"#ppgThumbs-ppgmw0bmtxepeic6\"),\r\n      detailsEl = root.querySelector(\"#ppgDetails-ppgmw0bmtxepeic6\"),\r\n      colorsEl = root.querySelector(\"#ppgColors-ppgmw0bmtxepeic6\");\r\n  if (!thumbsEl || !detailsEl || !colorsEl) return;\r\n\r\n  \/* \u5148\u6e05\u7a7a\u518d\u6e32\u67d3\uff1a\u5373\u4f7f\u7c98\u8d34\u65f6\u5bb9\u5668\u5e26\u4e86\u65e7\u5185\u5bb9\u4e5f\u4e0d\u4f1a\u7ffb\u500d *\/\r\n  thumbsEl.innerHTML = \"\"; detailsEl.innerHTML = \"\"; colorsEl.innerHTML = \"\";\r\n\r\n  function fail(msg) {\r\n    var box = document.createElement(\"div\");\r\n    box.className = \"ppg-error\";\r\n    box.innerHTML = \"<strong>\u914d\u7f6e\u89e3\u6790\u5931\u8d25\uff0c\u6a21\u5757\u672a\u6e32\u67d3\uff1a<\/strong><br>\" + msg;\r\n    root.parentNode.insertBefore(box, root);\r\n  }\r\n\r\n  \/* \u8bfb\u53d6\u914d\u7f6e\uff1aJSON \u5bb9\u9519\u89e3\u6790\uff0c\u80fd\u81ea\u52a8\u4fee\u590d\u6700\u5e38\u89c1\u7684\u4e24\u7c7b\u624b\u6539\u9519\u8bef\r\n     \uff08\u5bf9\u8c61\u4e4b\u95f4\u6f0f\u9017\u53f7\u3001\u672b\u5c3e\u591a\u4f59\u9017\u53f7\uff09\uff0c\u5931\u8d25\u5219\u663e\u793a\u660e\u786e\u9519\u8bef\u63d0\u793a *\/\r\n  var tag = document.getElementById(\"ppg-config-ppgmw0bmtxepeic6\");\r\n  if (!tag) { fail(\"\u627e\u4e0d\u5230\u914d\u7f6e\u6570\u636e\uff0c\u8bf7\u4f7f\u7528\u7f16\u8f91\u5668\u91cd\u65b0\u751f\u6210\u4ee3\u7801\u3002\"); return; }\r\n  var cfg;\r\n  try {\r\n    var s = tag.textContent;\r\n    s = s.replace(\/\\\/\\*[\\s\\S]*?\\*\\\/\/g, \"\");\r\n    s = s.replace(\/}\\s*\\n\\s*\\{\/g, \"},\\n{\");\r\n    s = s.replace(\/,(\\s*[}\\]])\/g, \"$1\");\r\n    \/* \u5b57\u7b26\u4e32\u91cc\u8bef\u6309\u56de\u8f66\u7684\u81ea\u52a8\u4fee\u590d\uff1a\u628a\u5f15\u53f7\u5185\u7684\u771f\u5b9e\u6362\u884c\u8f6c\u6210 \\n *\/\r\n    s = s.replace(\/\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"\/g, function (m) { return m.replace(\/[\\r\\n]+\/g, \"\\\\n\"); });\r\n    cfg = JSON.parse(s);\r\n  } catch (e) {\r\n    fail(e.message + \"<br>\u5efa\u8bae\u56de\u5230\u7f16\u8f91\u5668\u91cd\u65b0\u751f\u6210\u4ee3\u7801\uff0c\u4e0d\u8981\u624b\u5de5\u6539\u8fd9\u6bb5\u914d\u7f6e\u3002\");\r\n    return;\r\n  }\r\n\r\n  root.querySelector(\"#ppgModel-ppgmw0bmtxepeic6\").textContent = cfg.model || \"\";\r\n  root.querySelector(\"#ppgDesc-ppgmw0bmtxepeic6\").value = cfg.desc || \"\";\r\n\r\n  var attrsHtml = \"\";\r\n  (cfg.attrs || []).forEach(function (a) {\r\n    attrsHtml += '<li><span class=\"ppg-attr-k\">' + (a.k || \"\") + '<\/span><span class=\"ppg-attr-v\">' + (a.v || \"\") + '<\/span><\/li>';\r\n  });\r\n  root.querySelector(\"#ppgAttrs-ppgmw0bmtxepeic6\").innerHTML = attrsHtml;\r\n\r\n  var images = cfg.images || [];\r\n  var colors = cfg.colors || [];\r\n\r\n  \/* \u56fe\u7247\u8be6\u60c5\u5217\u8868 *\/\r\n  images.forEach(function (item, idx) {\r\n    var box = document.createElement(\"div\");\r\n    box.className = \"ppg-detail\";\r\n    box.setAttribute(\"data-index\", String(idx));\r\n    var fig = document.createElement(\"figure\");\r\n    var im = document.createElement(\"img\");\r\n    im.alt = item.alt || \"\";\r\n    im.loading = \"lazy\";\r\n    im.src = item.src;\r\n    im.onload = function () { box.classList.add(\"ppg-loaded\"); };\r\n    im.onerror = function () { box.classList.add(\"ppg-failed\"); };\r\n    fig.appendChild(im);\r\n    var fb = document.createElement(\"div\");\r\n    fb.className = \"ppg-detail-fallback\";\r\n    fb.innerHTML = \"<span>\u56fe\u7247\u6682\u672a\u52a0\u8f7d<br>\u8bf7\u68c0\u67e5\u56fe\u7247\u94fe\u63a5\u662f\u5426\u53ef\u8bbf\u95ee<\/span>\";\r\n    var cap = document.createElement(\"span\");\r\n    cap.className = \"ppg-detail-cap\";\r\n    cap.textContent = item.label || \"\";\r\n    box.appendChild(fig); box.appendChild(fb); box.appendChild(cap);\r\n    detailsEl.appendChild(box);\r\n  });\r\n\r\n  \/* \u7f29\u7565\u56fe\u5bfc\u822a *\/\r\n  images.forEach(function (item, idx) {\r\n    var btn = document.createElement(\"button\");\r\n    btn.type = \"button\";\r\n    btn.className = \"ppg-thumb\";\r\n    btn.setAttribute(\"aria-label\", \"\u67e5\u770b \" + (item.alt || \"\u56fe\u7247\"));\r\n    var im = document.createElement(\"img\");\r\n    im.alt = item.alt || \"\";\r\n    im.loading = \"lazy\";\r\n    im.src = item.src;\r\n    im.onerror = function () { im.style.visibility = \"hidden\"; };\r\n    btn.appendChild(im);\r\n    btn.addEventListener(\"click\", function () { jumpTo(idx); });\r\n    thumbsEl.appendChild(btn);\r\n  });\r\n\r\n  \/* \u989c\u8272\u89c4\u683c\u5361 *\/\r\n  colors.forEach(function (c) {\r\n    if (!images[c.imageIndex]) return;\r\n    var card = document.createElement(\"button\");\r\n    card.type = \"button\";\r\n    card.className = \"ppg-color-card\";\r\n    card.setAttribute(\"aria-label\", \"\u67e5\u770b\u989c\u8272 \" + c.name);\r\n    var thumb = document.createElement(\"img\");\r\n    thumb.alt = c.name + \" \u7f29\u7565\u56fe\";\r\n    thumb.loading = \"lazy\";\r\n    thumb.src = images[c.imageIndex].src;\r\n    thumb.onerror = function () { thumb.style.visibility = \"hidden\"; };\r\n    var name = document.createElement(\"span\");\r\n    name.className = \"ppg-color-name\";\r\n    var dot = document.createElement(\"span\");\r\n    dot.className = \"ppg-color-dot\";\r\n    dot.style.background = c.dot;\r\n    name.appendChild(dot);\r\n    name.appendChild(document.createTextNode(c.name));\r\n    card.appendChild(thumb);\r\n    card.appendChild(name);\r\n    card.addEventListener(\"click\", function () { jumpTo(c.imageIndex); });\r\n    colorsEl.appendChild(card);\r\n  });\r\n\r\n  function jumpTo(idx) {\r\n    var target = detailsEl.children[idx];\r\n    if (!target) return;\r\n    mark(idx);\r\n    target.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n  }\r\n\r\n  function mark(idx) {\r\n    var tbs = thumbsEl.children;\r\n    for (var i = 0; i < tbs.length; i++) tbs[i].classList.toggle(\"is-active\", i === idx);\r\n    var boxes = detailsEl.children;\r\n    for (var b = 0; b < boxes.length; b++) boxes[b].classList.toggle(\"is-viewing\", b === idx);\r\n    var colorName = images[idx] ? images[idx].color : \"\";\r\n    var cbs = colorsEl.children;\r\n    for (var j = 0; j < cbs.length; j++) {\r\n      cbs[j].classList.toggle(\"is-active\", !!colorName && colors[j] && colors[j].name === colorName);\r\n    }\r\n  }\r\n\r\n  var boxes = detailsEl.children;\r\n  if (\"IntersectionObserver\" in window) {\r\n    var visible = {};\r\n    var io = new IntersectionObserver(function (entries) {\r\n      entries.forEach(function (e) {\r\n        visible[e.target.getAttribute(\"data-index\")] = e.isIntersecting;\r\n      });\r\n      for (var i = 0; i < boxes.length; i++) {\r\n        if (visible[String(i)] === true) { mark(i); return; }\r\n      }\r\n    }, { rootMargin: \"-45% 0px -45% 0px\", threshold: 0 });\r\n    for (var k = 0; k < boxes.length; k++) io.observe(boxes[k]);\r\n  }\r\n\r\n  mark(0);\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Specs<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":486,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-897","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/www.vastontech.com\/index.php\/wp-json\/wp\/v2\/pages\/897","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.vastontech.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/www.vastontech.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/www.vastontech.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.vastontech.com\/index.php\/wp-json\/wp\/v2\/comments?post=897"}],"version-history":[{"count":8,"href":"http:\/\/www.vastontech.com\/index.php\/wp-json\/wp\/v2\/pages\/897\/revisions"}],"predecessor-version":[{"id":1297,"href":"http:\/\/www.vastontech.com\/index.php\/wp-json\/wp\/v2\/pages\/897\/revisions\/1297"}],"up":[{"embeddable":true,"href":"http:\/\/www.vastontech.com\/index.php\/wp-json\/wp\/v2\/pages\/486"}],"wp:attachment":[{"href":"http:\/\/www.vastontech.com\/index.php\/wp-json\/wp\/v2\/media?parent=897"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}