1<!DOCTYPE html><html class="no-js" lang="zh-TW" prefix="og: https://ogp.me/ns# fb: https://ogp.me/ns/fb# website: https://ogp.me/ns/website#"> <head> <base href="https://www.kpstamp.com.tw/" /> <meta charset="utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" /> <meta http-equiv='x-dns-prefetch-control' content='on'> <meta name="author" content="å»På°åè¡ï½å®¢è£½åé£çºå°ç« 第ä¸åç"> <meta name="copyright" content="ä¸å¸å§åå°ç« "> <meta name="google" content="notranslate" /> <meta name="mobile-web-app-capable" content="yes"> <meta name="theme-color" content="#f5f5f5"> <link rel="preconnect" href="//cdn.qdm.cloud" /> <link rel="preconnect" href="//image-cdn-flare.qdm.cloud" /> <link rel="preconnect" href="//image-cdn.qdm.cloud" /> <link rel="preconnect" href="//www.facebook.com" /> <link rel="preconnect" href="//connect.facebook.net" /> <link rel="preconnect" href="//ajax.googleapis.com" /> <link rel="dns-prefetch" href="//ajax.googleapis.com" /> <link rel="dns-prefetch" href="//image-cdn-flare.qdm.cloud" /> <link rel="dns-prefetch" href="//image-cdn.qdm.cloud" /> <link rel="dns-prefetch" href="//cdn.qdm.cloud" /> <link rel="dns-prefetch" href="//fonts.googleapis.com" /> <link rel="dns-prefetch" href="//www.google-analytics.com" /> <link rel="dns-prefetch" href="//www.googletagmanager.com" /> <link rel='dns-prefetch' href="//www.google.com" /> <link rel='dns-prefetch' href="//www.google.com.tw" /> <link rel='dns-prefetch' href="//maxcdn.bootstrapcdn.com" /> <link rel='dns-prefetch' href="//cdnjs.cloudflare.com" /> <link rel='dns-prefetch' href="//www.facebook.com" /> <link rel='dns-prefetch' href="//connect.facebook.net" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title itemprop='name'>ä¸å¸å§åå°ç« | å»På°åè¡ï½å®¢è£½åé£çºå°ç« 第ä¸åç</title> <meta name="description" content="ä¸å¸å§åå°ç« " /> <meta property="og:description" content="ä¸å¸å§åå°ç« " /> <link href="https://www.kpstamp.com.tw/product/product&product_id=580" rel="canonical" itemprop="url"> <!-- FACESPACE --> <meta property="fb:app_id" content="162172840650014" /> <meta property="og:title" content="ä¸å¸å§åå°ç« | å»På°åè¡ï½å®¢è£½åé£çºå°ç« 第ä¸åç"/> <meta property="og:type" content="website"/> <meta property="og:url" content="https://www.kpstamp.com.tw/product/product&product_id=580"/> <meta property="og:locale" content="zh_TW" /> <meta property="og:image" content="https://image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2026/09/18/351af11b73f54fd1df81dd934402cb1a.jpg"/> <meta property="og:image:url" content="https://image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2026/09/18/351af11b73f54fd1df81dd934402cb1a.jpg"/> <meta property="og:site_name" content="å»På°åè¡ï½å®¢è£½åé£çºå°ç« 第ä¸åç"> <meta property="og:updated_time" content="1791413828"> <!-- Twitter Card --> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="ä¸å¸å§åå°ç« | å»På°åè¡ï½å®¢è£½åé£çºå°ç« 第ä¸åç"> <meta name="twitter:description" content="ä¸å¸å§åå°ç« "> <meta name="twitter:image" content="https://image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2026/09/18/351af11b73f54fd1df81dd934402cb1a.jpg"> <!-- llms.txt --> <link rel="llms-txt" href="/llms.txt" /> <!-- G++ --> <meta itemprop="name" content="ä¸å¸å§åå°ç« "> <meta itemprop="description" content="ä¸å¸å§åå°ç« "> <meta itemprop="image" content="//image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2026/09/18/351af11b73f54fd1df81dd934402cb1a.jpg"> <link title='ä¸å¸å§åå°ç« - è¨é±ååå¿«è¨RSS' href="https://www.kpstamp.com.tw/googlebase.xml" type='application/rss+xml' rel='alternate' > <!-- Google's Sitelinks Search -->
1<script type="application/ld+json"> 2 { 3 "@context": "https://schema.org", 4 "@type": "WebSite", 5 "name" : "å»På°åè¡ï½å®¢è£½åé£çºå°ç« 第ä¸åç", 6 "url": "https://www.kpstamp.com.tw/", 7 "potentialAction": { 8 "@type": "SearchAction", 9 "target": { 10 "@type": "EntryPoint", 11 "urlTemplate": "https://www.kpstamp.com.tw/search?q={filter_name}" 12 }, 13 "query-input": "required name=filter_name" 14 } 15 } 16 </script>
16 <!-- Organization / LocalBusiness Schema -->
16<script type="application/ld+json"> 17 { 18 "@context": "https:\/\/schema.org", 19 "@type": "LocalBusiness", 20 "name": "å»På°åè¡ï½å®¢è£½åé£çºå°ç« 第ä¸åç", 21 "url": "https:\/\/www.kpstamp.com.tw\/", 22 "logo": "https:\/\/image-cdn-flare.qdm.cloud\/q629aa4e2e71b1\/image\/data\/2026\/09\/07\/46870cdc956f9a4bd252a16a52ebcaf3.png", 23 "email": "[email protected]", 24 "sameAs": [ 25 "https:\/\/www.facebook.com\/kpstamp", 26 "https:\/\/www.instagram.com\/KP_STAMP", 27 "https:\/\/line.me\/R\/ti\/p\/@KP_STAMP" 28 ], 29 "openingHoursSpecification": { 30 "@type": "OpeningHoursSpecification", 31 "dayOfWeek": [], 32 "opens": "00:00", 33 "closes": "00:00" 34 }, 35 "address": { 36 "@type": "PostalAddress", 37 "streetAddress": "æ°¸åå" 38 }, 39 "image": "https:\/\/image-cdn-flare.qdm.cloud\/q629aa4e2e71b1\/image\/data\/2026\/09\/07\/46870cdc956f9a4bd252a16a52ebcaf3.png", 40 "priceRange": "NT$1 - NT$575,663" 41} </script>
41
41<script type="text/javascript"> 42(function(c,l,a,r,i,t,y){ 43c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 44t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 45y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 46})(window, document, "clarity", "script", "99n8zhelys"); 47</script>
47 <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 68 bytes, lines 47-48
47 <script async 48 src="https://www.googletagmanager.com/gtag/js?id=
48G-8CRMWS8GBK
vendor: 12 bytes, line 48
48"></script>
48<script> 49
vendor: 141 bytes, lines 49-53
49window.dataLayer = window.dataLayer || []; 50 function gtag(){dataLayer.push(arguments);} 51 gtag('js', new Date()); 52 53 gtag('config', "
53G-8CRMWS8GBK
vendor: 42 bytes, lines 53-55
53", { send_page_view: false }); 54 55
55gtag('config', "G-WYQGP293G8", { send_page_view: false }); 56 </script>
56
56<script> 57 58 var enhanced_conversion_data = {}; 59 var ga_userId = null; 60 var ga_userId_global = null; 61 var qdm_user_uuid = "q629aa4e2e71b1-2r2lkjuelk1upe5nitsr4q8ug0"; 62 var helperga4 = null; 63 var xmlhttp_uinfo = new XMLHttpRequest(); 64 xmlhttp_uinfo.open('GET', "https://www.kpstamp.com.tw/index.php?route=common/header/getLoggedInUserInfo&token=" + new Date().getTime() + "1" + (Math.floor(Math.random() * 999) + 100) , true); 65 xmlhttp_uinfo.onreadystatechange = function() { 66 if (xmlhttp_uinfo.readyState == 4) { 67 if(xmlhttp_uinfo.status == 200) { 68 try { 69 var obj = JSON.parse(xmlhttp_uinfo.responseText); 70 ga_userId = obj.user_id; 71 if( obj.email ) { 72 enhanced_conversion_data.email = obj.email; 73 } 74 } catch (e) { } 75 } 76 } 77 }; 78 xmlhttp_uinfo.send(null); 79 80 try { 81 if ('localStorage' in window && window['localStorage'] !== null){ 82 if( localStorage.getItem('qdm_user_uuid') && qdm_user_uuid == null ) { 83 qdm_user_uuid = localStorage.getItem('qdm_user_uuid'); 84 } 85 } 86 } catch (e) {} 87 window.addEventListener("beforeunload", () => localStorage.removeItem('qdm_user_uuid')); 88 89 function QUUID(){var x=(new Date).getTime(),t="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){const n=(x+16*Math.random())%16|0;return x=Math.floor(x/16),("x"==t?n:3&n|8).toString(16)});return "q629aa4e2e71b1"+t;} 90 var dateTime = Date.now(); 91 var timestamp = Math.floor(dateTime / 1000); 92 var global_quuid = QUUID(); 93 //var global_quuid = "q629aa4e2e71b1" + Math.random().toString(13).substr(2, 9) + "" + timestamp + "" + new Date().getTime(); 94 var global_product_id = 0; 95 var ecommCheckoutTotal = 0; 96 var gecommProduct = new Array("580"); 97 var gecommProductName = 'ä¸å¸å§åå°ç« '; 98 var gecommProductSKU = ''; 99 var gecommProductDesc = gecommProductName; 100 var gecommProductDesc = ''; 101 var gecommProductBrand = 'ä¸å¸å§åå°ç« '; 102 var gecommProductBrand_cyntelli = 'å»På°åè¡ å®¢è£½åé£çºå°ç« 第ä¸åç'; 103 var gecommProductCategoryPath = ''; 104 var gecommProductCategoryWithComma = ''; 105 var gecommProductPrice = 150; 106 var gecommCompareAtPrice = 150; 107 var gecommProductImageUrl = 'https://image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2026/09/18/351af11b73f54fd1df81dd934402cb1a.jpg'; 108 var gecommProductUrl = "https://www.kpstamp.com.tw/product/product&product_id=580"; 109 var gecommViewCategoryName = ''; 110 var gecommViewFullCategoryName = ''; 111 var gecommProductToCart = {}; 112 var ecommOrderToCheckout = {}; 113 dataLayer.push({ 114 'pageCategory': 'signup', 115 'visitorType': 'high-value' 116 }); 117 118 var customer_id = '0'; 119 if(customer_id>0){ 120 if( ga_userId !== null ) { 121 ga_userId = customer_id; 122 } 123 } 124 125 var ga_utm_source = null; 126 var toggleVisible = function(id){ 127 var el = document.getElementById(id); 128 if( el !== null ) { el.style.visibility = "visible"; } 129 }; 130 131 </script>
131
131<script id="google-ga-event-track" type="text/javascript"> 132 133 var track_google_ga_trigger = 0; 134 135 setTimeout(function(){ 136 137 if( ga_userId !== null ) { 138 ga_userId_global = "q629aa4e2e71b1_" + ga_userId; 139 140 dataLayer.push({ 141 'event': 'data', 142 'UID': ga_userId 143 }); 144 window.adGeek_d = { 145 'memberId': ga_userId 146 }; 147 148 gtag('config', 'G-WYQGP293G8', {'user_id': ga_userId_global}); /*ga4*/ 149 150 gtag('config', "G-8CRMWS8GBK", {'user_id': ga_userId_global}); 151 152 153 } else { 154 } 155 156 if( track_google_ga_trigger == 1 ) { return false; }; 157 158 if ( parseInt(global_product_id) > 0 ) { 159 if (typeof gaTrackProductView == 'function') { 160 gaTrackProductView(); 161 } 162 } 163 164 165 166 167 168 169 try { 170 gtag('event', 'page_view', { 171 page_title: 'ä¸å¸å§åå°ç« ', 172 page_location: location.href, 173 page_path: location.pathname, 174 }); 175 176 177 } catch (e) { } 178 179 }, 2000); 180 181 </script>
181
181<script> 182 183 var QDMPPID = "59c76efa4905411506355e0473f68918"; 184 function setCookie(name, value, days) { 185 var expires = ""; 186 if (days) { 187 // Mutate ONE Date object then format it. The previous one-liner set the 188 // expiry on a throwaway Date and formatted a fresh (now) Date, so every 189 // "persistent" cookie got expires=now and was dropped immediately. 190 var expireDate = new Date(); 191 expireDate.setTime(expireDate.getTime() + (864e5 * days)); 192 expires = "; expires=" + expireDate.toUTCString(); 193 } 194 // SameSite=Lax lets cookies survive redirects back from external services (e.g. ECPay logistics). 195 document.cookie = name + "=" + value + expires + "; path=/; Secure; SameSite=Lax"; 196 } 197 function getCookie(e){var n,i=document.cookie,o=i.indexOf(" "+e+"=");return-1==o&&(o=i.indexOf(e+"=")),i=-1==o?null:(o=i.indexOf("=",o)+1,-1==(n=i.indexOf(";",o))&&(n=i.length),unescape(i.substring(o,n)))} 198 if( !getCookie("QDMPPID") ) { setCookie("QDMPPID","61d761ca1fd9f34375baec3671c0895c", 365); } 199 QDMPPID = getCookie("QDMPPID"); 200 <!-- Facebook Pixel Code --> 201 !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? 202 n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; 203 n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; 204 t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, 205 document,'script','https://connect.facebook.net/en_US/fbevents.js'); 206 <!-- End Facebook Pixel Code --> 207 208 function onloadCSS(e,n){function t(){!o&&n&&(o=!0,n.call(e))}var o;e.addEventListener&&e.addEventListener("load",t),e.attachEvent&&e.attachEvent("onload",t),"isApplicationInstalled"in navigator&&"onloadcssdefined"in e&&e.onloadcssdefined(t)}!function(e){"use strict";var n=function(n,t,o){function a(e){return l.body?e():void setTimeout(function(){a(e)})}function d(){r.addEventListener&&r.removeEventListener("load",d),r.media=o||"all"}var i,l=e.document,r=l.createElement("link");if(t)i=t;else{var s=(l.body||l.getElementsByTagName("head")[0]).childNodes;i=s[s.length-1]}var f=l.styleSheets;r.rel="stylesheet",r.href=n,r.media="only x",a(function(){i.parentNode.insertBefore(r,t?i:i.nextSibling)});var c=function(e){for(var n=r.href,t=f.length;t--;)if(f[t].href===n)return e();setTimeout(function(){c(e)})};return r.addEventListener&&r.addEventListener("load",d),r.onloadcssdefined=c,c(d),r};"undefined"!=typeof exports?exports.loadCSS=n:e.loadCSS=n}("undefined"!=typeof global?global:this); 209 210 function removeClass( classname, element ) { 211 var cn = element.className; 212 var rxp = new RegExp( "s?b"+classname+"b", "g" ); 213 cn = cn.replace( rxp, '' ); 214 element.className = cn; 215 } 216 217 var disabledScroll = 1; 218 var doJsAfterLoad = 0; 219 220 221 var stylesheets = [ 222 "https://cdn.qdm.cloud/static/fontawesome/v3.2.1/css/font-awesome.min.css", 223 "https://cdn.qdm.cloud/static/fontawesome/v4.7.0/css/font-awesome.min.css", 224 "https://cdn.qdm.cloud/static/fontawesome/v5.11.2/css/all.min.css", 225 "https://cdn.qdm.cloud/static/fontawesome/v5.11.2/css/v4-shims.min.css", 226 "https://cdn.qdm.cloud/static/fontawesome/v6.5.1/css/all.min.css", 227 "https://fonts.googleapis.com/css?family=Roboto:400,400i,500,700&display=swap", 228 "https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css", 229 "https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css" 230 ]; 231 function refreshMiniCartScrollBar(){ 232 var nice = $(".nicescroll-box").niceScroll(".wrap",{emulatetouch:true,bouncescroll:true}); 233 } 234 function initCoreCSS(){ 235 if( doJsAfterLoad ) return; 236 var loading_css_product = loadCSS("https://cdn.qdm.cloud/assets/css/core_product.24022002.css"); 237 onloadCSS(loading_css_product, function(){ initCSS(); }); 238 toggleVisible('header'); 239 toggleVisible('mainnav'); 240 doJsAfterLoad = 1; 241 } 242 function initCSS(){ 243 for (var i=0; i < stylesheets.length; i++) { loadCSS(stylesheets[i]); } 244 } 245 function loadJS(){ 246 $LAB.script("https://cdn.qdm.cloud/assets/js/jquery.countdown.2.2.0.0.min.js"); 247 } 248 249 const ImageErrorHandler = { 250 // é ç½®é¸é 251 config: { 252 maxRetries: 5, 253 baseDelay: 200, 254 maxDelay: 3000, 255 defaultImage: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", 256 fallbackImage: "//cdn.qdm.cloud/assets/no_image.jpg" // å¯é¸çæ¿ä»£åç 257 }, 258 259 // æ£å¨èççåç Mapï¼é²æ¢éè¤èçï¼ 260 processingImages: new WeakMap(), //WeakMapæ¸å°è¨æ¶é«çæ´©æ¼ 261 handle(image) { 262 try { 263 if (!image || !image.src || this.processingImages.has(image)) { 264 return; 265 } 266 267 // æ¨è¨çºèçä¸ 268 this.processingImages.set(image, true); 269 270 const retryCount = parseInt(image.getAttribute('data-reload') || '0') + 1; 271 272 if (retryCount > this.config.maxRetries) { 273 this.handleFinalError(image); 274 return; 275 } 276 277 image.setAttribute('data-reload', retryCount); 278 279 // è¨ç®å»¶é²æéï¼ææ¸éé¿ï¼
280 const delay = Math.min( 281 this.config.baseDelay * Math.pow(2, retryCount - 1), 282 this.config.maxDelay 283 ); 284 285 setTimeout(() => { 286 this.retryLoad(image, retryCount); 287 }, delay); 288 289 } catch (err) { 290 console.error('ImageErrorHandler error:', err); 291 this.handleFinalError(image); 292 } 293 }, 294 295 retryLoad(image, retryCount) { 296 const imageSrc = this.updateTimestamp(image.src); 297 // ä½¿ç¨æ°åçç©ä»¶æ¸¬è©¦ 298 const testImage = new Image(); 299 testImage.onload = () => { 300 // æåè¼å ¥ 301 image.src = imageSrc; 302 this.processingImages.delete(image); 303 304 // éæ°ç¶å®é¯èª¤èç 305 image.onerror = () => this.handle(image); 306 }; 307 308 testImage.onerror = () => { 309 // è¼å ¥å¤±æ 310 this.processingImages.delete(image); 311 312 // å¦ææ¯æå¾ä¸æ¬¡é試åï¼å試使ç¨åç¨åç 313 if (retryCount === this.config.maxRetries - 1 && this.config.fallbackImage) { 314 image.src = this.config.fallbackImage; 315 image.onerror = () => this.handle(image); 316 } else { 317 this.handle(image); 318 } 319 }; 320 321 testImage.src = imageSrc; 322 }, 323 324 updateTimestamp(src) { 325 const timestamp = `timestamp=${Date.now()}`; 326 327 if (src.includes('timestamp=')) { 328 return src.replace(/timestamp=\d+/, timestamp); 329 } 330 331 const separator = src.includes('?') ? '&' : '?'; 332 return `${src}${separator}${timestamp}`; 333 }, 334 335 handleFinalError(image) { 336 // æ¸ ç 337 image.onerror = null; 338 image.onload = null; 339 this.processingImages.delete(image); 340 341 // ä¿ååå§ URL 342 if (!image.src.includes("base64") && !image.hasAttribute('data-image-raw')) { 343 image.setAttribute('data-image-raw', image.src); 344 } 345 346 // è¨ç½®é è¨åç 347 image.src = this.config.defaultImage; 348 349 // 觸ç¼äºä»¶ 350 image.dispatchEvent(new CustomEvent('imageFinalError', { 351 detail: { 352 originalSrc: image.getAttribute('data-image-raw'), 353 retries: image.getAttribute('data-reload') 354 } 355 })); 356 } 357 }; 358 359 // åçé¯èª¤ 360 function imgError(image) { 361 ImageErrorHandler.handle(image); 362 } 363 364 365 </script>
365
365<script> 366 function vbtrax_track(){ 367 } 368 369 function criteo_track(){ 370 } 371 372 373 </script>
373
373<script type="application/javascript"> </script>
373 </script>
373
373<script> 374 var N=document.createElement("link"); 375 N.setAttribute("href", "https://image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2021/06/28/c6a9fb36b176f963c25e7af6b5824dfd.jpg"); 376 N.setAttribute("rel", "shortcut icon"); 377 N.setAttribute("type", "image/jpeg"); 378 document.head.appendChild(N); 379 </script>
379
379<script>document.createElement("picture");</script>
379
379<script async src='https://cdnjs.cloudflare.com/ajax/libs/picturefill/3.0.3/picturefill.min.js'></script>
379 <link rel="icon" href="https://image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2021/06/28/c6a9fb36b176f963c25e7af6b5824dfd.jpg" type="image/png" sizes="48x48" > <link rel="shortcut icon" href="https://image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2021/06/28/c6a9fb36b176f963c25e7af6b5824dfd.jpg" type="image/png" sizes="48x48" > <link type="text/css" rel="stylesheet" href="https://cdn.qdm.cloud/min/css/core.260320v01.css"> <style> 380 *, body, p, pre, button, input, optgroup, select, textarea, a, a:visited { font-family: 'SF Pro TC', 'SF Pro Text', 'PingFang TC', 'Segoe UI', SegoeUI, 'Microsoft JhengHei', å¾®è»æ£é»é«, 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } 381 @media (min-width: 1200px) { body { padding-top: 40px; } .container, .navbar-static-top .container, .navbar-fixed-top .container, .navbar-fixed-bottom .container { width: 1170px; } } 382 .hidden{display:none;visibility:hidden} 383 .pull-right { float: right !important; } 384 .container > #mainnav.skin4 { max-width:860px;width:100%; } 385 .container > #mainnav.skin4 .nav.menu-nav { display:inherit; } 386 #mainnav ul { list-style: none; display: flex; flex-wrap: wrap; } 387 #mainnav ul li { position: relative; } 388 #mainnav ul li ul.dropdown-menu { position: absolute; display: none; flex-direction: column; } 389 #mainnav ul li ul.dropdown-menu > li.column-menu { display: table-cell; border-right: 1px solid #eee; vertical-align: top; } 390 #mainnav ul li ul.dropdown-menu > li.column-menu > ul { display: block; } 391 #mainnav ul li:hover > ul { display: flex; } 392 #mainnav ul ul ul {top: 0; left: 100%; border-left:solid 1px #fff; width:auto;} 393 #mainnav ul.nav li.dropdown ul.dropdown-menu { webkit-box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); -moz-box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); } 394 #mainnav ul.nav li.dropdown ul.dropdown-menu li a { font-size: 17px; line-height: 26px; } 395 #mainnav ul.nav li.dropdown > ul.dropdown-menu > li[data-has-child] > a:after { content: ''; border: 4px solid transparent; border-left: 4px solid #000; margin-top: 2px; margin-bottom: 3px; display: inline-block; vertical-align: bottom; position: absolute; right: 6px; top: 10px; } 396 .navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;} 397 .navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px;} 398 #header ul{list-style:none;margin:0;padding:0} #header li{list-style:none} 399 .navbar .nav{position:relative;} 400 .navbar .nav.pull-right{float:right;margin-right:0;} 401 .navbar .nav>li{float:left;} 402 .navbar .nav>li>a{float:none;padding:10px 15px 10px;text-decoration:none;} 403 .navbar .nav .dropdown-toggle .caret{margin-top:8px;} 404 .navbar .button-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;} 405 .button-navbar .icon-bar+.icon-bar{margin-top:3px;} 406 .navbar .nav>li>.dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;} 407 .navbar .nav>li>.dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;} 408 .dropdown-menu { position: absolute; display: none; float: left; } 409 .dropup, .dropdown { position: relative; } 410 .pushy { z-index: 99999999; } 411 .pushy-menu-storename span{ 412 width: 40%; 413 position: absolute; 414 top: 24px; 415 right: 5px; 416 text-align: right; 417 padding-right: 10px; 418 } 419 .pushy-menu-storename a{ 420 width: 90%; 421 } 422 .pushy-menu-storename a:hover, a:visited, a:link, a:active { 423 text-decoration: none; 424 } 425 </style> <link type="text/css" rel="stylesheet" href="https://cdn.qdm.cloud/min/css/theme/skin-3.css?v=231130001"> <link type="text/css" rel="stylesheet" href="https://image-cdn.qdm.cloud/site/q629aa4e2e71b1/custom_theme.css?v=20260923112920"> <style> 426 html {-webkit-transition: background-color 0s;transition: background-color 0s;} html.loading { position: relative; overflow:hidden; width:100%; height:100%; min-height:768px;
426 background: #fff url('https://cdn.qdm.cloud/min/cache/loading_1107.gif') no-repeat 50% 40%;-webkit-transition: background-color 0; transition: background-color 0; height: 100%; width: 100%;} body {-webkit-transition: opacity 0.3s ease-in;transition: opacity 0.3s ease-in;} html.loading body { opacity: 0; -webkit-transition: opacity 0s; transition: opacity 0s; } html.loading:before { font-size: 15px; content: "ã è«å¿ééè¦çª ãçåäº¤æææ¬ä¸"; color: #000; vertical-align: middle; text-align: center; width: 100%; display: block; position: absolute; top: 30%; } img { opacity: 1; transition: opacity 0s; } img[data-src] { opacity: 1; } .flexslider .flex-direction-nav { display:none; } 427 #myBody.product-product .heading h1, #myBody.product-product .mainborder .rightcol h1 { color: rgb(0, 0, 0); 428 font-size:20px;line-height:20px;} 429 .already_sold span{color:#e4007f;font-weight:bold;} 430 #myBody .fancybox-buttons { top: 60px; } 431 .ui-autocomplete.ui-front.ui-menu { 432 z-index: 999999999; border: none; border: 1px solid #EEE; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); 433 } 434 .ui-autocomplete.ui-front.ui-menu > .ui-menu-item { 435 font-size: 17px; line-height: 26px; list-style-image: none; background-color: #FFF; cursor: pointer; border: none; 436 } 437 .ui-autocomplete.ui-front.ui-menu > .ui-menu-item a.ui-state-focus { 438 line-height: 26px; 439 border-color: #616161; 440 background: #616161 !important; 441 font-weight: bold !important; 442 color: #ffffff !important; 443 } 444 @media only screen and (max-width:768px){.fb_dialog_content>iframe:first-child, .fb-customerchat iframe {bottom: 50px !important;}.quickcheckout-checkout .fb_dialog_content>iframe:first-child, .quickcheckout-checkout .fb-customerchat iframe {bottom: 90px !important;}} 445 .onsale{ width:65px; height:24px; min-width:65px; min-height:24px; padding:2px; border-radius:5%; line-height:20px; } 446 #navbar-top-socialbar li.social-icon{ line-height:0px; padding-top:6px; } 447 #navbar-top-socialbar li.social-icon>a>i{ line-height:24px; } 448 .display_price { display:none; } 449 .sticky-bar-header { position: fixed; top: 0; left: 0; right: 0; z-index: 99999; -webkit-box-shadow: none; box-shadow: none; -webkit-transition: .1s ease-in all; transition: .1s ease-in all; align-items: center; 450 } 451 .mobile-sticky-bar-header { position: fixed; top: 56px; left: 0; right: 0; z-index: 9998; -webkit-box-shadow: none; box-shadow: none; -webkit-transition: .1s ease-in all; transition: .1s ease-in all; } 452 .mobile-sticky-bar-top,.sticky-bar-top { 453 background-color: rgb(0, 0, 0); 454 color: rgb(255, 255, 255); 455 height: 40px; 456 position: relative; 457 display: block; 458 z-index: 9998; 459 overflow: hidden; 460 } 461 462 .sticky-bar-content { 463 position: absolute; 464 width: 100%; 465 opacity: 0; 466 text-align: center; 467 font-weight: 400; 468 font-size: 14px; 469 line-height: 16px; 470 padding: 12px 0; 471 overflow: hidden; 472 white-space: break-spaces; 473 z-index: 9998; 474 } 475 476 .sticky-bar-top .sticky-bar-content a { 477 color: rgb(255, 255, 255) !important; 478 text-align: center; 479 font-weight: 400; 480 font-size: 14px; 481 line-height: 16px; 482 letter-spacing: 1px; 483 } 484 485 .sticky-bar-countdown { 486 color: rgb(0, 0, 0); 487 background-color: rgb(255, 255, 255); 488 border-radius: 5px; 489 padding: 0px 2px; 490 margin-left:5px; 491 font-family: system-ui; 492 font-weight: bolder; 493 } 494 495 #header .container{ margin-top: 10px; } 496 @media only screen and (max-width:768px){ 497 .sticky-bar-content { 498 position: absolute; 499 width: 100%; 500 opacity: 0; 501 text-align: center; 502 font-weight: 400; 503 font-size: 12px; 504 overflow: hidden; 505 white-space: break-spaces; 506 z-index: 9998; 507 } 508 509 .mobile-sticky-bar-top .sticky-bar-content a { 510 color: rgb(255, 255, 255); 511 text-align: center; 512 font-weight: 400; 513 font-size: 12px; 514 letter-spacing: 1px; 515 } 516 517 .product-product .heading { 518 margin-bottom: 10px; 519 text-align: center; 520 margin-top: 20px; 521 } 522 .modal-dialog{ 523 margin-top: 100px; 524 } 525 526 #content-wrapper>.container { 527 margin-top: 30px; 528 } 529 .home #content-wrapper>.container { 530 margin-top: 20px; 531 } 532 533 } 534 535 @media only screen and (max-width:375px){ 536 .mobile-sticky-bar-top { 537 height: 35px; 538 position: relative; 539 display: block; 540 z-index: 9998; 541 overflow: hidden; 542 } 543 .sticky-bar-content { 544 position: absolute; 545 width: 100%; 546 opacity: 0; 547 text-align: center; 548 font-weight: 400; 549 font-size: 10px; 550 padding: 10px 0; 551 overflow: hidden; 552 white-space: break-spaces; 553 z-index: 9998; 554 } 555 556 .mobile-sticky-bar-top .sticky-bar-content a { 557 color: rgb(255, 255, 255); 558 text-align: center; 559 font-weight: 400; 560 font-size: 10px; 561 letter-spacing: 1px; 562 } 563 } 564 565 #payment-logo-list{ 566 width: 100%; 567 max-width: 1200px; 568 margin: 0 auto; 569 /*padding-bottom: 20px;*/ 570 padding-top: 10px; 571 } 572 573 #payment-logo-list .pl-row { 574 display: flex; 575 flex-wrap: wrap; 576 justify-content: center; 577 gap: 20px; 578 } 579 580 #payment-logo-list .pl-col { 581 flex: 1; 582 max-width: 120px; 583 padding: 2px; 584 text-align: center; 585 } 586 #payment-logo-list .pl-col img { 587 max-height: 40px; 588 line-height: 40px; 589 object-fit: contain 590 } 591 @media only screen and (max-width:768px){ 592 #payment-logo-list .pl-col { 593 min-width: 10%; 594 } 595 } 596 </style> <style> 597 .preload-hidden { opacity: 0; transition: opacity .3s ease; } 598 .awoo-ui { display:block; margin-top:20px; margin-bottom:20px; } 599 </style>
599<script> 600 window.addEventListener('load', function(){ 601 try { 602 setTimeout(function(){ 603 var preloadElements = document.querySelectorAll('.preload-hidden'); 604 preloadElements.forEach(function(element) { 605 element.style.opacity = '1'; 606 }); 607 }, 300); 608 } catch(e) {} 609 }); 610 </script>
610 </head> <body id="myBody" data-customer-group="1" data-instant-allow-query-string itemscope itemtype="https://schema.org/WebSite" class="responsive skin-3 product-product"> <div id="fb-root"></div>
610<script> 611 window.fbAsyncInit = function() { 612 FB.init({ 613 appId : '162172840650014', 614 autoLogAppEvents : true, 615 cookie : true, 616 xfbml : true, 617 status : true, 618 version : 'v19.0' 619 }); 620 }; 621</script>
621 <meta itemprop="url" content="https://www.kpstamp.com.tw/" /> <!-- Mobile Header --> <!--googleoff: index--> <div id="mobile-navbar" class="navbar navbar-static-top FixedTop visible-xs visible-sm" style="display:none;"> <div class="navbar-inner"> <ul class="nav"> <li id="menu-btn" class="menu-btn"><span>☰</span></li> <li class="site-title"> <a href="https://www.kpstamp.com.tw/"><img src="//image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2022/01/03/a17d42d13a1eb9ca7099edd12b4c3262.jpg" title="å»På°åè¡ï½å®¢è£½åé£çºå°ç« 第ä¸åç" style="width:auto;max-height:56px;" /></a> </li> <li id="shopping-cart-list" class="shopping-cart" data-direction="left" style="overflow: visible; margin: 0px; padding-right: 10px;"><a href="https://www.kpstamp.com.tw/cart"><i class="fa fa-shopping-cart" aria-hidden="true"></i><span class="badge hidden">0</span></a></li> </ul> </div> </div> <div class="mobile-sticky-bar-header visible-xs visible-sm" style="display:none;"> <div class="mobile-sticky-bar-top"> <div class="sticky-bar-content">å®
é
299å°å¹£å
éï¼é¦æ¸¯2500å°å¹£å
é</div> </div> </div> <!--googleon: index--> <!-- Pushy Menu --> <nav id="mobile-menu-pushy" class="pushy pushy-left visible-xs visible-sm" style="display:none;"> <div class="pushy-content"> <ul> <li class="pushy-menu-storename"> <a href="https://www.kpstamp.com.tw/">å»På°åè¡ï½å®¢è£½åé£çºå°ç« 第ä¸åç</a> <span><i class="fa fa-times" aria-hidden="true"></i></span> </li> <div class="pushy-menu-main"> <li class="header-logged-menu pushy-submenu hidden"> <button><i class="fa fa-user-circle-o"></i> <span id="header-mobile-user"></span></button> <ul> <li class="pushy-link"><a href="/account">æå¡ä¸å¿</a></li> <li class="pushy-link"><a href="https://www.kpstamp.com.tw/account/edit">æçè³æ</a></li> <div class="pushy-menu-divide"></div> <li class="pushy-link"><a href="https://www.kpstamp.com.tw/wishlist">顿æ¸
å®</a></li> <li class="pushy-link"><a href="https://www.kpstamp.com.tw/compare">å忝è¼</a></li> <div class="pushy-menu-divide"></div> <li class="pushy-link"><a href="https://www.kpstamp.com.tw/newsletter">æçè¨é±</a></li> </ul> </li> <li class="header-logged-menu pushy-submenu hidden"> <button><i class="fa fa-truck" aria-hidden="true"></i> æçè¨å®</button> <ul> <li class="pushy-link"><a href="https://www.kpstamp.com.tw/account/order/payment">填坫坿¬¾å®</a></li> <li class="pushy-link"><a href="https://www.kpstamp.com.tw/order">æçè¨å®</a></li> <li class="pushy-link"><a href="https://www.kpstamp.com.tw/account/return">é/æè²¨ç´é</a></li> </ul> </li> <li class="pushy-link header-none-logged-menu hidden"><a href="/login"><i class="fa fa-user-circle-o"></i> æå¡ä¸å¿ (ç»å
¥)</a></li> <li class="pushy-link header-none-logged-menu hidden"><a href="/guestorder"><i class="fa fa-search-plus" aria-hidden="true"></i> æè¦æ¥è¨å®</a></li> <li class="pushy-submenu"> <button><i class="fa fa-commenting-o" aria-hidden="true"></i> æ¾åºé·</button> <ul> <li class="pushy-link"><a href="https://www.kpstamp.com.tw/contact">ç·ä¸çè¨</a></li> <li class="pushy-link"><a href="mailto:[email protected]" target="_blank" rel="noopener noreferrer nofollow">é»åéµä»¶</a></li> <li class="pushy-link"><a target="_blank" rel="noopener noreferrer nofollow" href="https://line.naver.jp/ti/p/~@KP_STAMP">LINE@</a></li> <li class="pushy-link"><a href="https://www.messenger.com/t/kpstamp" target="_blank" rel="noopener noreferrer nofollow">Facebookè¨æ¯</a></li> <li class="pushy-link"><a href="https://www.instagram.com/KP_STAMP" target="_blank" rel="noopener noreferrer nofollow">Instagram</a></li> </ul> </li> <li class="pushy-link header-logged-menu hidden"><a href="https://www.kpstamp.com.tw/account/logout"><i class="fa fa-sign-out" aria-hidden="true"></i> ç»åº</a></li> <li class="pushy-submenu"> <button><i class="fa fa-language" aria-hidden="true"></i> Languages</button> <ul> <li class="pushy-link"><a href="https://www.kpstamp.com.tw/?lang=zh-TW">ç¹é«ä¸æ</a></li> <li class="pushy-link"><a href="https://www.kpstamp.com.tw/?lang=en">English</a></li> </ul> </li> <li class="pushy-submenu"> <button><i class="fa fa-dollar" aria-hidden="true"></i> Currency</button> <ul> <li class="pushy-link"><a href="/currency?currency_code=JPY">Â¥ JPY</a></li> <li class="pushy-link"><a href="/currency?currency_code=TWD">$ TWD</a></li> </ul></li> </div> <!-- \.pushy-menu-main --> <div class="pushy-menu-divide"></div> <div class="search"> <form method="get" action="/search"> <span class="fa fa-search"></span> <input type="text" name="q" placeholder="ååééµå" autocomplete="off"> </form><br/> </div> <div class="pushy-menu-category"> <li class="pushy-link home-item-link"><a href="https://www.kpstamp.com.tw/">ååºé¦é </a></li> <li class="pushy-link" > <a href="https://www.kpstamp.com.tw/åºè²¨æé說æ" >åºè²¨æéæ¥è©¢</a> </li> <li class="pushy-submenu" > <button><span class="pushy-submenu-parent" data-url="https://www.kpstamp.com.tw/ð¶å¬°å¹¼ä¸å¸ååð¶" >å
ç«¥å°ç« è²¼ç´</span></button> <ul> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/課æ¬ç´å¼µå°ç¨å°ç« " >課æ¬ç´å¼µå°ç¨å°ç« </a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/å§åè²¼" >å§åè²¼</a> <ul> <li class="pushy-link"><a href="https://www.kpstamp.com.tw/è髿º«å§åè²¼" ">è髿º«å§åè²¼</a></li> <li class="pushy-link"><a href="https://www.kpstamp.com.tw/Name-Lable" ">æ£çææ¬é²æ°´å§åè²¼</a></li> </ul> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/%E8%A1%A3%E7%89%A9%E5%B0%88%E7%94%A8%E7%AB%A0" target="_blank">è¡£ç©å°ç¨å°ç« </a> </li> </ul> </li> <li class="pushy-submenu" > <button><span class="pushy-submenu-parent" data-url="https://www.kpstamp.com.tw/â¤ï¸ï¸æå¸å°ç« 大éåâ¤ï¸ï¸" >æå¸å°ç« </span></button> <ul> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/å®¶æ¿" >å®¶æ¿</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/財åæè²" >財åæè²</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/é«è²" >é«è²</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðå¥åº·" >ðå¥åº·</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðå
¬æ°" >
621ðå ¬æ°</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðåå¸" >ðåå¸</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðå°èª" >ðå°èª</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðå°ç" >ðå°ç</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðå¤èª" >ðå¤èª</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðå¸ç¿ç®¡ç" >ðå¸ç¿ç®¡ç</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðæ·å²" >ðæ·å²</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðç©ç" >ðç©ç</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðçç©" >ðçç©</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðç«¥è»" >ðç«¥è»</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðéå課ç¨" >ðéå課ç¨</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðé£è²" >ðé£è²</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/æéæå¸" >æéæå¸</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðåèª" >ðåèª</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðè±æ" >ðè±æ</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðæ¸å¸" >ðæ¸å¸</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ð社æ" >ð社æ</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðèªç¶" >ðèªç¶</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðçæ´»" >ðçæ´»</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðç¾è¡" >ðç¾è¡</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ð鳿¨" >ð鳿¨</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/âä½å¹´ç´æå¸«å°ç¨â" >âä½å¹´ç´æå¸«å°ç¨â</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/âå®¶é·æå¸ç¨â" >âå®¶é·æå¸ç¨â</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/âå¹¼å åè師å°ç¨â" >âå¹¼å åè師å°ç¨â</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/âçåµéé»å°åâ" >âçåµéé»å°åâ</a> </li> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/âç´ä»»å°å¸«å°ç¨â" >âç´ä»»å°å¸«å°ç¨â</a> </li> </ul> </li> <li class="pushy-link" > <a href="https://www.kpstamp.com.tw/âï¸å人ç¨å§åå°ç« âï¸" >âï¸å人ç¨å§åå°ç« âï¸</a> </li> <li class="pushy-submenu" > <button><span class="pushy-submenu-parent" data-url="https://www.kpstamp.com.tw/åç¨è¡é·å®¢è£½å°ç« " >åç¨è¡é·å®¢è£½å°ç« </span></button> <ul> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/ðè¡é·æ´»åè¨è£½å°ç« ð§¿" >ðè¡é·æ´»åè¨è£½å°ç« ð§¿</a> <ul> <li class="pushy-link"><a href="https://www.kpstamp.com.tw/ä¾åè¨è£½" ">ä¾åè¨è£½</a></li> <li class="pushy-link"><a href="https://www.kpstamp.com.tw/è¡é·æ´»åç« " ">è¡é·æ´»åç« </a></li> </ul> </li> </ul> </li> <li class="pushy-submenu" > <button><span class="pushy-submenu-parent" data-url="https://www.kpstamp.com.tw/SMOJI" >SMOJI</span></button> <ul> <li class="pushy-link"> <a href="https://www.kpstamp.com.tw/SMOJI_SET" >SMOJIç±é·å¥çµ</a> </li> </ul> </li> </div> </ul> </div> </nav> <!-- Site Overlay --> <div class="site-overlay"></div> <header id="header" class="visible-lg visible-md navbar" itemscope itemtype="https://schema.org/Organization"> <div class="sticky-bar-header"> <div class="sticky-bar-top"> <div class="sticky-bar-content">å® é 299å°å¹£å éï¼é¦æ¸¯2500å°å¹£å é</div> </div> </div> <div class="container"> <a itemprop="url" class="logo" href="https://www.kpstamp.com.tw/"><img onerror='imgError(this);' itemprop="logo" src="//image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2026/09/07/46870cdc956f9a4bd252a16a52ebcaf3.png" title="å»På°åè¡ï½å®¢è£½åé£çºå°ç« 第ä¸åç" alt="å»På°åè¡ï½å®¢è£½åé£çºå°ç« 第ä¸åç" /></a> <div id="search" class="search searchbox input-append" itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction"> <meta itemprop="target" content="https://www.kpstamp.com.tw/search?q={filter_name}" /> <input itemprop="query-input" type="search" name="filter_name" value="" placeholder="æå°" class="input-xxlarge" /> <i class="icon-search button-search"></i> </div> <ul id="contact-block"> <li style="background-color:transparent;background-image:none;"> <a href="https://www.kpstamp.com.tw/contact" target="_blank" rel="noopener noreferrer" title="ç·ä¸çè¨"> <i class="fa fa-commenting-o"></i> </a> </li> <li style="background-color:transparent;background-image:none;"> <a href="mailto:[email protected]" target="_blank" rel="noopener noreferrer nofollow" title="寫Email"> <i class="fa fa-envelope-o"></i> </a> </li> <li style="background-color:transparent;background-image:none;"> <a href="https://www.messenger.com/t/kpstamp" target="_blank" rel="noopener noreferrer nofollow" title="Facebookè¨æ¯"> <i class="fa fa-facebook-square"></i> </a> </li> <li style="background-color:transparent;background-image:none;"> <a href="https://www.instagram.com/KP_STAMP" target="_blank" rel="noopener noreferrer nofollow" title="Instagram"> <i class="fa fa-instagram"></i> </a> </li> <li style="background-color:transparent;background-image:none;"> <a target="_blank" rel="noopener noreferrer nofollow" href="https://line.naver.jp/ti/p/~@KP_STAMP" title="LINE ID"><i class="fab fa-line"></i></a> </li> </ul> <ul id="main-nav" class="nav nav-pills pull-right"> <li> <form action="https://www.kpstamp.com.tw/currency" method="post" enctype="multipart/form-data"> <div id="currency"> <select data-size="3" id="currencies" name="currencies" onChange="$('input[name=\'currency_code\']').attr('value', $('#currencies option:selected').val()).submit(); $(this).parent().parent().submit();" style="-moz-appearance:none; -webkit-appearance:none;border:0px solid #000;background:transparent;-webkit-border-radius:0;border-radius:0;width:auto; margin-top: 0px;display:inline;outline:none;" > <option class="option" value="JPY">Â¥ JPY</option> <option class="option" selected value="TWD">$ TWD</option> </select> <input type="hidden" name="currency_code" value="" /> <input type="hidden" name="redirect" value="https://www.kpstamp.com.tw/product/product&product_id=580" /> <i class="fa fa-angle-down" aria-hidden="true"></i> </div> </form> </li> <li><li class="dropdown"> <a href="##" class="dropdown-toggle" data-toggle="dropdown"> <i class="fa fa-globe" aria-hidden="true"></i> 622 ç¹é«ä¸æ <i class="fa fa-angle-down" aria-hidden="true"></i></a> <ul class="dropdown-menu"> <li><a href="https://www.kpstamp.com.tw/?lang=zh-TW">ç¹é«ä¸æ</a></li> <li><a href="https://www.kpstamp.com.tw/?lang=en">English</a></li> </ul> </li> </li> <li><section class="float-mini-cart" id="cart"> <style> 623.mini-cart-info td, .mini-cart-total td { line-height:20px; } 624</style> <div class="heading"> <i class="fa fa-shopping-cart"></i> 625 ( <a href="https://www.kpstamp.com.tw/cart" id="cart-total"> 626 0 ä»¶åå $0 </a> 627 ) 628 </div> <div class="content"> <div class="empty white">è³¼ç©è»æ²æå å ¥ä»»ä½åå</div> <a id="closecart" class="close" title="Close" onclick="$('#cart').removeClass('active');">Ã</a> </div> </section></li> <li id="header-logged-menu" class="dropdown hidden"> <a href="https://www.kpstamp.com.tw/account" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user-o"></i> <span id="header-logged-user"></span> <b class="caret"></b></a> <ul class="dropdown-menu"> <li><a href="https://www.kpstamp.com.tw/account">æå¡ä¸å¿</a></li> <li><a href="https://www.kpstamp.com.tw/order">æçè¨å®</a></li> <li><a href="https://www.kpstamp.com.tw/account/order/payment">填坫坿¬¾å®</a></li> <li><a href="https://www.kpstamp.com.tw/wishlist">é¡ææ¸ å®</a></li> <li><a href="https://www.kpstamp.com.tw/compare">å忝è¼</a></li> <li class="divider"></li> <li><a href="https://www.kpstamp.com.tw/account/logout">ç»åº</a></li> </ul> </li> <li id="header-none-logged-menu"><p style="margin:7px 0px;"><a href="https://www.kpstamp.com.tw/login" title="æå¡ç»å ¥" id="bt
628nLogin"><i class="fa fa-user-o"></i> æå¡ç»å ¥</a></p></li> </ul> </div> </header> <div id="content-wrapper"> <div class="container"> <nav id="mainnav" class="navbar visible-lg visible-md" role="navigation" style="visibility:hidden"> <div class="navbar-inner"> <div class="container"> <button type="button" class="button button-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span> 629 630 é¸å®</span> <i class="icon-navbtn"></i> </button> <div class="nav-collapse"> <ul class="nav"> <li data-categoryid="122" href="https://www.kpstamp.com.tw/åºè²¨æé說æ" > <a href="https://www.kpstamp.com.tw/åºè²¨æé說æ" data-hover="">åºè²¨æéæ¥è©¢</a> </li> <li data-categoryid="75" href="https://www.kpstamp.com.tw/ð¶å¬°å¹¼ä¸å¸ååð¶" class="dropdown"> <a href="https://www.kpstamp.com.tw/ð¶å¬°å¹¼ä¸å¸ååð¶" data-hover="">å ç«¥å°ç« è²¼ç´ <b class="caret"></b></a> <ul class="dropdown-menu"> <li id="20" ><a href="https://www.kpstamp.com.tw/課æ¬ç´å¼µå°ç¨å°ç« " data-hover="">課æ¬ç´å¼µå°ç¨å°ç« </a> </li> <li id="21" data-has-child='1'><a href="https://www.kpstamp.com.tw/å§åè²¼" data-hover="">å§åè²¼</a> <ul class="dropdown-menu"> <li id="21_119"><a href="https://www.kpstamp.com.tw/è髿º«å§åè²¼" data-hover="">è髿º«å§åè²¼</a></li> <li id="21_13"><a href="https://www.kpstamp.com.tw/Name-Lable" data-hover="æ£çææ¬å¡é鲿°´å§åè²¼">æ£çææ¬é²æ°´å§åè²¼</a></li> </ul> </li> <li id="22" ><a href="https://www.kpstamp.com.tw/%E8%A1%A3%E7%89%A9%E5%B0%88%E7%94%A8%E7%AB%A0" target="_blank" data-hover="è¡£ç©å°ç¨å°ç« ">è¡£ç©å°ç¨å°ç« </a> </li> </ul> </li> <li data-categoryid="61" href="https://www.kpstamp.com.tw/â¤ï¸ï¸æå¸å°ç« 大éåâ¤ï¸ï¸" class="dropdown"> <a href="https://www.kpstamp.com.tw/â¤ï¸ï¸æå¸å°ç« 大éåâ¤ï¸ï¸" data-hover="">æå¸å°ç« <b class="caret"></b></a> <ul class="dropdown-menu"> <li id="30" ><a href="https://www.kpstamp.com.tw/å®¶æ¿" data-hover="">å®¶æ¿</a> </li> <li id="31" ><a href="https://www.kpstamp.com.tw/財åæè²" data-hover="">財åæè²</a> </li> <li id="32" ><a href="https://www.kpstamp.com.tw/é«è²" data-hover="">é«è²</a> </li> <li id="33" ><a href="https://www.kpstamp.com.tw/ðå¥åº·" data-hover="">ðå¥åº·</a> </li> <li id="34" ><a href="https://www.kpstamp.com.tw/ðå ¬æ°" data-hover="">ðå ¬æ°</a> </li> <li id="35" ><a href="https://www.kpstamp.com.tw/ðåå¸" data-hover="">ðåå¸</a> </li> <li id="36" ><a href="https://www.kpstamp.com.tw/ðå°èª" data-hover="">ðå°èª</a> </li> <li id="37" ><a href="https://www.kpstamp.com.tw/ðå°ç" data-hover="">ðå°ç</a> </li> <li id="38" ><a href="https://www.kpstamp.com.tw/ðå¤èª" data-hover="">ðå¤èª</a> </li> <li id="39" ><a href="https://www.kpstamp.com.tw/ðå¸ç¿ç®¡ç" data-hover="">ðå¸ç¿ç®¡ç</a> </li> <li id="310" ><a href="https://www.kpstamp.com.tw/ðæ·å²" data-hover="">ðæ·å²</a> </li> <li id="311" ><a href="https://www.kpstamp.com.tw/ðç©ç" data-hover="">ðç©ç</a> </li> <li id="312" ><a href="https://www.kpstamp.com.tw/ðçç©" data-hover="">ðçç©</a> </li> <li id="313" ><a href="https://www.kpstamp.com.tw/ðç«¥è»" data-hover="">ðç«¥è»</a> </li> <li id="314" ><a href="https://www.kpstamp.com.tw/ðéå課ç¨" data-hover="">ðéå課ç¨</a> </li> <li id="315" ><a href="https://www.kpstamp.com.tw/ðé£è²" data-hover="">ðé£è²</a> </li> <li id="316" ><a href="https://www.kpstamp.com.tw/æéæå¸" data-hover="">æéæå¸</a> </li> <li id="317" ><a href="https://www.kpstamp.com.tw/ðåèª" data-hover="">ðåèª</a> </li> <li id="318" ><a href="https://www.kpstamp.com.tw/ðè±æ" data-hover="">ðè±æ</a> </li> <li id="319" ><a href="https://www.kpstamp.com.tw/ðæ¸å¸" data-hover="">ðæ¸å¸</a> </li> <li id="320" ><a href="https://www.kpstamp.com.tw/ð社æ" data-hover="">ð社æ</a> </li> <li id="321" ><a href="https://www.kpstamp.com.tw/ðèªç¶" data-hover="">ðèªç¶</a> </li> <li id="322" ><a href="https://www.kpstamp.com.tw/ðçæ´»" data-hover="">ðçæ´»</a> </li> <li id="323" ><a href="https://www.kpstamp.com.tw/ðç¾è¡" data-hover="">ðç¾è¡</a> </li> <li id="324" ><a href="https://www.kpstamp.com.tw/ð鳿¨" data-hover="">ð鳿¨</a> </li> <li id="325" ><a href="https://www.kpstamp.com.tw/âä½å¹´ç´æå¸«å°ç¨â" data-hover="">âä½å¹´ç´æå¸«å°ç¨â</a> </li> <li id="326" ><a href="https://www.kpstamp.com.tw/âå®¶é·æå¸ç¨â" data-hover="">âå®¶é·æå¸ç¨â</a> </li> <li id="327" ><a href="https://www.kpstamp.com.tw/âå¹¼å åè師å°ç¨â" data-hover="">âå¹¼å åè師å°ç¨â</a> </li> <li id="328" ><a href="https://www.kpstamp.com.tw/âçåµéé»å°åâ" data-hover="">âçåµéé»å°åâ</a> </li> <li id="329" ><a href="https://www.kpstamp.com.tw/âç´ä»»å°å¸«å°ç¨â" data-hover="">âç´ä»»å°å¸«å°ç¨â</a> </li> </ul> </li> <li data-categoryid="76" href="https://www.kpstamp.com.tw/âï¸å人ç¨å§åå°ç« âï¸" > <a href="https://www.kpstamp.com.tw/âï¸å人ç¨å§åå°ç« âï¸" data-hover="">âï¸å人ç¨å§åå°ç« âï¸</a> </li> <li data-categoryid="100" href="https://www.kpstamp.com.tw/åç¨è¡é·å®¢è£½å°ç« " class="dropdown"> <a href="https://www.kpstamp.com.tw/åç¨è¡é·å®¢è£½å°ç« " data-hover="">åç¨è¡é·å®¢è£½å°ç« <b class="caret"></b></a> <ul class="dropdown-menu"> <li id="50" data-has-child='1'><a href="https://www.kpstamp.com.tw/ðè¡é·æ´»åè¨è£½å°ç« ð§¿" data-hover="">ðè¡é·æ´»åè¨è£½å°ç« ð§¿</a> <ul class="dropdown-menu"> <li id="50_56"><a href="https://www.kpstamp.com.tw/ä¾åè¨è£½" data-hover="">ä¾åè¨è£½</a></li> <li id="50_27"><a href="https://www.kpstamp.com.tw/è¡é·æ´»åç« " data-hover="">è¡é·æ´»åç« </a></li> </ul> </li> </ul> </li> <li data-categoryid="92" href="https://www.kpstamp.com.tw/SMOJI" class="dropdown"> <a href="https://www.kpstamp.com.tw/SMOJI" data-hover="">SMOJI <b class="caret"></b></a> <ul class="dropdown-menu"> <li id="60" ><a href="https://www.kpstamp.com.tw/SMOJI_SET" data-hover="SMOJIç±é·
630å¥çµ">SMOJIç±é·å¥çµ</a> </li> </ul> </li> </ul> </div> </div> </div> </nav><!-- #navbar --> </div><!-- .container --> <div class="fluid-container"> <div id="content-top"></div> </div><!-- .fluid-container --> <div id="body-outer-container" class="container"> <div class="container-inner"> <style> 631 .swal2-container.swal2-center { 632 z-index: 999999999; 633 } 634 635 #options .nice-number { 636 display: inline-block; 637 } 638 639 #options label[data-number-input-option] .nice-number>button { 640 -webkit-appearance: none; 641 border: 1px solid #BBB; 642 background: #FBFBFB; 643 height: 28px; 644 } 645 646 #options label[data-number-input-option] .multicheck-options { 647 border-radius: 0px; 648 height: 28px; 649 } 650 651 #options label.option--value-no-stock .nice-number { 652 display: none; 653 } 654 655 .product-info .rightcol .product-feature-content { 656 -moz-hyphens: auto; 657 -ms-hyphens: auto; 658 -webkit-hyphens: auto; 659 hyphens: auto; 660 word-wrap: break-word; 661 } 662 663 h1.product-heading-title { 664 -moz-hyphens: auto; 665 -ms-hyphens: auto; 666 -webkit-hyphens: auto; 667 hyphens: auto; 668 word-wrap: break-word; 669 } 670 671 .cart .button.button-ticket { 672 background: #35bcab; 673 border-color: #35bcab; 674 } 675 676 .cart .button.button-ticket:hover { 677 background: #35bcab; 678 border-color: #288e84; 679 } 680 681 /*#maincontent.product-info.span12 #main-image.image { text-align: center; } */ 682 #maincontent.product-info.span12 #main-image img { 683 width: auto; 684 max-width: 480px; 685 } 686 687 #maincontent.product-info #main-defer-image { 688 width: 100%; 689 max-width: 480px; 690 } 691 692 #image-additional { 693 display: flex; 694 flex-wrap: wrap; 695 align-items: flex-start; 696 gap: 1px; 697 float: none !important; 698 } 699 700 #image-additional-container { 701 float: none !important; 702 clear: both; 703 display: block; 704 margin-left: auto; 705 margin-right: 0; 706 } 707 708 #image-additional li { 709 display: block; 710 margin: 0; 711 list-style: none; 712 } 713 714 #image-additional li a img { 715 display: block; 716 } 717 718 .add-additional-purchase-price { 719 display: inline-block; 720 margin-left: 12px; 721 margin-right: 12px; 722 line-height: 40px; 723 } 724 725 .add-additional-purchase-price .product-original-price { 726 display: inline-block; 727 margin: 0px; 728 margin-left: 6px; 729 text-decoration: line-through; 730 color: #C0C0C0; 731 font-size: 11px; 732 } 733 734 .add-additional-purchase-price .product-additional-price { 735 display: inline-block; 736 margin: 0px; 737 font-weight: bold; 738 color: #d9505b; 739 font-size: 14px; 740 } 741 742 .well.add-additional-purchase-price-container label { 743 padding: 4px; 744 padding-bottom: 8px; 745 padding-left: 12px; 746 border: 2px solid #DFDFDF; 747 background: #FFF; 748 cursor: pointer; 749 position: relative; 750 } 751 752 .well.add-additional-purchase-price-container label .text_no_pick { 753 padding: 0px; 754 padding-left: 6px; 755 padding-right: 6px; 756 border-radius: 4px; 757 background: #65b9aa; 758 color: #FFF; 759 font-size: 9px; 760 line-height: 16px; 761 position: absolute; 762 right: -3px; 763 top: -3px; 764 font-weight: bold; 765 } 766 767 .well.add-additional-purchase-price-container label:hover { 768 border: 2px solid #919191; 769 } 770 771 .well.add-additional-purchase-price-container label input[type='radio'] { 772 padding: 0px; 773 margin: 0px; 774 } 775 776 @media screen and (max-width: 467px) { 777 .option-image small { 778 display: block; 779 } 780 781 #maincontent.product-info.span12 #main-image img { 782 width: auto; 783 max-width: 100%; 784 } 785 786 #maincontent.product-info #main-defer-image { 787 width: 100%; 788 max-width: 100%; 789 } 790 791 h1.product-heading-title { 792 text-align: left; 793 padding: 20px; 794 padding-left: 12px; 795 } 796 797 #discount_list ul, 798 ol { 799 padding: 0; 800 margin: 0 0 10px 10px; 801 text-align: left; 802 } 803 } 804 805 @media only screen and (max-width: 1000px), 806 only screen and (min-device-width: 375px) and (max-device-width: 667px) and (orientation: portrait), 807 only screen and (min-device-width: 414px) and (max-device-width: 736px) and (orientation: portrait) { 808 809 .product-info .image, 810 .product-info .image img { 811 #maincontent.product-info.span12 #main-image img { 812 width: auto; 813 max-width: 100%; 814 } 815 816 #maincontent.product-info #main-defer-image { 817 width: 100%; 818 max-width: 100%; 819 } 820 821 .rightcol .cart #button-cart.button-cart.button.pull-left { 822 -webkit-transition: none; 823 transition: none; 824 } 825 } 826 827 } 828 829 830 /* 貨å°éç¥æéè¨å® */ 831 .button-stock-notify { 832 background-color: var(--arrival-notice-button-bg-color, #ffffff); 833 /* ä½¿ç¨ CSS è®æ¸ï¼æä¾é è¨å¼ */ 834 color: var(--arrival-notice-button-text-color, #333333); 835 /* ä½¿ç¨ CSS è®æ¸ï¼æä¾é è¨å¼ */ 836 border: 1px solid var(--arrival-notice-button-border-color, #d9d9d9); 837 /* ä½¿ç¨ CSS è®æ¸ï¼æä¾é è¨å¼ */ 838 border-radius: 6px; 839 padding: 10px 20px; 840 line-height: 1.42857143; 841 display: inline-block; 842 font-weight: 600; 843 text-align: center; 844 white-space: nowrap; 845 vertical-align: middle; 846 cursor: pointer; 847 transition: all .2s ease-in-out; 848 font-size: 16px; 849 width: fit-content; 850 background: linear-gradient(to bottom, 851 var(--arrival-notice-button-bg-color-light, #fdfdfd) 0%, 852 var(--arrival-notice-button-bg-color, #ffffff) 100%); 853 box-shadow: 854 0 2px 4px rgba(0, 0, 0, 0.1), 855 0 5px 15px rgba(0, 0, 0, 0.05), 856 inset 0 1px 0 rgba(255, 255, 255, 0.2); 857 border-color: var(--arrival-notice-button-border-color, #c0c0c0); 858 859 } 860 861 .button-stock-notify.small { 862 font-size: 12px; 863 padding: 0.20rem; 864 } 865 866 .button-stock-notify:hover, 867 .button-stock-notify:focus { 868 869 filter: brightness(98%); 870 /* ç¨å¾®æ¬å並å å¼·é°å½± */ 871 transform: translateY(-2px); 872 box-shadow: 873 0 4px 8px rgba(0, 0, 0, 0.15), 874 0 8px 20px rgba(0, 0, 0, 0.08), 875 inset 0 1px 0 rgba(255, 255, 255, 0.3); 876 background: linear-gradient(to bottom, 877 var(--arrival-notice-button-bg-color, #ffffff) 0%, 878 var(--arrival-notice-button-bg-color, #f0f0f0) 100%); 879 border-color: var(--arrival-notice-button-border-color, #b0b0b0); 880 color: var(--arrival-notice-button-text-color, #222222); 881 } 882 883 .button-stock-notify:active, 884 .button-stock-notify.active { 885 transform: translateY(1px); 886 box-shadow: 887 0 1px 2px rgba(0, 0, 0, 0.2), 888 inset 0 1px 2px rgba(0, 0, 0, 0.1), 889 inset 0 -1px 0 rgba(255, 255, 255, 0.1); 890 background: var(--arrival-notice-button-bg-color, #e0e0e0); 891 border-color: var(--arrival-notice-button-border-color, #a0a0a0); 892 } 893 894 .button-stock-notify.disabled, 895 .button-stock-notify[disabled] { 896 background-color: #fafafa; 897 color: #b3b3b3; 898 border-color: #e6e6e6;
899 cursor: not-allowed; 900 box-shadow: none; 901 opacity: .75; 902 } 903 904 /*ææ©æ¿æ¨£å¼*/ 905 .button-stock-notify.mobile { 906 width: 100%; 907 position: fixed; 908 bottom: 0px; 909 margin: 2px; 910 left: 0; 911 z-index: 9999; 912 margin: auto; 913 border-bottom: 0; 914 border-left: 0; 915 border-right: 0; 916 border-radius: 0; 917 padding: 10px; 918 height: 52px; 919 } 920 921 .d-inline-grid { 922 display: inline-grid; 923 } 924 925 /* ä¿®æ£å¹³æ¿è³¼è²·æéè·çåé¡ */ 926 #button-cart.fix-btn-size, 927 #button-quick-checkout.fix-btn-size { 928 position: fixed; 929 bottom: 10px; 930 padding: 0; 931 margin: 2px; 932 z-index: 999998; 933 border-radius: 0; 934 border: 0; 935 -webkit-box-shadow: none; 936 -moz-box-shadow: none; 937 box-shadow: none; 938 height: 52px; 939 line-height: 52px; 940 font-size: 16px; 941 display: block; 942 text-shadow: none 943 } 944 945 #button-cart.fix-btn-size { 946 left: 0; 947 width: 38%; 948 -webkit-transition: width .5s; 949 transition: width .5s 950 } 951 952 #button-quick-checkout.fix-btn-size { 953 right: 0; 954 width: 60%; 955 background: #31bcab; 956 color: #fafafa !important; 957 font-weight: bold; 958 font-size: 18px 959 } 960 961 #button-instant-checkout.fix-btn-size { 962 width: 60%; 963 -webkit-transition: width .5s; 964 transition: width .5s 965 } 966 967 /* ç¦æ¢è³¼è²·çæ¨£å¼ */ 968 .option-no-stock { 969 background: #f3f3f3 !important; 970 color: #c3c3c3 !important; 971 cursor: not-allowed !important; 972 } 973 974 .cursor-pointer { 975 cursor: pointer; 976 } 977 978 /* 貨å°éç¥ - å½çªé¡¯ç¤ºæ¨£å¼*/ 979 :root { 980 --lightbox-alert-error: rgb(95, 8, 2); 981 --lightbox-alert-success: #4CAF50; 982 --lightbox-alert-warning: rgb(119, 100, 71); 983 --lightbox-alert-info: rgb(0, 83, 151); 984 } 985 986 987 .lightbox-alert-icon-success { 988 color: var(--lightbox-alert-success); 989 } 990 991 .lightbox-alert-icon-error { 992 color: var(--lightbox-alert-error); 993 } 994 995 .lightbox-alert-icon-warning { 996 color: var(--lightbox-alert-warning); 997 } 998 999 .lightbox-alert-icon-info { 1000 color: var(--lightbox-alert-info); 1001 1002 } 1003 1004 /* Alert å示é¡è² 貨å°éç¥*/ 1005 .lightbox-alert-btn-success { 1006 background: var(--lightbox-alert-success); 1007 } 1008 1009 .lightbox-alert-btn-error { 1010 background: var(--lightbox-alert-error); 1011 } 1012 1013 .lightbox-alert-btn-warning { 1014 background: var(--lightbox-alert-warning); 1015 } 1016 1017 .lightbox-alert-btn-info { 1018 background: var(--lightbox-alert-info); 1019 } 1020 1021 .arrival-guide-guest-submit { 1022 background:rgb(119, 133, 145); 1023 color: #fff; 1024 padding: 11px 0; 1025 width: 100%; 1026 border: none; 1027 border-radius: 4px; 1028 font-size: 16px; 1029 cursor: pointer; 1030 font-weight: 500; 1031 } 1032</style> <ol itemscope itemtype="http://schema.org/BreadcrumbList" class="breadcrumb"> <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> <a itemprop="item" href="https://www.kpstamp.com.tw/"><span itemprop="name">é¦é </span></a> <meta itemprop="position" content="1" /> <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> 1033 > <a itemprop="item" href="https://www.kpstamp.com.tw/product/product&product_id=580"><span itemprop="name">ä¸å¸å§åå°ç« </span></a> <meta itemprop="position" content="2" /> </li> </ol> <header class="heading"> <div id="notification"></div> </header> <div class="row-fluid"> <!-- GEO/AEO: BreadcrumbList JSON-LD -->
1033<script type="application/ld+json"> 1034 { 1035 "@context": "https://schema.org", 1036 "@type": "BreadcrumbList", 1037 "itemListElement": [ 1038 { 1039 "@type": "ListItem", 1040 "position": 1, 1041 "name": "\u9996\u9801", 1042 "item": "https:\/\/www.kpstamp.com.tw\/" } 1043 , { 1044 "@type": "ListItem", 1045 "position": 2, 1046 "name": "\u4e01\u5e03\u59d3\u540d\u5370\u7ae0", 1047 "item": "https:\/\/www.kpstamp.com.tw\/product\/product&product_id=580" } 1048 ] 1049 } 1050 </script>
1050 <!-- GEO/AEO: WebPage + mainEntity -->
1050<script type="application/ld+json"> 1051 { 1052 "@context": "https://schema.org", 1053 "@type": "WebPage", 1054 "name": "\u4e01\u5e03\u59d3\u540d\u5370\u7ae0", 1055 "url": "https:\/\/www.kpstamp.com.tw\/product\/product&product_id=580", 1056 "mainEntity": { 1057 "@type": "Product", 1058 "@id": "#product" 1059 } 1060 } 1061 </script>
1061
1061<script type="application/ld+json"> 1062 { 1063 "@context": "https://schema.org", 1064 "@type": "Product", 1065 "@id": "#product", 1066 "productID": "580", 1067 "name": "\u4e01\u5e03\u59d3\u540d\u5370\u7ae0", 1068 "description": "\u4e01\u5e03\u59d3\u540d\u5370\u7ae0", 1069 "image": [ 1070 "https:\/\/image-cdn-flare.qdm.cloud\/q629aa4e2e71b1\/image\/data\/2026\/09\/18\/351af11b73f54fd1df81dd934402cb1a.jpg" 1071 ], 1072 "brand": { 1073 "@type": "Brand", 1074 "name": "\u4e01\u5e03\u59d3\u540d\u5370\u7ae0" 1075 } 1076 , "offers": { 1077 "@type": "Offer", 1078 "url": "https:\/\/www.kpstamp.com.tw\/product\/product&product_id=580", 1079 "priceCurrency": "TWD", 1080 "price": "150", 1081 "priceValidUntil": "2027-10-08", 1082 "itemCondition": "https://schema.org/NewCondition", 1083 "availability": "https://schema.org/InStock", 1084 "seller": { 1085 "@type": "Organization", 1086 "name": "å»På°åè¡ å®¢è£½åé£çºå°ç« 第ä¸åç" 1087 }, 1088 "shippingDetails": { 1089 "@type": "OfferShippingDetails", 1090 "shippingRate": { 1091 "@type": "MonetaryAmount", 1092 "value": "0", 1093 "currency": "TWD" 1094 }, 1095 "shippingDestination": { 1096 "@type": "DefinedRegion", 1097 "addressCountry": "TW" 1098 }, 1099 "deliveryTime": { 1100 "@type": "ShippingDeliveryTime", 1101 "handlingTime": { 1102 "@type": "QuantitativeValue", 1103 "minValue": "1", 1104 "maxValue": "3", 1105 "unitCode": "DAY" 1106 }, 1107 "transitTime": { 1108 "@type": "QuantitativeValue", 1109 "minValue": "1", 1110 "maxValue": "3", 1111 "unitCode": "DAY" 1112 } 1113 } 1114 }, 1115 "hasMerchantReturnPolicy": { 1116 "@type": "MerchantReturnPolicy", 1117 "applicableCountry": "TW", 1118 "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", 1119 "merchantReturnDays": "7", 1120 "returnMethod": "https://schema.org/ReturnByMail", 1121 "returnFees": "https://schema.org/FreeReturn" 1122 } 1123 } 1124 } 1125 </script>
1125 <section id="maincontent" class="product-info span12" role="main"> <div class="mainborder"> <div class="prevnext clearfix"> <ul class="pager"> <li class="previous"> </li> <li class="next"> </li> </ul> </div> <div class="row-fluid"> <div class="leftcol"> <img id="main-defer-image" onerror='imgError(this);' src="https://image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2026/09/18/351af11b73f54fd1df81dd934402cb1a.jpg" data-rjs="https://image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2026/09/18/351af11b73f54fd1df81dd934402cb1a.jpg" style="display:inline-block;" /> <div id="main-image" class="image hidden" style="padding:0px;"> <a class="fancybox-product" href="https://image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2026/09/18/351af11b73f54fd1df81dd934402cb1a.jpg" title="ä¸å¸å§åå°ç« "><img pagespeed_no_defer="" id='zoom1' src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="https://image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2026/09/18/351af11b73f54fd1df81dd934402cb1a.jpg" data-rjs="https://image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2026/09/18/351af11b73f54fd1df81dd934402cb1a.jpg" onerror='imgError(this);' data-hd-image="https://image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2026/09/18/351af11b73f54fd1df81dd934402cb1a.jpg" data-zoom-image="https://image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2026/09/18/351af11b73f54fd1df81dd934402cb1a.jpg" alt="ä¸å¸å§åå°ç« " style="display:inline-block;min-height:200px;animation-duration:0s;transition: all 0s ease 0s" /></a> </div> </div> <!-- .span6 LEFT BOX--> <div class="rightcol"> <input type="hidden" name="EscrowDays" value="" /> <h1 class="product-heading-title">ä¸å¸å§åå°ç« </h1> <!-- special_price_countdown start --> <div id="countdown_dashboard" class="countdown"></div> <!-- special_price_countdown end --> <div class="price"> <div id="price-price-block"> <span class="price-normal product-sell-price" data-content="150">$150</span> </div> <div class="discount" id="promotion_list"> </div> <!-- .discount--> </div> <!-- .price --> <div class="description"> <span>庫åçæ³</span> <span id="product-stock-current" data-display-status="0">ç¾è²¨</span> </div> <!-- .description --> <div id="options" class="options clearfix" style="display:none;"> <!-- Select --> <!-- Radio --> <!-- Checkbox --> <!-- Image --> <div id="option-1200" class="control-group clearfix changeImage"> <label class="control-label"> <span class="required">*</span> <b>å°åºé¡è²(é¡è²ææä¸äºè²å·®)</b> </label> <div for="option-value-9559" class="radio option-image col-xs-4 col-sm-4 col-md-4" style="min-height: 110px;"> <input type="radio" name="option[1200]" value="9559" id="option-value-9559" /> <a data-fancybox="images" rel="group2" href="//image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/ChatGPT_Image_2026å¹´9æ18æ¥_ä¸å10_54_10_1.png"><img onerror='imgError(this);' src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="//image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/cache/data/ChatGPT_Image_2026E5B9B49E69C8818E697A5_E4B88BE58D8810_54_10_1-cr-627x627.png" style="width:60px;height:60px;" alt="ç´
è²" /></a> <div class="d-inline-grid cursor-pointer" data-selects="option-value-9559"> <small>ç´
è²</small> </div> </div> <div for="option-value-9560" class="radio option-image col-xs-4 col-sm-4 col-md-4" style="min-height: 110px;"> <input type="radio" name="option[1200]" value="9560" id="option-value-9560" /> <a data-fancybox="images" rel="group2" href="//image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/ChatGPT_Image_2026å¹´9æ18æ¥_ä¸å10_54_10_2.png"><img onerror='imgError(this);' src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="//image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/cache/data/ChatGPT_Image_2026E5B9B49E69C8818E697A5_E4B88BE58D8810_54_10_2-cr-627x627.png" style="width:60px;height:60px;" alt="æ¡ç´
è²" /></a> <div class="d-inline-grid cursor-pointer" data-selects="option-value-9560"> <small>æ¡ç´
è²</small> </div> </div> <div for="option-value-9561" class="radio option-image col-xs-4 col-sm-4 col-md-4" style="min-height: 110px;"> <input type="radio" name="option[1200]" value="9561" id="option-value-9561" /> <a data-fancybox="images" rel="group2" href="//image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/ChatGPT_Image_2026å¹´9æ18æ¥_ä¸å10_54_11_3.png"><img onerror='imgError(this);' src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="//image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/cache/data/ChatGPT_Image_2026E5B9B49E69C8818E697A5_E4B88BE58D8810_54_11_3-cr-627x627.png" style="width:60px;height:60px;" alt="æ©è²" /></a> <div class="d-inline-grid cursor-pointer" data-selects="option-value-9561"> <small>æ©è²</small> </div> </div> </div> <!-- Text field --> <!-- Textarea --> <!-- File --> <!-- Date --> <!-- Date time --> <!-- Time --> <!-- Booking --> <!-- Booking --> </div> <!-- .options --> <div class="cart"> <div> <br /> <input type="text" name="quantity" value="1" style="text-align: center;" /> <br /> <input type="hidden" name="product_id" value="580" id="product_id" /> <input type="hidden" name="promotion_id" id="promotion_id" value="-1" /> <div class="hidden-xs hidden-sm pull-left"> <input type="button" class="button-quick-checkout" value="ç´æ¥è³¼è²·" id="button-quick-checkout" onclick="buttonQuickCheckout();return false;" /> </div> <a id="button-cart" onclick="buttonAddToCart()" class="button-cart button pull-left"><i class="icon-spinner icon-spin hidden" style="margin-right: 8px;"></i>å å
¥è³¼ç©è»</a> </div> </div> <!-- .cart --> <div class="hidden-lg hidden-md"> <center> <input type="button" class="btn btn-default btn-block button-quick-checkout button-quick-checkout-mobile" value="ç´æ¥è³¼è²·" id="button-quick-checkout" onclick="buttonQuickCheckout();return false;" /> <a id="button-instant-checkout" class="button hidden" href="/cart">çµå¸³ <i class="fa fa-chevron-right" aria-hidden="true"></i></a> </center> </div> <div class="clearfix hidden-xs hidden-sm"></div> <div id="free_present_list" style="display:none;margin-top:32px;"></div> <div id="buy_together_list" style="display:none;margin-top:32px;"></div> <div id="error_buy_togther"></div><br /> <div id="cloudmaker_stock"> </div> <div class="more-actions"> <div class="wishlist">
1125<a onclick="addToWishList('580');FB_AddToWishlist();">å å ¥é¡ææ¸ å®</a></div> <div class="compare"><a onclick="addToCompare('580');">å å ¥å忝è¼</a></div> </div> <div class="review"> <img src="https://cdn.qdm.cloud/qdm_base/catalog/view/theme/default/images/stars-0.png" alt="0 åè©è«" style="height:11px;width:62px" /> <a onclick="$('a[href=\'#tab-review\']').trigger('click'); $('html, body').animate({scrollTop: $('#tabs').offset().top}, 800);" class="view-revs">0 åè©è«</a> <a id="add-review-link" onclick="$('a[href=\'#tab-review\']').trigger('click'); $('html, body').animate({scrollTop: $('#add-review').offset().top}, 800);"><i class="icon-review"></i> ç¼è¡¨è©è«</a> </div> <div class="share"> <br /> <div class="a2a_kit a2a_kit_size_22 a2a_default_style" data-a2a-icon-color="transparent" id="my_centered_buttons"> <a class="a2a_button_line external"></a> <a class="a2a_button_facebook external"></a> <a class="a2a_button_twitter external"></a> <a class="a2a_button_google_plus external"></a> <a class="a2a_button_pinterest external"></a> </div> </div> </div> <!-- .span6 RIGHT BOX--> </div> <section id="full-info" class="clearfix"> <div id="tabs" class="htabs "> <a href="#tab-description">ååä»ç´¹</a> <a href="#tab-review" onclick="loadislogin();">ååè©è« (0)</a> </div> <div id="tab-description" class="tab-content"> <div id="defer-load-spin"><i class="fa fa-circle-o-notch fa-spin fa-fw"></i><br /></div> <style> 1126/* ========================================= 1127 KPSTAMP ROUND STAMP 1128 2.6 CM åå½¢å æå°ç« 1129 1130 å»Pçµ±ä¸åç詳æ é 1131 WHITE EDITION 1132========================================= */ 1133 1134#kp-round-stamp { 1135 1136 --kp-white: #ffffff; 1137 --kp-black: #262626; 1138 --kp-gray: #686868; 1139 --kp-line: #e9e5dc; 1140 --kp-yellow: #f6e7a7; 1141 1142 width: 100%; 1143 max-width: 960px; 1144 1145 margin: 0 auto; 1146 padding: 0; 1147 1148 background: #ffffff; 1149 color: var(--kp-black); 1150 1151 font-family: 1152 "Noto Sans TC", 1153 "Microsoft JhengHei", 1154 sans-serif; 1155 1156 line-height: 1.8; 1157 box-sizing: border-box; 1158} 1159 1160#kp-round-stamp * { 1161 box-sizing: border-box; 1162} 1163 1164#kp-round-stamp img { 1165 display: block; 1166 max-width: 100%; 1167 height: auto; 1168} 1169 1170#kp-round-stamp .kp-section { 1171 padding: 65px 35px; 1172 background: #ffffff; 1173} 1174 1175#kp-round-stamp .kp-section + .kp-section { 1176 border-top: 1px solid var(--kp-line); 1177} 1178 1179#kp-round-stamp .kp-center { 1180 text-align: center; 1181} 1182 1183 1184/* ========================================= 1185 çµ±ä¸åé« 1186========================================= */ 1187 1188#kp-round-stamp h2 { 1189 1190 margin: 0 0 20px; 1191 1192 font-size: 38px; 1193 font-weight: 900; 1194 line-height: 1.45; 1195 letter-spacing: 0.5px; 1196 1197 color: var(--kp-black); 1198} 1199 1200#kp-round-stamp h3 { 1201 1202 margin: 0 0 15px; 1203 1204 font-size: 25px; 1205 font-weight: 800; 1206 line-height: 1.5; 1207 1208 color: var(--kp-black); 1209} 1210 1211#kp-round-stamp p { 1212 1213 margin: 0; 1214 1215 font-size: 15px; 1216 line-height: 2; 1217 1218 color: var(--kp-gray); 1219} 1220 1221 1222/* ========================================= 1223 åçæ¨ç±¤ 1224========================================= */ 1225 1226#kp-round-stamp .kp-tag { 1227 1228 display: inline-block; 1229 1230 padding: 5px 18px; 1231 margin-bottom: 22px; 1232 1233 border: 1px solid #292929; 1234 border-radius: 100px; 1235 1236 background: #ffffff; 1237 1238 font-size: 12px; 1239 font-weight: 800; 1240 letter-spacing: 2px; 1241 1242 color: var(--kp-black); 1243} 1244 1245 1246/* é»è²éé»åºç· */ 1247 1248#kp-round-stamp .kp-highlight { 1249 1250 background: 1251 linear-gradient( 1252 transparent 60%, 1253 var(--kp-yellow) 60% 1254 ); 1255 1256} 1257 1258 1259/* ========================================= 1260 01 HERO 1261========================================= */ 1262 1263#kp-round-stamp .kp-hero { 1264 1265 padding-top: 48px; 1266 text-align: center; 1267 1268} 1269 1270#kp-round-stamp .kp-lead { 1271 1272 max-width: 620px; 1273 margin: 0 auto 36px; 1274 1275} 1276 1277 1278/* åæ ååç¤ºç¯ */ 1279 1280#kp-round-stamp .kp-gif { 1281 1282 max-width: 680px; 1283 margin: 0 auto; 1284 1285 overflow: hidden; 1286 border-radius: 18px; 1287 1288 background: #ffffff; 1289 1290} 1291 1292#kp-round-stamp .kp-gif img { 1293 1294 width: 100%; 1295 height: auto; 1296 1297} 1298 1299 1300/* ========================================= 1301 02 ååä¸å¤§ç¹è² 1302========================================= */ 1303 1304#kp-round-stamp .kp-features { 1305 1306 display: grid; 1307 grid-template-columns: repeat(3,1fr); 1308 1309 gap: 28px; 1310 1311 margin-top: 45px; 1312 text-align: left; 1313 1314} 1315 1316#kp-round-stamp .kp-feature { 1317 1318 border-top: 2px solid #262626; 1319 padding-top: 20px; 1320 1321} 1322 1323#kp-round-stamp .kp-feature-num { 1324 1325 margin-bottom: 12px; 1326 1327 font-size: 12px; 1328 font-weight: 800; 1329 letter-spacing: 2px; 1330 1331 color: #999999; 1332 1333} 1334 1335#kp-round-stamp .kp-feature-title { 1336 1337 font-size: 19px; 1338 font-weight: 900; 1339 1340 margin-bottom: 10px; 1341 1342} 1343 1344#kp-round-stamp .kp-feature-desc { 1345 1346 font-size: 14px; 1347 line-height: 1.9; 1348 1349 color: var(--kp-gray); 1350 1351} 1352 1353 1354/* ========================================= 1355 03 å¤è²å¤æ®¼ 1356========================================= */ 1357 1358#kp-round-stamp .kp-color-head { 1359 1360 max-width: 650px; 1361 margin: 0 auto 35px; 1362 1363 text-align: center; 1364 1365} 1366 1367#kp-round-stamp .kp-color-image { 1368 1369 width: 100%; 1370 margin: 0 auto; 1371 1372 background: #ffffff; 1373 1374} 1375 1376#kp-round-stamp .kp-color-image img { 1377 1378 display: block; 1379 width: 100%; 1380 height: auto; 1381 1382 object-fit: contain; 1383 1384} 1385 1386 1387/* ========================================= 1388 04 å°ç« 使ç¨è¨è¨ 1389========================================= */ 1390 1391#kp-round-stamp .kp-details { 1392 1393 display: grid; 1394 1395 grid-template-columns: 1fr 1fr; 1396 1397 gap: 40px; 1398 align-items: start; 1399 1400} 1401 1402#kp-round-stamp .kp-detail { 1403 1404 padding-top: 22px; 1405 border-top: 1px solid var(--kp-line); 1406 1407} 1408 1409#kp-round-stamp .kp-detail-num { 1410 1411 font-size: 12px; 1412 font-weight: 800; 1413 letter-spacing: 2px; 1414 1415 color: #999; 1416 1417 margin-bottom: 14px; 1418 1419} 1420 1421#kp-round-stamp .kp-detail h3 { 1422 1423 font-size: 23px; 1424 margin-bottom: 12px; 1425 1426} 1427 1428 1429/* ========================================= 1430 05 尺寸 1431========================================= */ 1432 1433#kp-round-stamp .kp-size-circle { 1434 1435 width: 190px; 1436 height: 190px; 1437 1438 margin: 35px auto 20px; 1439 1440 border: 2px solid #292929; 1441 border-radius: 50%; 1442 1443 display: flex; 1444 flex-direction: column; 1445 1446 align-items: center; 1447 justify-content: center; 1448 1449 background: #ffffff; 1450 1451} 1452 1453#kp-round-stamp .kp-size-circle strong { 1454 1455 font-size: 52px; 1456 font-weight: 900; 1457 line-height: 1.1; 1458 1459} 1460 1461#kp-round-stamp .kp-size-circle span { 1462 1463 margin-top: 8px; 1464 1465 font-size: 12px; 1466 letter-spacing: 2px; 1467 1468 color: #777; 1469 1470} 1471 1472#kp-round-stamp .kp-note { 1473 1474 font-size: 12px; 1475 color: #999; 1476 1477} 1478 1479 1480/* ========================================= 1481 06 è£å å°æ²¹ 1482========================================= */ 1483 1484#kp-round-stamp .kp-refill { 1485 1486 max-width: 680px; 1487 margin: 0 auto; 1488 1489 text-align: center; 1490 1491} 1492 1493 1494/* 購買æé */ 1495 1496#kp-round-stamp .kp-button { 1497 1498 display: inline-flex; 1499 1500 align-items: center; 1501 justify-content: center; 1502 1503 gap: 20px; 1504 1505 margin-top: 32px; 1506 1507 padding: 15px 32px; 1508 1509 background: #262626; 1510 color: #ffffff !important; 1511 1512 border-radius: 100px; 1513 1514 font-size: 15px; 1515 font-weight: 800; 1516 1517 text-decoration: none !important; 1518 1519 transition: all 0.25s ease; 1520 1521} 1522 1523#kp-round-stamp .kp-button:hover { 1524 1525 background: #494949; 1526 color: #ffffff !important; 1527 1528 transform: translateY(-2px); 1529 1530} 1531 1532 1533/* ========================================= 1534 07 MADE IN TAIWAN 1535========================================= */ 1536 1537#kp-round-stamp .kp-made { 1538 1539 max-width: 680px; 1540 margin: 0 auto; 1541 1542 text-align: center; 1543 1544} 1545 1546#kp-round-stamp .kp-made-en { 1547 1548 font-size: 12px; 1549 font-weight: 900; 1550 1551 letter-spacing: 3px; 1552 1553 margin-bottom: 20px; 1554 1555} 1556 1557#kp-round-stamp .kp-made-line { 1558 1559 width: 45px; 1560 height: 2px; 1561 1562 background: #262626; 1563 1564 margin: 28px auto; 1565 1566} 1567 1568 1569/* ========================================= 1570 08 ååè¦æ ¼ 1571========================================= */ 1572 1573#kp-round-stamp .kp-spec { 1574 1575 max-width: 700px; 1576 1577 margin: 30px auto 0; 1578 1579 border-top: 1px solid var(--kp-line); 1580 1581} 1582 1583#kp-round-stamp .kp-spec-row { 1584 1585 display: flex; 1586 1587 padding: 17px 8px; 1588 1589 border-bottom: 1px solid var(--kp-line); 1590 1591 font-size: 14px; 1592 1593} 1594 1595#kp-round-stamp .kp-spec-label { 1596 1597 width: 34%; 1598 font-weight: 800; 1599 1600} 1601 1602#kp-round-stamp .kp-spec-value { 1603 1604 width: 66%; 1605 color: var(--kp-gray); 1606 1607} 1608 1609 1610/* =========================================
1611 09 åçè½æ¬¾ 1612========================================= */ 1613 1614#kp-round-stamp .kp-footer { 1615 1616 padding: 45px 20px 30px; 1617 1618 text-align: center; 1619 background: #ffffff; 1620 1621} 1622 1623#kp-round-stamp .kp-footer-logo { 1624 1625 width: 120px; 1626 1627 margin: 0 auto 12px; 1628 1629} 1630 1631#kp-round-stamp .kp-footer-text { 1632 1633 font-size: 12px; 1634 letter-spacing: 1px; 1635 1636 color: #999; 1637 1638} 1639 1640 1641/* ========================================= 1642 MOBILE 1643========================================= */ 1644 1645@media(max-width:768px) { 1646 1647 #kp-round-stamp .kp-section { 1648 1649 padding: 48px 18px; 1650 1651 } 1652 1653 #kp-round-stamp h2 { 1654 1655 font-size: 29px; 1656 1657 } 1658 1659 #kp-round-stamp h3 { 1660 1661 font-size: 21px; 1662 1663 } 1664 1665 #kp-round-stamp p { 1666 1667 font-size: 14px; 1668 1669 } 1670 1671 #kp-round-stamp .kp-features { 1672 1673 grid-template-columns: 1fr; 1674 gap: 20px; 1675 1676 margin-top: 32px; 1677 1678 } 1679 1680 #kp-round-stamp .kp-feature { 1681 1682 padding-top: 15px; 1683 1684 } 1685 1686 #kp-round-stamp .kp-details { 1687 1688 grid-template-columns: 1fr; 1689 1690 gap: 30px; 1691 1692 } 1693 1694 #kp-round-stamp .kp-size-circle { 1695 1696 width: 155px; 1697 height: 155px; 1698 1699 } 1700 1701 #kp-round-stamp .kp-size-circle strong { 1702 1703 font-size: 42px; 1704 1705 } 1706 1707 #kp-round-stamp .kp-button { 1708 1709 width: 100%; 1710 max-width: 300px; 1711 1712 font-size: 14px; 1713 1714 } 1715 1716 #kp-round-stamp .kp-spec-row { 1717 1718 font-size: 13px; 1719 1720 } 1721 1722} 1723 1724</style> <!-- ===================================== 1725 KPSTAMP ROUND STAMP 1726===================================== --> <section id="kp-round-stamp"> <!-- ===================================== 1727 01 主è¦è¦º 1728===================================== --> <div class="kp-section kp-hero"> <div class="kp-tag"> 1729 1730 KPSTAMP · ROUND STAMP 1731 1732 </div> <h2> 1733 1734 ååä¸é¡ï¼<br> <span class="kp-highlight"> 1735 1736 坿åå好ã 1737 1738 </span> </h2> <p class="kp-lead"> 1739 1740 æåæ¡çåæ¡ï¼<br> 1741 1742 èé²çæ´»è£¡çæ¯åå°æ¥å¸¸ã<br><br> 1743 1744 2.6 å ¬ååå½¢å æå°ç« ï¼<br> 1745 1746 å°å·§å¯æï¼ä¹å¾å¥½ç¨ã 1747 1748 </p> <!-- GIF --> <div class="kp-gif"> <img 1749 1750 src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="https://image-cdn.qdm.cloud/site/q629aa4e2e71b1/image/data/G/Adobe_Express_-_8F17400A-9B76-423E-99F2-FA1BB88D634C_1.gif" 1751 1752 alt="å»Påå½¢å°ç« èå°ç¤ºç¯" 1753 1754 /> </div> <!-- ååç¹è² --> <div class="kp-features"> <div class="kp-feature"> <div class="kp-feature-num"> 1755 1756 FEATURE 01 1757 1758 </div> <div class="kp-feature-title"> 1759 1760 åå½¢å°å°ç« 1761 1762 </div> <div class="kp-feature-desc"> 1763 1764 ç´å¾ 2.6 å ¬åï¼<br> 1765 1766 å°å·§å¥½æ¶ç´ï¼æ¥å¸¸ä½¿ç¨åå好ã 1767 1768 </div> </div> <div class="kp-feature"> <div class="kp-feature-num"> 1769 1770 FEATURE 02 1771 1772 </div> <div class="kp-feature-title"> 1773 1774 å½ç°§ç« è¨è¨ 1775 1776 </div> <div class="kp-feature-desc"> 1777 1778 ä¸å£å°±è½èå°ï¼<br> 1779 1780 ä¸å¿ æ¯æ¬¡ä½¿ç¨é½éæ°éèãèåã 1781 1782 </div> </div> <div class="kp-feature"> <div class="kp-feature-num"> 1783 1784 FEATURE 03 1785 1786 </div> <div class="kp-feature-title"> 1787 1788 é 鍿¨ç¤ºè¦çª 1789 1790 </div> <div class="kp-feature-desc"> 1791 1792 å¾ä¸æ¹å°±è½è¾¨èå §å®¹ï¼<br> 1793 1794 ä¸ç¨éé¡ç¿»æ¾å°é¢ã 1795 1796 </div> </div> </div> </div> <!-- ===================================== 1797 02 å¤è²å¤æ®¼ 1798===================================== --> <div class="kp-section"> <div class="kp-color-head"> <div class="kp-tag"> 1799 1800 COLOR LINEUP 1801 1802 </div> <h2> 1803 1804 æ¯ä¸é¡ï¼<br> <span class="kp-highlight"> 1805 1806 齿èªå·±çé¡è²ã 1807 1808 </span> </h2> <p> 1809 1810 å¤ç¨®å½©è²å¤æ®¼é¨æ©åºè²¨ï¼<br> 1811 1812 è²å½©é®®è±æ´»åå æ²ï¼ 1813 1814 </p> </div> <!-- å¤è²å°ç« ç §ç --> <div class="kp-color-image"> <img 1815 1816 src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="https://image-cdn.qdm.cloud/site/q629aa4e2e71b1/image/data/001_vivipic_-_2026-09-22T183613.091.jpg" 1817 1818 alt="å»Påå½¢å°ç« å¤è²å¤æ®¼" 1819 1820 loading="lazy" 1821 1822 /> </div> </div> <!-- ===================================== 1823 03 使ç¨è¨è¨ 1824===================================== --> <div class="kp-section"> <div class="kp-center"> <div class="kp-tag"> 1825 1826 SMART DETAILS 1827 1828 </div> <h2> 1829 1830 好ç¨çå°ç´°ç¯ï¼<br> <span class="kp-highlight"> 1831 1832 æå齿æ³å°äºã 1833 1834 </span> </h2> </div> <div class="kp-details"> <div class="kp-detail"> <div class="kp-detail-num"> 1835 1836 01 / PRESS & STAMP 1837 1838 </div> <h3> 1839 1840 ä¸ç¨ä¸ç´éèï¼<br> 1841 1842 æ³èå°±èã 1843 1844 </h3> <p> 1845 1846 å½ç°§ç« è¨è¨ï¼è¼è¼ä¸å£å³å¯èå°ã 1847 1848 ä¸å¿ æ¯æ¬¡ä½¿ç¨é½éæ°éèï¼ 1849 1850 é©åè師ãå®¶é·è忡大éèå°çä½ ã 1851 1852 </p> </div> <div class="kp-detail"> <div class="kp-detail-num"> 1853 1854 02 / EASY TO FIND 1855 1856 </div> <h3> 1857 1858 å°±ç®æ 20 é¡ï¼<br> 1859 1860 ä¹è½å¿«éæ¾å°é£ä¸é¡ã 1861 1862 </h3> <p> 1863
1864 é é¨è¨ææ¨ç¤ºè¦çªï¼ 1865 1866 ä¸å¿ æ¿èµ·ä¾ç¿»çå°é¢ï¼ 1867 1868 ä¸ç¼å°±è½è¾¨èæ¯é¡å°ç« çå §å®¹ã 1869 1870 æ¶èè¶ä¾è¶å¤ï¼æ¾å°ç« ä¹ä¸æ¨£æ¹ä¾¿ã 1871 1872 </p> </div> </div> </div> <!-- ===================================== 1873 04 å°ç« 尺寸 1874===================================== --> <div class="kp-section kp-center"> <div class="kp-tag"> 1875 1876 THE PERFECT SIZE 1877 1878 </div> <h2> 1879 1880 å°å°ä¸é¡ï¼<br> <span class="kp-highlight"> 1881 1882 åå好çå卿ã 1883 1884 </span> </h2> <p> 1885 1886 ç´å¾ç´ 2.6 å ¬åçåå½¢å°ç« ï¼<br> 1887 1888 é©åæå¸³ãå¸ç¿ç´éèæ¥å¸¸èå°ã 1889 1890 </p> <div class="kp-size-circle"> <strong> 1891 1892 2.6 1893 1894 </strong> <span> 1895 1896 CM / ç´å¾ 1897 1898 </span> </div> <div class="kp-note"> 1899 1900 尺寸示æåã»éå¯¦éæ¯ä¾ 1901 1902 </div> </div> <!-- ===================================== 1903 05 è£å å°æ²¹ 1904===================================== --> <div class="kp-section"> <div class="kp-refill"> <div class="kp-tag"> 1905 1906 MADE TO LAST 1907 1908 </div> <h2> 1909 1910 墨水ç¨å®ï¼<br> <span class="kp-highlight"> 1911 1912 å°ç« ä¸ç¨è·èéä¼ã 1913 1914 </span> </h2> <p> 1915 1916 æ¡ç¨å æå°ç« 製ä½ï¼ 1917 1918 墨è²é£½æ»¿ãå°è·¡æ¸ æ°ã<br><br> 1919 1920 墨éä¸è¶³æï¼ 1921 1922 è£å å°ç¨å æå°æ²¹ï¼ 1923 1924 å°±è½è®åæ¡çå°ç« ç¹¼çºä½¿ç¨ã 1925 1926 </p> <a 1927 1928 href="https://www.kpstamp.com.tw/product/product&product_id=332" 1929 1930 target="_blank" 1931 1932 rel="noopener noreferrer" 1933 1934 class="kp-button" 1935 1936 > 1937 1938 購買å°ç¨å æå°æ²¹ 1939 1940 <span>â</span> </a> </div> </div> <!-- ===================================== 1941 06 å°ç£è£½ä½ 1942===================================== --> <div class="kp-section"> <div class="kp-made"> <div class="kp-tag"> 1943 1944 MADE IN TAIWAN BY KPSTAMP 1945 1946 </div> <h2> 1947 1948 å»P嵿ï¼<br> <span class="kp-highlight"> 1949 1950 å»P親æå®æã 1951 1952 </span> </h2> <p> 1953 1954 å¾åµæç¼æ³éå§ï¼<br> 1955 1956 å°å°ç« å §å¢è£½ä½èæ³¨æ²¹ä½æ¥ï¼<br> 1957 1958 çç±å»På°åè¡å¨å°ç£å®æã 1959 1960 </p> <div class="kp-made-line"></div> <p> 1961 1962 å¾ 2018 å¹´éå§ï¼<br> 1963 1964 æåæç活裡æ³å°çæ±è¥¿ï¼<br> 1965 1966 ä¸åä¸ååæå°ç« ã 1967 1968 </p> </div> </div> <!-- ===================================== 1969 07 ååè¦æ ¼ 1970===================================== --> <div class="kp-section"> <div class="kp-center"> <div class="kp-tag"> 1971 1972 PRODUCT DETAILS 1973 1974 </div> <h2> 1975 1976 ååè¦æ ¼ 1977 1978 </h2> </div> <div class="kp-spec"> <div class="kp-spec-row"> <div class="kp-spec-label"> 1979 1980 ååé¡å 1981 1982 </div> <div class="kp-spec-value"> 1983 1984 åå½¢å æå°ç« 1985 1986 </div> </div> <div class="kp-spec-row"> <div class="kp-spec-label"> 1987 1988 å°é¢å°ºå¯¸ 1989 1990 </div> <div class="kp-spec-value"> 1991 1992 ç´å¾ç´ 2.6 å ¬å 1993 1994 </div> </div> <div class="kp-spec-row"> <div class="kp-spec-label"> 1995 1996 ç« é«è¨è¨ 1997 1998 </div> <div class="kp-spec-value"> 1999 2000 å½ç°§ç« ãé 鍿¨ç¤ºè¦çª 2001 2002 </div> </div> <div class="kp-spec-row"> <div class="kp-spec-label"> 2003 2004 å°ç« ç¹è² 2005 2006 </div> <div class="kp-spec-value"> 2007 2008 墨è²é£½æ»¿ãå¯è£å å°æ²¹ 2009 2010 </div> </div> <div class="kp-spec-row"> <div class="kp-spec-label"> 2011 2012 ä½¿ç¨æé 2013 2014 </div> <div class="kp-spec-value"> 2015 2016 è«ä½¿ç¨é©ç¨çå°ç¨å æå°æ²¹ï¼ 2017 2018 é¿å æ··ç¨å ¶ä»é¡åå°æ²¹ã 2019 2020 </div> </div> </div> </div> <!-- ===================================== 2021 08 åçè½æ¬¾ 2022===================================== --> <div class="kp-footer"> <img 2023 2024 class="kp-footer-logo" 2025 2026 src="data:image/gif;base64,R0lGODdhAQABAPAAAP///wAAACwAAAAAAQABAEACAkQBADs=" data-lazy-src="https://image-cdn.qdm.cloud/site/q629aa4e2e71b1/image/data/ChatGPT_Image_2026å¹´9æ18æ¥_ä¸å10_49_57_9.png" 2027 2028 alt="kpstamp åç LOGO" 2029 2030 loading="lazy" 2031 2032 /> <div class="kp-footer-text"> 2033 2034 KEEP PASSIONATE WITH STAMP 2035 2036 </div> </div> </section> <!-- KPSTAMP ROUND STAMP END --> </div> <!-- #tab-description --> <div id="tab-review" class="tab-content"> <div class="row-fluid"> <section id="review" class="span12"></section> <section id="add-review" class="span11"> <div class="contentset center" id="review-title"> <h4 class="inner"><span>ç¼è¡¨è©è«</span></h4> </div> <div id="review-form"> <div id="login_y"> <div class="control-group clearfix"> <label class="label-group"><span class="required">*</span> <b>æ¨å°æ¤ååçæ´é«è©ç</b></label> <div class="controls wrapper"> <input type="radio" name="rating" id="st1" value="5" /> <label for="st1"></label> <input type="radio" name="rating" id="st2" value="4" /> <label for="st2"></label> <input type="radio" name="rating" id="st3" value="3" /> <label for="st3"></label> <input type="radio" name="rating" id="st4" value="2" /> <label for="st4"></label> <input type="radio" name="rating" id="st5" value="1" /> <label for="st5"></label> </div> </div> <br /> <div class="control-group clearfix"> <label class="label-group"><span class="required">*</span> <b>æ¨çæ±ç¨±</b></label> <div class="controls"> <input type="text" name="name" value="" class="span6" required /> </div> </div> <div class="control-group clearfix"> <label class="label-group"><span class="required">*</span> <b>æ¨çè©è«å §å®¹</b></label> <div class="controls"><textarea name="text" style="min-height:120px;" class="span6" required></textarea> </div> <small><span style="color #FF0000;">注æ</span> 䏿¯æ´ HTML èªæ³</small> </div> <div class="control-group clearfix"> <div class="form-actions">黿 <b>ãç¹¼çºãæé</b> å³åæï¼ãæä¿èæ¬åéå°æ¤ååçè©è«ï¼å ¶å §å®¹æ¯ä»¥æ¬äººçåèº«ç¶æ·çºä¾æï¼ä¿æ¬äººçç實è©è«ï¼ä¸æ¬äººèæ¤ååç¡å人æåæ¥éä¿ï¼ä¹ç
2036¡æ¶åæ¤ååçé¤½è´æéé¢ä»¥æ°å¯«éåè©è«ãã<br /><br /><a id="button-review" class="button button-inverse" onclick="addReview();"><span>ç¹¼çº</span></a> </div> </div> </div> <div id="login_n"> <div class="control-group clearfix"> <div class="form-actions"> <i class="fa fa-star-o" aria-hidden="true"></i> è«å
æå¡ç»å
¥ï¼åé²è¡ååè©è«<br /><br /> <a class="button button-inverse" href="/login" target="_blank" rel="noopener noreferrer nofollow"><span>ç»å
¥æå¡ <i class="fa fa-angle-right" aria-hidden="true"></i></span></a> </div> </div> </div> </div> </section> </div> </div> <!-- #tab-review --> </section> </div> </section> </div> <!-- ååé¸é
å½è·³è¦çª --> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <h4 class="modal-title" id="myModalLabel">ååé¸é
</h4> </div> <div id="cart_options_list" class="modal-body"></div> <div class="modal-footer"> <button type="button" class="button" id="button-change-option" style="height: 48px; width: 100%; background: #31bcab; color: #FFF; font-size: 14px; text-align: center; border-radius: 4px; text-shadow: none;">確å®</button> </div> </div> </div> </div> <!-- ååè³è¨ --> <div style="width: 75%;position: fixed;left: 50%;margin: 0 0 0 -37.5%;" class="modal fade" id="myModal_prod" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <h4 class="modal-title" id="myModalLabel">ååè³è¨</h4> </div> <div id="prod_data" class="modal-body"> </div> <div class="modal-footer"> </div> </div> </div> </div> <div class="prevnext clearfix"> <ul class="pager"> <li class="previous"> </li> <li class="next"> </li> </ul> </div>
2036<script> 2037 const goods_arrival_notice_switch_status = 0; 2038 var xOffset = 10; 2039 var yOffset = 30; 2040 var jsLoadProductTimeout = null; 2041 global_product_id = '580'; 2042 2043 // GOOGLE TRACKING PRODUCT DETAILS VIEWS 2044 function gaTrackProductView() { 2045 // UA 2046 dataLayer.push({ 2047 'ecommerce': { 2048 'detail': { 2049 'products': [{ 2050 'name': 'ä¸å¸å§åå°ç« ', 2051 'id': '580', 2052 'price': '150', 2053 'category': '', 2054 }] 2055 } 2056 } 2057 }); 2058 // GA4 2059 dataLayer.push({ 2060 'event': 'view_item', 2061 'ecommerce': { 2062 'items': [{ 2063 'item_name': 'ä¸å¸å§åå°ç« ', 2064 'item_id': '580', 2065 'price': '150', 2066 'item_category': '', 2067 'quantity': '1' 2068 }] 2069 } 2070 }); 2071 2072 2073 2074 try { 2075 gtag("event", "view_item", { 2076 value: 150, 2077 items: [{ 2078 'item_name': 'ä¸å¸å§åå°ç« ', 2079 'item_id': '580', 2080 'price': '150', 2081 'item_category': '', 2082 'quantity': '1' 2083 }] 2084 }); 2085 } catch (e) {} 2086 } 2087 2088 function gaTrackProductAddToCart() { 2089 var qty = 1; 2090 if ($("select[name='quantity']").length) { 2091 qty = $("select[name='quantity'] option:selected").val(); 2092 } else { 2093 qty = $("input[name='quantity']").val(); 2094 } 2095 // UA 2096 dataLayer.push({ 2097 'event': 'addToCart', 2098 'ecommerce': { 2099 'currencyCode': '', 2100 'add': { 2101 'products': [{ 2102 'name': 'ä¸å¸å§åå°ç« ', 2103 'id': '580', 2104 'price': '150', 2105 'category': '', 2106 'quantity': qty 2107 }] 2108 } 2109 } 2110 }); 2111 // GA4 2112 dataLayer.push({ 2113 'event': 'add_to_cart', 2114 'ecommerce': { 2115 'items': [{ 2116 'item_name': 'ä¸å¸å§åå°ç« ', 2117 'item_id': '580', 2118 'price': '150', 2119 'item_category': '', 2120 'quantity': qty 2121 }] 2122 } 2123 }); 2124 2125 gtag('event', 'add_to_cart', { 2126 'value': (150 * qty), 2127 'items': [{ 2128 'id': '580', 2129 'item_id': '580', 2130 'item_name': 'ä¸å¸å§åå°ç« ', 2131 'item_category': '', 2132 'price': 150, 2133 'quantity': qty, 2134 'google_business_vertical': 'retail' 2135 }] 2136 }); 2137 2138 2139 } 2140 2141 // IMPORTANT: global_quuid MUST be (re)generated by the caller BEFORE invoking this for 2142 // "AddToCart". The CAPI beacon echoed inside (AddToCart.tpl) reads global_quuid from JS 2143 // scope for its quuid; the FB Pixel that fires after the caller uses the same global_quuid 2144 // as eventID. Regenerating global_quuid between this call and the Pixel breaks Meta dedup. 2145 function gaTrackMultiPixelsAddToCart(EventType) { 2146 2147 if (typeof(EventType) === 'undefined') EventType = ''; 2148 2149 2150 var qty = 1; 2151 if ($("select[name='quantity']").length) { 2152 qty = $("select[name='quantity'] option:selected").val(); 2153 } else { 2154 qty = $("input[name='quantity']").val(); 2155 } 2156 2157 gecommProductToCart.product_id = 580; 2158 gecommProductToCart.price = 150; 2159 gecommProductToCart.quantity = qty; 2160 gecommProductToCart.product_name = 'ä¸å¸å§åå°ç« '; 2161 gecommProductToCart.image_url = 'https://image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2026/09/18/351af11b73f54fd1df81dd934402cb1a.jpg'; 2162 gecommProductToCart.product_url = "https://www.kpstamp.com.tw/product/product&product_id=580"; 2163 gecommProductToCart.sku = ""; 2164 2165 if (EventType == "AddToCart") { 2166 } 2167 2168 } 2169 2170 function checked_option(option_id) { 2171 $("label.checkbox #option-value-" + option_id).prop("checked", true); 2172 $("label.checkbox #option-value-" + option_id).closest("label.checkbox").addClass("opton-selected"); 2173 if (parseInt($("#add-quantity-" + option_id).val()) <= 0) { 2174 $("#add-quantity-" + option_id).val(1); 2175 } 2176 } 2177 2178 function loadproddata(v1) { 2179 2180 if (is.not.desktop()) { 2181 $('.button-cart').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown"); 2182 $('.button-quick-checkout').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown"); 2183 } 2184 2185 $('#prod_data').html("<br/><center><i class='icon-spinner icon-spin icon-large'></i></center>"); 2186 2187 $.ajax({ 2188 url: 'index.php?route=product/product_info&product_id=' + v1, 2189 dataType: 'html', 2190 beforeSend: function() {}, 2191 success: function(html) { 2192 $('#prod_data').html(html); 2193 }, 2194 error: function(xhr, ajaxOptions, thrownError) { 2195 console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 2196 } 2197 }); 2198 } 2199 2200 function autosize(ImgD, h, w) { 2201 var image = new Image(); 2202 image.src = ImgD.src; 2203 if (image.width < w && image.height < h) { 2204 ImgD.width = image.width; 2205 ImgD.height = image.height; 2206 } else { 2207 if (w / h <= image.width / image.height) { 2208 ImgD.width = w; 2209 ImgD.height = w * (image.height / image.width); 2210 } else {
2211 ImgD.width = h * (image.width / image.height); 2212 ImgD.height = h; 2213 } 2214 } 2215 2216 } 2217 2218 function buttonQuickCheckout() { 2219 if ($("select[name='quantity']").length) { 2220 check_qty = $("select[name='quantity'] option:selected").val(); 2221 } else { 2222 check_qty = $("input[name='quantity']").val(); 2223 } 2224 2225 if (check_qty == 0) { 2226 $(".alert-danger").remove(); 2227 $('#product_id').after('<div class="alert alert-danger" role="alert">å忏éè¦å¤§æ¼0ï¼</div>'); 2228 return false; 2229 } 2230 2231 if ($(".div_group[data-required]").length) { 2232 $(".alert-error").remove(); 2233 2234 var r = 0; 2235 var v_qty; 2236 $(".div_group[data-required]").each(function(index) { 2237 var required = $(this).data("required") || 0; 2238 v_qty = 0; 2239 $(this).find(".free_present_qty").each(function() { 2240 2241 v_qty = v_qty + parseInt($(this).val()); 2242 }); 2243 2244 if (required == 1 && v_qty == 0) r++; 2245 }); 2246 2247 if (r > 0) { 2248 $('#free_present_list').before('<div class="alert alert-error" style="margin-bottom:0px;margin-top:30px;"> * å¿ é¸çè´åé ç®è«é¸æï¼</div>'); 2249 2250 $('html, body').animate({ 2251 scrollTop: ($('#free_present_list').offset().top - 150) 2252 }, 1000); 2253 iziToast.show({ 2254 timeout: 3000, 2255 color: '#eb4359', 2256 messageColor: '#FFF', 2257 message: "* å¿ é¸çè´åé ç®è«é¸æ", 2258 position: 'center', 2259 progressBar: false, 2260 progressBarEasing: 'ease', 2261 }); 2262 2263 return false; 2264 } 2265 if ($(".warning").text().length > 0) { 2266 return false; 2267 } 2268 2269 } 2270 if ($("#options .control-group[data-max-qty]").length) { 2271 var r = true; 2272 $("#options .control-group[data-max-qty]").each(function(index) { 2273 var option_ckb_id = $(this).data("option-id") || 0; 2274 if (option_ckb_id) { 2275 r = checkCheckboxOptionQtyLimition(option_ckb_id); 2276 if (r == false) return false; 2277 } 2278 }); 2279 if (r == false) return false; 2280 } 2281 $('.button-quick-checkout').attr("disabled", "disabled"); 2282 $('.icon-spinner').removeClass('hidden'); 2283 $("input[name='product_id']").attr("value", 580); 2284 2285 var add_cart_url = 'index.php?route=checkout/cart/add'; 2286 2287 2288 $.ajax({ 2289 url: add_cart_url, 2290 type: 'post', 2291 data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea,.cart input[name=\'promption_id\']'), 2292 dataType: 'json', 2293 success: function(json) { 2294 $(".error").remove(); 2295 $(".alert-danger").remove(); 2296 $('.icon-spinner').addClass('hidden'); 2297 $('.button-quick-checkout').removeAttr("disabled", "disabled"); 2298 var error_option_msg = 0; 2299 2300 if (json['error']) { 2301 2302 $(".error").remove(); 2303 2304 if (json['error']['option']) { 2305 $(".alert-error").remove(); 2306 var error_option_msg = 0; 2307 for (i in json['error']['option']) { 2308 2309 error_option_msg = json['error']['option'][i]; 2310 2311 if (is.not.desktop()) { 2312 2313 $('#option-' + i).after('<div class="alert alert-error">' + json['error']['option'][i] + '</div>'); 2314 2315 } else { 2316 2317 $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '<br/></span>'); 2318 } 2319 } 2320 if (error_option_msg) { 2321 iziToast.show({ 2322 timeout: 3000, 2323 color: '#eb4359', 2324 messageColor: '#FFF', 2325 message: error_option_msg, 2326 position: 'center', 2327 progressBar: false, 2328 progressBarEasing: 'ease', 2329 }); 2330 } 2331 } 2332 2333 if (json['error']['prod_stock']) { 2334 2335 if (is.not.desktop()) { 2336 2337 $(".alert-error").remove(); 2338 $('#product_id').after('<div class="alert alert-danger" role="alert">' + json['error']['prod_stock'] + '</div>'); 2339 iziToast.show({ 2340 timeout: 3000, 2341 color: '#eb4359', 2342 messageColor: '#FFF', 2343 message: json['error']['prod_stock'], 2344 position: 'center', 2345 progressBar: false, 2346 progressBarEasing: 'ease', 2347 }); 2348 2349 } else { 2350 2351 $(".alert-danger").remove(); 2352 $('#product_id').after('<div class="alert alert-danger" role="alert">' + json['error']['prod_stock'] + '</div>'); 2353 2354 } 2355 2356 } 2357 2358 if (json['error']['buy_together']) { 2359 for (j in json['error']['buy_together']) { 2360 $('#error_buy_togther').after('<span class="error bg-danger">' + json['error']['buy_together'][j] + '</span>'); 2361 } 2362 } 2363 2364 } 2365 2366 if (json['success']) { 2367 // fb-capi: regenerate ONE shared event id per AddToCart BEFORE any tracker fires, 2368 // so Pixel(eventID) and CAPI(quuid) match and Meta can dedup the pair. 2369 global_quuid = QUUID(); 2370 try { 2371 gaTrackMultiPixelsAddToCart("AddToCart"); 2372 } catch (e) {} 2373 try { 2374 gaTrackProductAddToCart(); 2375 } catch (e) {} 2376 2377 var qty = 1; 2378 if ($("select[name='quantity']").length) { 2379 qty = $("select[name='quantity'] option:selected").val(); 2380 } else { 2381 qty = $("input[name='quantity']").val(); 2382 } 2383 2384 2385 var product_price = qty * 150; 2386 2387 2388 2389 setTimeout(function() { 2390 window.location.href = "https://www.kpstamp.com.tw/cart"; 2391 }, 1000); 2392 } 2393 2394 if (is.not.desktop()) { 2395 if (json['error']) { 2396 2397 $('html, body').animate({ 2398 scrollTop: $('#options').offset().top 2399 }, 'slow'); 2400 2401 } 2402 } 2403 2404 2405 if (json?.error?.prod_stock || error_option_msg != 0) { 2406 2407 if (hasStockError(json.error.prod_stock) || hasStockError(error_option_msg)) { 2408 setTimeout(() => { 2409 showStockAlertBtn(1); 2410 }, 200); 2411 } 2412 } 2413 2414 } 2415 }); 2416 return false;
2417 2418 } 2419 2420 function FB_AddToWishlist() { 2421 try { 2422 gaTrackMultiPixelsAddToCart("AddToWishlist"); 2423 } catch (e) {} 2424 } 2425 2426 // button-cart 2427 function buttonAddToCart() { 2428 if ($("select[name='quantity']").length) { 2429 check_qty = $("select[name='quantity'] option:selected").val(); 2430 } else { 2431 check_qty = $("input[name='quantity']").val(); 2432 } 2433 2434 if (check_qty == 0) { 2435 $(".alert-danger").remove(); 2436 $('#product_id').after('<div class="alert alert-danger" role="alert">å忏éè¦å¤§æ¼0ï¼</div>'); 2437 return false; 2438 } 2439 2440 if ($(".div_group[data-required]").length) { 2441 2442 $(".alert-error").remove(); 2443 2444 var r = 0; 2445 var v_qty; 2446 $(".div_group[data-required]").each(function(index) { 2447 var required = $(this).data("required") || 0; 2448 v_qty = 0; 2449 $(this).find(".free_present_qty").each(function() { 2450 2451 v_qty = v_qty + parseInt($(this).val()); 2452 }); 2453 2454 if (required == 1 && v_qty == 0) r++; 2455 }); 2456 2457 if (r > 0) { 2458 $('#free_present_list').before('<div class="alert alert-error" style="margin-bottom:0px;margin-top:30px;"> * å¿ é¸çè´åé ç®è«é¸æï¼</div>'); 2459 2460 $('html, body').animate({ 2461 scrollTop: ($('#free_present_list').offset().top - 150) 2462 }, 1000); 2463 2464 iziToast.show({ 2465 timeout: 3000, 2466 color: '#eb4359', 2467 messageColor: '#FFF', 2468 message: "* å¿ é¸çè´åé ç®è«é¸æ", 2469 position: 'center', 2470 progressBar: false, 2471 progressBarEasing: 'ease', 2472 }); 2473 2474 return false; 2475 } 2476 2477 if ($(".warning").text().length > 0) { 2478 return false; 2479 } 2480 } 2481 2482 if ($("#options .control-group[data-max-qty]").length) { 2483 var r = true; 2484 $("#options .control-group[data-max-qty]").each(function(index) { 2485 var option_ckb_id = $(this).data("option-id") || 0; 2486 if (option_ckb_id) { 2487 r = checkCheckboxOptionQtyLimition(option_ckb_id); 2488 if (r == false) return false; 2489 } 2490 }); 2491 if (r == false) return false; 2492 } 2493 2494 $('.button-cart').attr("disabled", "disabled"); 2495 $('.icon-spinner').removeClass('hidden'); 2496 $("input[name='product_id']").attr("value", 580); 2497 $(".alert-danger").remove(); 2498 2499 var add_cart_url = 'index.php?route=checkout/cart/add'; 2500 2501 2502 $.ajax({ 2503 url: add_cart_url, 2504 type: 'post', 2505 data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea,.cart input[name=\'promption_id\']'), 2506 dataType: 'json', 2507 success: function(json) { 2508 2509 $('.success, .warning, .attention, information, .error').remove(); 2510 $('.icon-spinner').addClass('hidden'); 2511 2512 if (json['error']) { 2513 2514 $(".error").remove(); 2515 2516 if (json['error']['option']) { 2517 $(".alert-error").remove(); 2518 var error_option_msg = 0; 2519 for (i in json['error']['option']) { 2520 2521 error_option_msg = json['error']['option'][i]; 2522 2523 if (is.not.desktop()) { 2524 2525 $('#option-' + i).after('<div class="alert alert-error">' + json['error']['option'][i] + '</div>'); 2526 2527 } else { 2528 2529 $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '<br/></span>'); 2530 2531 } 2532 } 2533 if (error_option_msg) { 2534 iziToast.show({ 2535 timeout: 3000, 2536 color: '#eb4359', 2537 messageColor: '#FFF', 2538 message: error_option_msg, 2539 position: 'center', 2540 progressBar: false, 2541 progressBarEasing: 'ease', 2542 }); 2543 } 2544 } 2545 2546 if (json['error']['prod_stock']) { 2547 2548 if (is.not.desktop()) { 2549 2550 $(".alert-error").remove(); 2551 $('#product_id').after('<div class="alert alert-danger" role="alert">' + json['error']['prod_stock'] + '</div>'); 2552 iziToast.show({ 2553 timeout: 3000, 2554 color: '#eb4359', 2555 messageColor: '#FFF', 2556 message: json['error']['prod_stock'], 2557 position: 'center', 2558 progressBar: false, 2559 progressBarEasing: 'ease', 2560 }); 2561 2562 } else { 2563 2564 $(".alert-danger").remove(); 2565 $('#product_id').after('<div class="alert alert-danger" role="alert">' + json['error']['prod_stock'] + '</div>'); 2566 2567 } 2568 2569 } 2570 2571 if (json['error']['buy_together']) { 2572 for (j in json['error']['buy_together']) { 2573 $('#error_buy_togther').after('<span class="error bg-danger">' + json['error']['buy_together'][j] + '</span>'); 2574 } 2575 } 2576 2577 $('.button-cart').removeAttr("disabled", "disabled"); 2578 if (json?.error?.prod_stock || error_option_msg != 0) { 2579 if (hasStockError(json.error.prod_stock) || hasStockError(error_option_msg)) { 2580 setTimeout(() => { 2581 showStockAlertBtn(1); 2582 }, 200); 2583 } 2584 } 2585 } 2586 2587 if (is.not.desktop()) { 2588 if (json['error']) { 2589 2590 $('html, body').animate({ 2591 scrollTop: $('#options').offset().top 2592 }, 'slow'); 2593 2594 } 2595 } 2596 2597 if (json['success']) { 2598 2599 // fb-capi: regenerate ONE shared event id per AddToCart BEFORE any tracker fires, 2600 // so Pixel(eventID) and CAPI(quuid) match and Meta can dedup the pair. 2601 global_quuid = QUUID(); 2602 try { 2603 gaTrackMultiPixelsAddToCart("AddToCart"); 2604 } catch (e) {} 2605 try { 2606 gaTrackProductAddToCart(); 2607 } catch (e) {} 2608 2609 var qty = 1; 2610 if ($(".cart select[name='quantity']").length) { 2611 qty = $(".cart select[name='quantity'] option:selected").val(); 2612 } else { 2613 qty = $(".cart input[name='quantity']").val(); 2614 } 2615 2616 2617 var product_price = qty * 150; 2618 2619 2620 2621 $('#notification').html('<div class="alert alert-success" style="display: none;">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">×</button></div>'); 2622 2623 $('.alert').fadeIn('slow'); 2624 2625 $('#cart-total').html(json['total']); 2626 2627 2628 var scroll_time = 700; 2629 var ToScrollTop = 0; 2630 if (is.not.desktop()) { 2631 scroll_time = 300; 2632 ToScrollTop = document.documentElement.scrollTop; 2633 } 2634 2635 $('html, body').animate({ 2636 ToScrollTop: 0 2637 }, scroll_time, function() { 2638 2639 2640 var attr = $('.button-cart').attr('disabled'); 2641 if (typeof attr !== typeof undefined && attr !== false) { 2642 2643 var cart = $('#cart'); 2644 var imgtodrag = $('#zoom1'); 2645 var cart_top = 50; 2646 2647 var cart_right = $(window).width() / 1.5; 2648 2649 if (is.not.desktop()) { 2650 cart_right = $("#mobile-navbar #shopping-cart-list").offset().left; 2651 } else { 2652 cart_right = $("#header #cart").offset().left; 2653 } 2654 2655 if (cart_right < 100) cart_right = $(window).width() / 1.5; 2656 2657 if (is.not.desktop()) { 2658 cart = $('#mobile-navbar .icon-shopping-cart'); 2659 cart_top = 0; 2660 $('#cart-total-items').html("( " + json['total'] + " )"); 2661 $(".button-quick-checkout-mobile").remove(); 2662 $("#button-cart").unbind("click"); 2663 $("#button-cart").find('.ok-add-to-cart').remove(); 2664 $("#button-cart").prepend('<span class="ok-add-to-cart animated fadeIn"><i class="fa fa-check" aria-hidden="true"></i> </span>'); 2665 $("#button-instant-checkout").removeClass('hidden'); 2666 2667 } 2668 2669 var imgclone = imgtodrag.clone() 2670 .offset({ 2671 top: imgtodrag.offset().top, 2672 left: imgtodrag.offset().left 2673 }) 2674 .css({ 2675 'opacity': '1.0', 2676 'position': 'absolute', 2677 'top': imgtodrag.offset().top, 2678 'left': imgtodrag.offset().left, 2679 'height': $('#zoom1').width(), 2680 'width': $('#zoom1').height(), 2681 'z-index': '99999999999', 2682 'minHeight': '50px' 2683 }) 2684 .appendTo($('body')) 2685 .animate({ 2686 'top': cart_top, 2687 'left': cart_right, 2688 'width': 36, 2689 'height': 20, 2690 'opacity': '0.01' 2691 }, 700, 'easeInOutCirc', function() { 2692 $(imgclone).remove(); 2693 imgclone.detach(); 2694 }); 2695 2696 if (is.not.desktop()) { 2697 openSideCart('580'); 2698 } 2699 2700 } 2701 2702 if (is.desktop()) { 2703 $("#cart > .heading a").trigger('mouseover'); 2704 setTimeout(function() { 2705 refreshMiniCartScrollBar(); 2706 }, 300); 2707 } 2708 2709 2710 $('.button-cart').removeAttr("disabled", "disabled"); 2711 2712 2713 2714 }); 2715 2716 } 2717 2718 2719 } 2720 }); 2721 return false;
2722 2723 } 2724 2725 function addReview() { 2726 $.ajax({ 2727 url: 'index.php?route=product/product/write&product_id=580', 2728 type: 'post', 2729 dataType: 'json', 2730 data: 'name=' + encodeURIComponent($('input[name=\'name\']').val()) + '&text=' + encodeURIComponent($('textarea[name=\'text\']').val()) + '&rating=' + encodeURIComponent($('input[name=\'rating\']:checked').val() ? $('input[name=\'rating\']:checked').val() : '') + '&captcha=' + encodeURIComponent($('input[name=\'captcha\']').val()) + '&cf-turnstile-response=' + encodeURIComponent(window.qdmProductReviewTurnstile ? window.qdmProductReviewTurnstile.getResponse() : ($('input[name=\'cf-turnstile-response\']').val() || '')), 2731 beforeSend: function() { 2732 $('.success, .warning').remove(); 2733 $('#button-review').attr('disabled', true); 2734 $('#review-title').after('<div class="attention"><img src="https://cdn.qdm.cloud/assets/images/loading.gif" alt="" /> è«ç¨ç</div>'); 2735 }, 2736 complete: function() { 2737 $('#button-review').attr('disabled', false); 2738 $('.attention').remove(); 2739 if (window.qdmProductReviewTurnstile) { 2740 window.qdmProductReviewTurnstile.reset(); 2741 } 2742 }, 2743 success: function(data) { 2744 if (data['error']) { 2745 $('#review-title').after('<div class="warning">' + data['error'] + '</div>'); 2746 } 2747 2748 if (data['success']) { 2749 $('#review-title').after('<div class="success">' + data['success'] + '</div>'); 2750 2751 $('input[name=\'name\']').val(''); 2752 $('textarea[name=\'text\']').val(''); 2753 $('input[name=\'rating\']:checked').attr('checked', ''); 2754 $('input[name=\'captcha\']').val(''); 2755 2756 $('#review').load('index.php?route=product/product/review&product_id=580'); 2757 2758 postbackTrack(); 2759 } 2760 } 2761 }); 2762 } 2763 2764 function postbackTrack() { 2765 } 2766 2767 function init_review() { 2768 2769 $('#review .pagination a').each(function(index) { 2770 var href = $(this).attr("href"); 2771 $(this).attr("href", "javascript:void(0);return false;"); 2772 $(this).attr("data-href", href); 2773 }); 2774 2775 $('#review .pagination a').click(function() { 2776 2777 var link = $(this).attr("data-href"); 2778 2779 $('<i id="review-spin-wait" class="fa fa-circle-o-notch fa-spin fa-fw"></i>').insertBefore($('#review')); 2780 2781 $('#review').fadeOut('slow'); 2782 2783 $('#review').load(link, function() { 2784 init_review(); 2785 $('#review-spin-wait').remove(); 2786 $('#review').fadeIn('slow'); 2787 }); 2788 2789 return false; 2790 2791 }); 2792 } 2793 2794 function isFacebookApp() { 2795 var ua = navigator.userAgent || navigator.vendor || window.opera; 2796 return (ua.indexOf("FBAN") > -1) || (ua.indexOf("FBAV") > -1); 2797 } 2798 2799 function numberWithCommas(x) { 2800 return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); 2801 } 2802 2803 function update_saleprice_based_select_options(optid) { 2804 var ori_prices = $("#price-price-block .product-sell-price").data("content"); 2805 var currency_symbol_left = "$"; 2806 var currency_symbol_right = ""; 2807 var currency_value = 1; 2808 var currency_decimal_place = 0; 2809 function formatPrice(rawBase) { 2810 var v = (parseFloat(rawBase) || 0) * currency_value; 2811 return currency_symbol_left + numberWithCommas(v.toFixed(currency_decimal_place)) + currency_symbol_right; 2812 } 2813 var total_saleprices = ori_prices; 2814 var saleprices_flag = 0; 2815 $("#options .control-group").find(".controls").each(function(index) { 2816 var selected = $(this).find("select option[value]:selected"); 2817 if (selected && selected != undefined) { 2818 var prefix = $(selected).data("prefix"); 2819 var price = $(selected).data("price"); 2820 if (prefix && prefix != undefined) { 2821 if (price && price != undefined) { 2822 switch (prefix) { 2823 case "=": 2824 saleprices_flag = 1; 2825 total_saleprices = price; 2826 break; 2827 } 2828 } 2829 } 2830 } 2831 }); 2832 $("#options .control-group").find(".controls").each(function(index) { 2833 var selected = $(this).find("select option[value]:selected"); 2834 if (selected && selected != undefined) { 2835 var prefix = $(selected).data("prefix"); 2836 var price = $(selected).data("price"); 2837 if (prefix && prefix != undefined) { 2838 if (price && price != undefined && !isNaN(parseFloat(price))) { 2839 switch (prefix) { 2840 case "+": 2841 saleprices_flag = 1; 2842 total_saleprices = (parseFloat(total_saleprices) || 0) + parseFloat(price); 2843 break; 2844 case "-": 2845 saleprices_flag = 1; 2846 total_saleprices = (parseFloat(total_saleprices) || 0) - parseFloat(price); 2847 break; 2848 } 2849 } 2850 } 2851 } 2852 }); 2853 if (saleprices_flag) { 2854 if (total_saleprices < 0) { 2855 total_saleprices = 0; 2856 } 2857 $("#price-price-block .price-old").hide(); 2858 $("#price-price-block .product-sell-price").text(formatPrice(total_saleprices)); 2859 } else { 2860 var expected_text = formatPrice(ori_prices); 2861 if ($("#price-price-block .product-sell-price").text() !== expected_text) { 2862 $("#price-price-block .price-old").show(); 2863 $("#price-price-block .product-sell-price").text(expected_text); 2864 } 2865 } 2866 $("#price-price-block").hide(); 2867 $("#price-price-block").fadeIn(2000); 2868 2869 2870 2871 } 2872 2873 function changeRadioProductVariation(product_option_value_id, option_id) { 2874 document.getElementById('option-value-' + product_option_value_id).checked = true; 2875 $("#option-" + option_id + ".control-group label.radio").removeClass("opton-selected"); 2876 $("#option-" + option_id + ".control-group label.radio #option-value-" + product_option_value_id).closest("label.radio").addClass("opton-selected"); 2877 return false;
2878 } 2879 2880 function init_inline() { 2881 loadCSS("https://cdnjs.cloudflare.com/ajax/libs/hint.css/1.2.1/hint.min.css"); 2882 if (typeof stop_custom_variation_style === 'undefined') { 2883 loadCSS("https://cdn.qdm.cloud/assets/css/product_variation_option_custom.css?v=220914"); 2884 } 2885 getScript("https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.nice-number.min.js", function() { 2886 $("#options .multicheck-options").niceNumber({ 2887 'autoSize': false, 2888 onDecrement: function($currentInput, amount, settings) { 2889 if (amount < 1) { 2890 $currentInput.val(1); 2891 } 2892 var opt_val_ta = $currentInput.closest("label.checkbox").attr("for"); 2893 $("#" + opt_val_ta).prop("checked", true); 2894 $("#" + opt_val_ta).closest("label.checkbox").addClass("opton-selected"); 2895 var data_option_id = $("#" + opt_val_ta).closest("[data-option-id]").data("option-id"); 2896 checkCheckboxOptionQtyLimition(data_option_id); 2897 }, 2898 onIncrement: function($currentInput, amount, settings) { 2899 var opt_val_ta = $currentInput.closest("label.checkbox").attr("for"); 2900 $("#" + opt_val_ta).prop("checked", true); 2901 $("#" + opt_val_ta).closest("label.checkbox").addClass("opton-selected"); 2902 var data_option_id = $("#" + opt_val_ta).closest("[data-option-id]").data("option-id"); 2903 checkCheckboxOptionQtyLimition(data_option_id); 2904 } 2905 }); 2906 $("#options label.checkbox").find("input[type='checkbox']").change(function() { 2907 var checked_state = $(this).is(':checked'); 2908 if (checked_state) { 2909 $(this).closest("label.checkbox").addClass("opton-selected"); 2910 $(this).closest("label.checkbox").find(".multicheck-options").val(1); 2911 } else { 2912 $(this).closest("label.checkbox").removeClass("opton-selected"); 2913 $(this).closest("label.checkbox").find(".multicheck-options").val(0); 2914 } 2915 }); 2916 $("#options").fadeIn("slow"); 2917 }); 2918 2919 //20220113 Fix è³¼ç©åçé¸é é»é¸åç忥é¸åé¸é 2920 if ($(".option-image").length) { 2921 $(".option-image").find("a").click(function() { 2922 $(this).parents(".option-image").find("input[id^='option-value-']").attr('checked', 'checked'); 2923 }); 2924 } 2925 //20210510 Add é¸é é£åååå å®é¸åæé£åå 2926 $(".changeImage label.radio").click(function() { 2927 if ($(".changeImage input[type='radio']:checked") || $(".changeImage select option:selected")) { 2928 var optionImage = []; 2929 $(".changeImage").each(function(i) { 2930 if ($(this).find("input[type='radio']:checked").length && $(this).find("input[type='radio']:checked").val()) { 2931 optionImage[i] = []; 2932 optionImage[i][0] = $(this).attr("id").replace("option-", ""); 2933 optionImage[i][1] = $(this).find("input[type='radio']:checked").val(); 2934 } 2935 if ($(this).find("select option:selected").length && $(this).find("select option:selected").val()) { 2936 optionImage[i] = []; 2937 optionImage[i][0] = $(this).attr("id").replace("option-", ""); 2938 optionImage[i][1] = $(this).find("select option:selected").val(); 2939 } 2940 2941 }); 2942 $.ajax({ 2943 url: 'index.php?route=product/product_options/povToPoi', 2944 type: 'POST', 2945 dataType: 'html', 2946 data: { 2947 pid: $("#product_id").val(), 2948 optionImage: optionImage 2949 }, 2950 beforeSend: function() {}, 2951 success: function(json) { 2952 $("#image-additional li a").each(function() { 2953 if ($(this).hasClass("zoom-active")) { 2954 $(this).removeClass('zoom-active'); 2955 } 2956 }); 2957 if (json) { 2958 $("#image-additional li").find("img[src='" + json + "']").parents("a").addClass("zoom-active").trigger("mouseenter"); 2959 // 220608 Fix ååé£ååææ©ç大å䏿è®ååé¡ 2960 if (is.not.desktop()) { 2961 var zoomImg = $("#image-additional li").find("img[src='" + json + "']").parents("a").attr("href"); 2962 $('#zoom1').attr("src", zoomImg); 2963 $('#zoom1').data("hd-image", zoomImg); 2964 $('#zoom1').data("zoom-image", zoomImg); 2965 // åçé¸é 2966 $('html,body').animate({ 2967 scrollTop: $("#options").offset().top - 70 2968 }, "show"); 2969 } 2970 } else { 2971 $("#image-additional li a").eq(0).addClass("zoom-active").trigger("mouseenter"); 2972 // 220608 Fix ååé£ååææ©ç大å䏿è®ååé¡ 2973 if (is.not.desktop()) { 2974 var zoomImg = $("#image-additional li a").eq(0).attr("href"); 2975 $('#zoom1').attr("src", zoomImg); 2976 $('#zoom1').data("hd-image", zoomImg); 2977 $('#zoom1').data("zoom-image", zoomImg); 2978 // åçé¸é 2979 $('html,body').animate({ 2980 scrollTop: $("#options").offset().top - 70 2981 }, "show"); 2982 } 2983 } 2984 }, 2985 error: function(xhr, ajaxOptions, thrownError) { 2986 //alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 2987 } 2988 }); 2989 } 2990 }); 2991 //20210510 Add é¸é é£åååå 䏿é¸å®åæé£åå 2992 $(".changeImage select").change(function() { 2993 if ($(".changeImage input[type='radio']:checked") || $(".changeImage select option:selected")) { 2994 var optionImage = []; 2995 $(".changeImage").each(function(i) { 2996 if ($(this).find("input[type='radio']:checked").length && $(this).find("input[type='radio']:checked").val()) { 2997 optionImage[i] = []; 2998 optionImage[i][0] = $(this).attr("id").replace("option-", ""); 2999 optionImage[i][1] = $(this).find("input[type='radio']:checked").val(); 3000 } 3001 if ($(this).find("select option:selected").length && $(this).find("select option:selected").val()) { 3002 optionImage[i] = []; 3003 optionImage[i][0] = $(this).attr("id").replace("option-", ""); 3004 optionImage[i][1] = $(this).find("select option:selected").val(); 3005 } 3006 3007 }); 3008 $.ajax({ 3009 url: 'index.php?route=product/product_options/povToPoi', 3010 type: 'POST', 3011 dataType: 'html', 3012 data: { 3013 pid: $("#product_id").val(), 3014 optionImage: optionImage 3015 }, 3016 beforeSend: function() {}, 3017 success: function(json) { 3018 $("#image-additional li a").each(function() { 3019 if ($(this).hasClass("zoom-active")) { 3020 $(this).removeClass('zoom-active'); 3021 } 3022 }); 3023 if (json) { 3024 $("#image-additional li").find("img[src='" + json + "']").parents("a").addClass("zoom-active").trigger("mouseenter"); 3025 // 220608 Fix ååé£ååææ©ç大å䏿è®ååé¡ 3026 if (is.not.desktop()) { 3027 var zoomImg = $("#image-additional li").find("img[src='" + json + "']").parents("a").attr("href"); 3028 $('#zoom1').attr("src", zoomImg); 3029 $('#zoom1').data("hd-image", zoomImg); 3030 $('#zoom1').data("zoom-image", zoomImg); 3031 // åçé¸é 3032 $('html,body').animate({ 3033 scrollTop: $("#options").offset().top - 70 3034 }, "show"); 3035 } 3036 } else { 3037 $("#image-additional li a").eq(0).addClass("zoom-active").trigger("mouseenter"); 3038 // 220608 Fix ååé£ååææ©ç大å䏿è®ååé¡ 3039 if (is.not.desktop()) { 3040 var zoomImg = $("#image-additional li a").eq(0).attr("href"); 3041 $('#zoom1').attr("src", zoomImg); 3042 $('#zoom1').data("hd-image", zoomImg); 3043 $('#zoom1').data("zoom-image", zoomImg); 3044 // åçé¸é 3045 $('html,body').animate({ 3046 scrollTop: $("#options").offset().top - 70 3047 }, "show"); 3048 } 3049 } 3050 }, 3051 error: function(xhr, ajaxOptions, thrownError) { 3052 //alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 3053 } 3054 }); 3055 } 3056 }); 3057 3058 setTimeout(function() { 3059 if (is.not.desktop()) { 3060 $('#zoom1').attr("src", $('#zoom1').data("hd-image")); 3061 } 3062 }, 1500); 3063 3064 getScript("https://static.addtoany.com/menu/page.js", function() {}); 3065
3066 $('#myModal').on('show.bs.modal', function(e) { 3067 if (is.not.desktop()) { 3068 $('.button-cart').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown"); 3069 $('.button-quick-checkout').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown"); 3070 } 3071 }); 3072 3073 $("#myModal").on("hidden.bs.modal", function(e) { 3074 if (is.not.desktop()) { 3075 $('.button-cart').removeClass("fadeOutDown").addClass("animated fadeInUp"); 3076 $('.button-quick-checkout').removeClass("fadeOutDown").addClass("animated fadeInUp"); 3077 } 3078 }); 3079 3080 3081 $(".ck_buy_tgr").prop("checked", false); 3082 3083 3084 if (is.not.desktop()) { 3085 $("#maincontent").removeClass("span9").addClass("span12"); 3086 $("#main-image").attr("style", "padding:0px;overflow:hidden;min-height:initial;"); 3087 if (!isFacebookApp() && !disabledScroll) { 3088 setTimeout(function() { 3089 $('.button-cart').addClass("animated fadeOutDown"); 3090 $('.button-quick-checkout-mobile').addClass("animated fadeOutDown"); 3091 }, 1500); 3092 } 3093 $('#zoom1').attr("src", $('#zoom1').data("hd-image")); 3094 } 3095 3096 3097 if (is.desktop()) { 3098 3099 $("#zoom1").imagesLoaded(function() { 3100 3101 $("#main-defer-image").remove(); 3102 $("#main-image").removeClass("hidden"); 3103 3104 $("#zoom1").elevateZoom({ 3105 easing: false, 3106 gallery: 'image-additional', 3107 cursor: 'pointer', 3108 galleryActiveClass: "zoom-active", 3109 zoomWindowFadeIn: 0, 3110 zoomWindowFadeOut: 0, 3111 zoomWindowWidth: 0, 3112 zoomWindowHeight: 0, 3113 lensSize: 0, 3114 borderSize: 0, 3115 lensFadeIn: 0, 3116 lensFadeOut: 0, 3117 tint: false, 3118 tintColour: '#fff', 3119 tintOpacity: 0, 3120 scrollZoom: false, 3121 imageCrossfade: false, 3122 loadingIcon: "", 3123 responsive: true 3124 }); 3125 3126 var ez = $('#zoom1').data('elevateZoom'); 3127 ez.refresh(); 3128 3129 $(".zoomContainer").remove(); 3130 3131 $("#image-additional-container").show(); 3132 3133 syncThumbsWidth(); 3134 }); 3135 } 3136 3137 3138 $("#image-additional a").hover(function() { 3139 $(".zoomContainer").remove(); 3140 var image_pop_url = $(this).data("zoom-image"); 3141 var image_base_url = $(this).data("image"); 3142 $("#main-image .fancybox-product").attr("href", image_pop_url); 3143 if (image_base_url) { 3144 $("#zoom1").attr("src", image_base_url); 3145 } 3146 }); 3147 3148 3149 3150 // Load options_list_window 3151 $('input[name^="add_price"]').bind('click', function() { 3152 3153 $('#cart_options_list').html("<br/><center><i class='icon-spinner icon-spin icon-large'></i></center>"); 3154 3155 v1 = $(this).val(); 3156 v2 = 1; 3157 $.ajax({ 3158 url: 'index.php?route=product/product_options&key=' + v1 + '&quantity=' + v2, 3159 dataType: 'html', 3160 beforeSend: function() {}, 3161 success: function(html) { 3162 3163 $('#cart_options_list').html(html); 3164 3165 }, 3166 error: function(xhr, ajaxOptions, thrownError) { 3167 //alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 3168 } 3169 }); 3170 3171 setTimeout($.unblockUI, 1000); 3172 }); 3173 3174 3175 $('.close').bind('click', function() { 3176 3177 prod_id = $("#prod_id").val(); 3178 bytr_id = $("#buy_together_id").val(); 3179 3180 $('#add_price_' + prod_id + '-' + bytr_id).attr("checked", false); 3181 $('#cart_options_list').html(""); 3182 }); 3183 3184 //å å ¥ï¼æé¸é ï¼ 3185 $('#button-change-option').bind('click', function() { 3186 3187 let hasError = false; 3188 $('.options').find('span.required').each(function() { 3189 let parentDiv = $(this).closest('div[id^="option-"]'); 3190 let optionId = parentDiv.attr('id').split('-')[1]; 3191 let input = parentDiv.find('select, input[type="radio"], input[type="checkbox"], input[type="text"], textarea'); 3192 3193 let valid = false; 3194 3195 if (input.length) { 3196 if (input.is('select')) { 3197 valid = input.val() !== ""; 3198 } else if (input.is(':radio') || input.is(':checkbox')) { 3199 valid = input.is(':checked'); 3200 } else { 3201 valid = input.val().trim() !== ""; 3202 } 3203 } 3204 3205 if (!valid) { 3206 parentDiv.after('<span class="error">æ¤çºå¿ å¡«é¸é ï¼è«é¸ææè¼¸å ¥</span>'); 3207 hasError = true; 3208 } 3209 }); 3210 3211 if (hasError) return false; 3212 3213 if ($(".options .form-group[data-max-qty]").length) { 3214 var r = true; 3215 $(".options .form-group[data-max-qty]").each(function(index) { 3216 var option_ckb_id = $(this).data("option-id") || 0; 3217 if (option_ckb_id) { 3218 r = checkCheckboxOptionQtyLimition(option_ckb_id); 3219 if (r == false) return false;
3220 } 3221 }); 3222 if (r == false) return false; 3223 } 3224 3225 prod_id = $("#prod_id").val(); 3226 bytr_id = $("#buy_together_id").val(); 3227 3228 $.ajax({ 3229 url: 'index.php?route=product/product_options/validate', 3230 type: 'post', 3231 data: $('#cart_options_list .options input[type=\'text\'], #cart_options_list .options input[type=\'hidden\'], #cart_options_list .options input[type=\'radio\']:checked, #cart_options_list .options input[type=\'checkbox\']:checked, #cart_options_list .options select, #cart_options_list .options textarea, #cart_options_list .quantity_div input[type=\'text\']'), 3232 dataType: 'json', 3233 success: function(json) { 3234 3235 $(".error").remove(); 3236 $(".alert").remove(); 3237 3238 if (json['error']) { 3239 3240 if (json['error']['option']) { 3241 for (i in json['error']['option']) { 3242 3243 $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '<br/></span>'); 3244 } 3245 } 3246 3247 } else { 3248 3249 $('#lab_addprice_' + prod_id + '-' + bytr_id + ' .add-additional-purchase-option').html("<input type=hidden name=add_price_options_" + prod_id + "-" + bytr_id + " value='" + json['options'] + "' ><span class='label'>" + json['options_name'] + "</span>"); 3250 3251 $('#cart_options_list').html(""); 3252 $('#myModal').hide(); 3253 $('.modal-backdrop').remove(); 3254 $('#add_price_' + prod_id + '-' + bytr_id).attr("checked", true); 3255 3256 if (is.not.desktop()) { 3257 $('.button-cart').removeClass("fadeOutDown").addClass("animated fadeInUp"); 3258 $('.button-quick-checkout').removeClass("fadeOutDown").addClass("animated fadeInUp"); 3259 } 3260 3261 } 3262 3263 } 3264 }); 3265 }); 3266 3267 var oldURL = document.referrer; 3268 3269 $.fancybox.defaults.hash = false; 3270 3271 $("[data-fancybox='images']").fancybox({ 3272 afterLoad: function(instance, slide) { 3273 if ($(".fancybox-container").length > 1) { 3274 $(".fancybox-container").not(':first').remove(); 3275 } 3276 }, 3277 afterClose: function() { 3278 window.onhashchange = function(e) { 3279 if (window.location.hash.indexOf("#gallery") != -1) { 3280 e.preventDefault(); 3281 $.fancybox.close(); 3282 if (is.not.empty(oldURL)) { 3283 window.onhashchange = null; 3284 window.location.href = oldURL; 3285 } 3286 return false; 3287 } 3288 } 3289 } 3290 }); 3291 3292 if (is.desktop()) { 3293 3294 $("#main-image .fancybox-product").click(function(e) { 3295 e.stopPropagation(); 3296 e.preventDefault(); 3297 var $links = $("[data-fancybox='gallery']"); 3298 var zoom_active_index = $("#image-additional li > a.zoom-active").parent().index(); 3299 $.fancybox.open($links, { 3300 hash: false 3301 }, zoom_active_index); 3302 if ($(".fancybox-container").length > 1) { 3303 $(".fancybox-container").not(':first').remove(); 3304 } 3305 return false; 3306 }); 3307 3308 $("#image-additional a").click(function(e) { 3309 e.stopPropagation(); 3310 e.preventDefault(); 3311 var $links = $("[data-fancybox='gallery']"); 3312 var zoom_active_index = $("#image-additional li > a.zoom-active").parent().index(); 3313 $.fancybox.open($links, { 3314 hash: false 3315 }, zoom_active_index); 3316 if ($(".fancybox-container").length > 1) { 3317 $(".fancybox-container").not(':first').remove(); 3318 } 3319 return false; 3320 }); 3321 3322 } else { 3323 3324 $("#main-image .fancybox-product").click(function(e) { 3325 e.stopPropagation(); 3326 e.preventDefault(); 3327 var $links = $("[data-fancybox='gallery']"); 3328 $.fancybox.open($links, { 3329 hash: false 3330 }, 0); 3331 if ($(".fancybox-container").length > 1) { 3332 $(".fancybox-container").not(':first').remove(); 3333 } 3334 return false; 3335 }); 3336 3337 $("[data-fancybox='gallery']").fancybox({ 3338 hash: false 3339 }); 3340 } 3341 3342 $("a.screenshot").hover(function(e) { 3343 this.t = this.title; 3344 this.title = ""; 3345 var c = (this.t != "") ? "<br/>" + this.t : ""; 3346 this.rel = this.rel.replace(" noopener noreferrer nofollow", ""); 3347 $("body").append("<p id='screenshot'><img src='" + this.rel + "' alt='url preview' />" + c + "</p>"); 3348 $("#screenshot") 3349 .css("top", (e.pageY - xOffset) + "px") 3350 .css("left", (e.pageX + yOffset) + "px") 3351 .fadeIn("fast"); 3352 }, function() { 3353 this.title = this.t; 3354 $("#screenshot").remove(); 3355 }); 3356
3357 $("a.screenshot").mousemove(function(e) { 3358 $("#screenshot") 3359 .css("top", (e.pageY - xOffset) + "px") 3360 .css("left", (e.pageX + yOffset) + "px"); 3361 }); 3362 3363 $('#review').load('index.php?route=product/product/review&product_id=580', function() { 3364 init_review(); 3365 }); 3366 3367 3368 $('.date').datepicker({ 3369 dateFormat: 'yy-mm-dd' 3370 }); 3371 $('.datetime').datetimepicker({ 3372 dateFormat: 'yy-mm-dd', 3373 timeFormat: 'HH:mm', 3374 controlType: 'select' 3375 }); 3376 $('.time').timepicker({ 3377 timeFormat: 'h:m' 3378 }); 3379 3380 $('[data-toggle="tooltip"]').tooltip(); 3381 3382 if ($('#countdown_dashboard').length) { 3383 setTimeout(function() { 3384 $('#countdown_dashboard').countdown('1970/01/01 08:00:00', function(event) { 3385 if (event.elapsed) { 3386 $(this).html(''); 3387 } else { 3388 $(this).html(event.strftime('<h1>éæåªæ </h1><span>%D 天 %H:%M:%S</span>')); 3389 } 3390 }); 3391 }, 2000); 3392 } 3393 3394 if (is.not.desktop()) { 3395 3396 $("#zoom1").imagesLoaded(function() { 3397 $("#main-defer-image").remove(); 3398 $("#main-image").removeClass("hidden"); 3399 $("#image-additional-container").show(); 3400 }); 3401 3402 $("#image-additional").find(".zoom-active").removeClass("zoom-active"); 3403 3404 var lastScroll = 0; 3405 var lastDirection = 0; 3406 var down = true; 3407 var delta = 0; 3408 $(window).on("scroll", function() { 3409 3410 if ($("#myModal").css('display') == 'block') { 3411 $('.button-cart').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown"); 3412 $('.button-quick-checkout').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown"); 3413 } 3414 3415 if (isFacebookApp() || disabledScroll) { 3416 $('.button-cart').removeClass("hidden animated fadeOutDown"); 3417 $('.button-quick-checkout-mobile').removeClass("hidden animated fadeOutDown"); 3418 return; 3419 } 3420 3421 var scroll = $(this).scrollTop(); 3422 down = scroll > lastScroll; 3423 delta = Math.abs(lastScroll - scroll); 3424 lastScroll = scroll; 3425 if ((down != lastDirection)) { 3426 if (down == true) { 3427 if (delta > 15) { 3428 $('.button-cart').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown"); 3429 $('.button-quick-checkout-mobile').removeClass("hidden animated fadeInUp").addClass("animated fadeOutDown"); 3430 } 3431 3432 } else { 3433 $('.button-cart').removeClass("hidden animated fadeOutDown").addClass("animated fadeInUp"); 3434 $('.button-quick-checkout-mobile').removeClass("hidden animated fadeOutDown").addClass("animated fadeInUp"); 3435 } 3436 3437 } 3438 lastDirection = down; 3439 3440 }); 3441 3442 if (isFacebookApp() || disabledScroll) { 3443 $(window).unbind("scroll"); 3444 $('#button-cart').attr("class", "button-cart button pull-left"); 3445 $('#button-quick-checkout').attr("class", "btn btn-default btn-block button-quick-checkout button-quick-checkout-mobile"); 3446 $('#button-cart').show(); 3447 $('#button-quick-checkout').show(); 3448 } 3449 } 3450 3451 3452 load_free_present(); 3453 3454 $("input[name='quantity']").bind('change', function() { 3455 3456 load_free_present(); 3457 3458 }); 3459 3460 $("select[name='quantity']").bind('change', function() { 3461 3462 load_free_present(); 3463 3464 }); 3465 3466 3467 enableDataSelectsClick(); 3468 } 3469 3470 function loadislogin() { 3471 3472 $("#login_n").hide(); 3473 } 3474 3475 function loadpromotionlist() { 3476 var html = ""; 3477 $.ajax({ 3478 url: "index.php?route=product/product/getLoggedInPromotionList&product_id=580", 3479 type: "post", 3480 dataType: "json", 3481 success: function(json) { 3482 if (json.length > 0) { 3483 html += '<hr/><h4>ä¿é·æ´»å</h4>'; 3484 html += '<ul>'; 3485 for (var i = 0; i < json.length; i++) { 3486 3487 html += ' <li class="promotion-forward-button button button-default"><a href="' + json[i]["promotion_url"] + '" style="text-decoration:none;"> ' + json[i]["name"] + ' <i class="icon-double-angle-right"></i></a></li> '; 3488 3489 } 3490 html += '</ul>'; 3491 3492 $("#promotion_list").html(html); 3493 } 3494 //console.log(json.length); 3495 }, 3496 3497 error: function() { 3498 console.log("error"); 3499 } 3500 }); 3501 } 3502 3503 //cloudmaker_stock 3504 function load_cloudmaker() { 3505 $.ajax({ 3506 url: 'index.php?route=cloudmaker/order/wareHouseOrdernew&product_sku=' + encodeURIComponent('0'), 3507 dataType: 'json', 3508 type: "post", 3509 success: function(json) { 3510 3511 if (json['error']) { 3512 console.log(json['error']); 3513 } else { 3514 var cjson = json["cred_response"]; 3515 3516 if (cjson.length > 0) { 3517 3518 var cloudmaker_value = ""; 3519 var cloudmaker_header = ""; 3520 var cloudmaker_body = ""; 3521 var i = 0; 3522 3523 cjson.forEach(function(data) { 3524 cloudmaker_body += "<tr>"; 3525 cloudmaker_body += " <td style='border:1px solid #ddd;padding:6px;text-align: center;'>" + data.size + "</td>"; 3526 3527 var stock = data.stock; 3528 3529 $.each(stock, function() { 3530 3531 $.each(this, function(name, value) { 3532 if (i == 0) { 3533 cloudmaker_header += " <td style='border:1px solid #ddd;padding:6px;text-align: center;'>" + name + "</td>"; 3534 } 3535 cloudmaker_body += " <td style='border:1px solid #ddd;padding:6px;text-align: center;'>" + value + "</td>"; 3536 }); 3537 3538 i++; 3539 }); 3540 3541 cloudmaker_body += "</tr>"; 3542 3543 }); 3544 3545 cloudmaker_value = "<table style='max-width:450px; width:100%;margin-bottom:6px;'>"; 3546 cloudmaker_value += "<tr style='font-weight: bold;'>"; 3547 cloudmaker_value += "<td style='border:1px solid #ddd;padding:6px;text-align: center;'>尺寸</td>"; 3548 cloudmaker_value += cloudmaker_header; 3549 /*cloudmaker_value += "<td style='border:1px solid #ddd;padding:6px;text-align: center;'>å°åå°è¥¿é</td>"; 3550 cloudmaker_value += "<td style='border:1px solid #ddd;padding:6px;text-align: center;'>æ±åæè¦</td>"; 3551 cloudmaker_value += "<td style='border:1px solid #ddd;padding:6px;text-align: center;'>å¤ç¾èª å</td>"; 3552 cloudmaker_value += "<td style='border:1px solid #ddd;padding:6px;text-align: center;'>ä¿¡ç¾©èª å</td>";*/ 3553 cloudmaker_value += "</tr>"; 3554 cloudmaker_value += cloudmaker_body; 3555 cloudmaker_value += "</table>"; 3556 cloudmaker_value += "<span> åº«åæ´æ°æéï¼2026-10-08 06:57:08 (éæ°æ´çç¶²é å¯å徿æ°åº«åè³è¨)</span><br/>"; 3557 //cloudmaker_value += "<span style='font-weight: bold;'>ç¸½çæ¸ : "+ cjson.length +" ç</span>"; 3558 //cloudmaker_value += "<hr/>"; 3559 3560 $('#cloudmaker_stock').append(cloudmaker_value); 3561 3562 } else { 3563 console.log("cloudmaker_stock(0) is null"); 3564 } 3565 } 3566 3567 }, 3568 error: function(xhr, ajaxOptions, thrownError) { 3569 //console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 3570 } 3571 }); 3572 3573 3574 } 3575 3576 function load_options() { 3577 $.ajax({ 3578 url: 'index.php?route=product/product_options&key=580&type=prod', 3579 dataType: 'html', 3580 beforeSend: function() {}, 3581 success: function(html) { 3582 3583 $('#options').html(html); 3584 3585 }, 3586 error: function(xhr, ajaxOptions, thrownError) { 3587 //alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 3588 } 3589 }); 3590 } 3591 3592 function checkCheckboxOptionQtyLimition(option_id) { 3593 3594 try { 3595 var max_qty = parseInt($("#options #option-" + option_id).data("max-qty")) || 0; 3596 var min_qty = parseInt($("#options #option-" + option_id).data("min-qty")) || 0; 3597 var option_checkbox_name = $("#options #option-" + option_id).data("option-name"); 3598 if (max_qty || min_qty) { 3599 $("#options #option-" + option_id).find(".alert-error").remove();
3600 var qty_total_chk = 0; 3601 $("#options #option-" + option_id).find("input[type='text'].CheckboxOptionQtyGroup").each(function(index) { 3602 var pov_id = $(this).data("pov-id"); 3603 if ($("#option-value-" + pov_id).is(':checked')) { 3604 qty_total_chk += parseInt($(this).val()) || 0; 3605 } 3606 }); 3607 //貨å°éç¥æ²æéï¼æéå¶å¯é¸ç¸½æ¸é 3608 if (goods_arrival_notice_switch_status == 0) { 3609 if (max_qty) { 3610 if (qty_total_chk > max_qty) { 3611 $("#options #option-" + option_id + " > label.control-label").after("<div class='alert alert-error'>é¸é 總æ¸é éå¶æå¤ " + max_qty + " é ï¼è«éæ°ä¿®æ¹æ¸é"); 3612 return false; 3613 } 3614 } 3615 if (min_qty) { 3616 if (qty_total_chk < min_qty) { 3617 $("#options #option-" + option_id + " > label.control-label").after("<div class='alert alert-error'>é¸é 總æ¸é è³å°é " + min_qty + " é ï¼è«éæ°ä¿®æ¹æ¸é"); 3618 return false; 3619 } 3620 } 3621 } 3622 } 3623 } catch (e) {} 3624 return true; 3625 } 3626 3627 var a2a_config = a2a_config || {}; 3628 a2a_config.locale = "zh-TW"; 3629 3630 try { 3631 var main_image_element = document.getElementById("main-defer-image"); 3632 main_image_element = function() { 3633 main_image_element.style.opacity = 1; 3634 main_image_element.style.transition = "all 0.2s"; 3635 }; 3636 } catch (e) {} 3637 3638 function load_free_present() { 3639 3640 var pid = 580; 3641 3642 var price = $('#price-price-block .price-normal').attr('data-content'); 3643 3644 if (!price) price = $('#price-price-block .price-new').attr('data-content'); 3645 3646 var qty = $('input[name="quantity"]').val(); 3647 3648 if (!qty) qty = $('select[name="quantity"]').val(); 3649 3650 $.ajax({ 3651 url: 'index.php?route=module/free_present', 3652 type: 'post', 3653 dataType: 'html', 3654 data: { 3655 pid: pid, 3656 price: price, 3657 qty: qty 3658 }, 3659 beforeSend: function() {}, 3660 success: function(html) { 3661 $('#free_present_list').html(html); 3662 $('#free_present_list').show(); 3663 }, 3664 error: function(xhr, ajaxOptions, thrownError) { 3665 //console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 3666 } 3667 }); 3668 } 3669 3670 3671 function syncThumbsWidth() { 3672 try { 3673 var mainWidth = $('#main-image').outerWidth(); 3674 if (!mainWidth || mainWidth < 1) { 3675 mainWidth = $('#zoom1').outerWidth(); 3676 } 3677 if (mainWidth && mainWidth > 0) { 3678 $('#image-additional, #image-additional-container').css({ 3679 'width': mainWidth + 'px', 3680 'float': 'right' 3681 }); 3682 } 3683 } catch (e) {} 3684 } 3685 3686 try { 3687 $(window).on('resize', syncThumbsWidth); 3688 } catch (e) {} 3689</script>
3689 </div> <!-- .container-inner --> </div> <!-- .container --> </div> <!-- #content_wrapper --> <input type="hidden" id="ga_utm_source" name="ga_utm_source" value=""> <input type="hidden" id="ga_utm_medium" name="ga_utm_medium" value=""> <input type="hidden" id="ga_utm_campaign" name="ga_utm_campaign" value=""> <footer id="footer" class="clearfix "> <div class="footer-inner container"> <div id="footer-inner-row" data-count="2066" class="row-fluid clearfix"> <div class="column span2"> <h3 class="header">ååºè¨æ¯</h3> <ul class="content"> <li id="inf1"><a href="https://www.kpstamp.com.tw/pages/coinstampquiz"></a></li> <li id="inf2"><a href="https://www.kpstamp.com.tw/pages/DELIVERYTIME">åºè²¨æé說æ</a></li> <li id="inf3"><a href="https://www.kpstamp.com.tw/pages/kpstampclass">å»På課表ï¼ï¼</a></li> <li id="inf4"><a href="https://www.kpstamp.com.tw/pages/font-test">å½å®åé«è¨ºæ·å®¤</a></li> <li id="inf5"><a href="https://www.kpstamp.com.tw/pages/å»å°åè¡">åçæ äº</a></li> <li id="inf6"><a href="https://www.kpstamp.com.tw/pages/stamp-color-chart">å¥è²å°ç« /é£çºå°ç« é¡è²è²å¡</a></li> <li id="inf7"><a href="https://www.kpstamp.com.tw/pages/å»På°åè¡Ë-ååº«é¸æ">å¥½è©æ¨è¦</a></li> <li id="inf8"><a href="https://www.kpstamp.com.tw/pages/FONTDOOR">åé«å³ééï¼</a></li> <li id="inf9"><a href="https://www.kpstamp.com.tw/pages/5">追蹤æå</a></li> </ul> </div> <div class="column span2"> <h3 class="header">å®¢æ¶æå</h3> <ul class="content"> <li><a href="https://www.kpstamp.com.tw/contact">ååºçè¨æ¿</a></li> <li><a href="https://www.kpstamp.com.tw/return">ååé/æè²¨</a></li> <li><a href="https://www.kpstamp.com.tw/account/order/payment">填坫坿¬¾å®</a></li> <li><a href="/guestorder">å¿«éæ¥è¨å®</a></li> </ul> </div> <div class="column span2"> <h3 class="header">æå¡ä¸å¿</h3> <ul class="content"> <li><a href="https://www.kpstamp.com.tw/account">æå¡ä¸å¿</a></li> <li><a href="https://www.kpstamp.com.tw/order">è¨è³¼ç´é</a></li> <li><a href="https://www.kpstamp.com.tw/wishlist">é¡ææ¸ å® (0)</a></li> </ul> </div> <div class="span6 contact pull-right"> <p><img alt="" height="77" onerror="imgError(this);" src="//image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2021/12/01/93658796b33b4c0ea8299e753d4fb661.jpg" style="float: none; display: block; margin-left: auto; margin-right: auto;" width="200" /></p> <p style="text-align: center;"><span style="font-size:12px;"><span style="color:#7f8c8d;"><span style="font-family:microsoft jhenghei;">çæ¥æéï¼</span></span><span style="color:#7f8c8d;"><span style="font-family:microsoft jhenghei;">é±ä¸~å¨äº 11:00~20:00</span></span></span></p> <p style="text-align: center;"><span style="font-size:12px;"><span style="color:#7f8c8d;"><span style="font-family:microsoft jhenghei;">é»åä¿¡ç®±ï¼[email protected]</span></span></span></p> <p style="text-align: center;">寫信æ¾èéï¼[email protected]</p> <p style="text-align: center;"><span style="font-size:12px;"><span style="color:#7f8c8d;"><span style="font-family:microsoft jhenghei;">å ¶ä»ææ®µè¯çµ¡ï¼åè¦è¥ææ æ ¢è«è¦è«</span></span></span></p> <p style="text-align: center;"><span style="color:#7f8c8d;"><span style="font-size:12px;">仿¬¾æ¹å¼ï¼éè¡è½å¸³/Line Pay/PayPal(éåå¤)</span></span></p> <p style="text-align: center;"><img alt="" height="38" onerror="imgError(this);" src="//image-cdn-flare.qdm.cloud/q629aa4e2e71b1/image/data/2021/12/01/d7dc6866fe9e89db404783ceb7f59c38.jpg" style="float: none; display: block; margin-left: auto; margin-right: auto;" width="300" /></p> <p> </p> </div> </div> <!-- .row --> </div> <!-- /.footer-inner --> <div class="footer-bottom container "> <div id="footer-copyright" class="row-fluid"> <ul class="footer-lang-sw-tag-container"> <li class="footer-lang-sw-tag"><a href="https://www.kpstamp.com.tw/?lang=zh-TW">ç¹é«ä¸æ</a></li> <li class="footer-lang-sw-tag"><a href="https://www.kpstamp.com.tw/?lang=en">English</a></li> </ul> <form id="form_footer_currency" action="currency_action" method="post" enctype="multipart/form-data"> <select data-size="3" id="footer_currencies" name="footer_currencies" onchange="$('#form_footer_currency input[name=\'currency_code\']').attr('value', $('#footer_currencies option:selected').val()).submit(); $('#form_footer_currency').submit();" style="-moz-appearance:none; -webkit-appearance:none;border:0px solid #000;background:transparent;-webkit-border-radius:0;border-radius:0;width:auto;display:inline;outline:none;"> <option class="option" value="JPY">Â¥ JPY</option> <option class="option" selected value="TWD">$ TWD</option> </select> <input type="hidden" name="currency_code" value="TWD"> <input type="hidden" name="redirect" value="https://www.kpstamp.com.tw/search?filter_name=&filter_tag=è±æ&filter_description=&page=1&q=" /> <i class="fa fa-angle-down" aria-hidden="true"></i> </form> <div id="payment-logo-list" class="pl-container"> <div class="pl-row"> </div> </div> <div id="copy"> <p>Copyright ©2026 å»På°åè¡ å®¢è£½åé£çºå°ç« 第ä¸åç</p> <p> 3690 禮鴻åéæéå ¬å¸ | 3691 çµ±ä¸ç·¨è 90661071 </p> <!--googleoff: index--><span style="display:none;">q629aa4e2e71b1</span><!--googleon: index--> </div> <div id="qdm-copy"><a href='https://www.kpstamp.com.tw/googlebase.xml' title="RSS" target='blank'><i class="fa fa-rss"></i></a><a href='https://www.kpstamp.com.tw/sitemap'>ç¶²ç«å°å</a></div> </div> </div> </footer> <!-- #footer -->
3691<script src="https://cdn.qdm.cloud/assets/js/LAB.min.js"></script>
3691
3691<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
3691
3691<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/1.4.1/jquery-migrate.min.js"></script>
3691
3691<script type="text/javascript"> 3692 3693 $(document).ready(function() { 3694 var j = 0; 3695 var delay = 3000; 3696 function cycleStickyBarTop(){ 3697 var jmax = $(".sticky-bar-top .sticky-bar-content").length -1; 3698 if(jmax > 0){ 3699 $(".sticky-bar-top .sticky-bar-content:eq(" + j + ")") 3700 .animate({"opacity" : "1","z-index":"9998"} ,400) 3701 .animate({"opacity" : "1","z-index":"9998"}, delay) 3702 .animate({"opacity" : "0","z-index":"9"}, 400, function(){ 3703 (j == jmax) ? j=0 : j++; 3704 cycleStickyBarTop(); 3705 }); 3706 }else{ 3707 $(".sticky-bar-top .sticky-bar-content:eq(" + j + ")") 3708 .animate({"opacity" : "1","z-index":"9998"}, delay) 3709 } 3710 }; 3711 cycleStickyBarTop(); 3712 3713 var i = 0; 3714 function cycleStickyBarBottom(){ 3715 var imax = $(".sticky-bar-bottom .sticky-bar-content").length -1; 3716 if(imax > 0){ 3717 $(".sticky-bar-bottom .sticky-bar-content:eq(" + i + ")") 3718 .animate({"opacity" : "1","z-index":"9998"} ,400) 3719 .animate({"opacity" : "1","z-index":"9998"}, delay) 3720 .animate({"opacity" : "0","z-index":"9"}, 400, function(){ 3721 (i == imax) ? i=0 : i++; 3722 cycleStickyBarBottom(); 3723 }); 3724 }else{ 3725 $(".sticky-bar-bottom .sticky-bar-content:eq(" + i + ")") 3726 .animate({"opacity" : "1","z-index":"9998"}, delay) 3727 } 3728 3729 }; 3730 cycleStickyBarBottom(); 3731 3732 var k = 0; 3733 function cycleStickyBarTopMobile(){ 3734 var kmax = $(".mobile-sticky-bar-top .sticky-bar-content").length -1; 3735 if(kmax > 0){ 3736 $(".mobile-sticky-bar-top .sticky-bar-content:eq(" + k + ")") 3737 .animate({"opacity" : "1","z-index":"9998"} ,400) 3738 .animate({"opacity" : "1","z-index":"9998"}, delay) 3739 .animate({"opacity" : "0","z-index":"9"}, 400, function(){ 3740 (k == kmax) ? k=0 : k++; 3741 cycleStickyBarTopMobile(); 3742 }); 3743 }else{ 3744 $(".mobile-sticky-bar-top .sticky-bar-content:eq(" + k + ")") 3745 .animate({"opacity" : "1","z-index":"9998"}, delay) 3746 } 3747 }; 3748 cycleStickyBarTopMobile(); 3749 3750 //COUNTDOWN TIMER 3751 $(".sticky-bar-countdown").each(function(){ 3752 3753 var sticky_bar_date = $(this).attr("data-countdown-date").replace(/-/g,'/'); 3754 var sticky_bar_countdown_id = $(this).attr("id"); 3755 var countDownDate = new Date(sticky_bar_date).getTime(); 3756 3757 var x = setInterval(function() { 3758 3759 var now = new Date().getTime(); 3760 3761 var distance = countDownDate - now; 3762 3763 var days = Math.floor(distance / (1000 * 60 * 60 * 24)); 3764 var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); 3765 var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); 3766 var seconds = Math.floor((distance % (1000 * 60)) / 1000); 3767 3768 if(hours<10){ 3769 var hours1 = "0"+hours; 3770 }else{ 3771 var hours1 = hours; 3772 } 3773 if(minutes<10){ 3774 var minutes1 = "0"+minutes; 3775 }else{ 3776 var minutes1 = minutes; 3777 } 3778 if(seconds<10){ 3779 var seconds1 = "0"+seconds; 3780 }else{ 3781 var seconds1 = seconds; 3782 } 3783 3784 if( $("#" + sticky_bar_countdown_id).length ) { 3785 document.getElementById(sticky_bar_countdown_id).innerHTML = " "+days+ " DAY " + hours1 + ": " 3786 + minutes1 + ": " + seconds1 + " "; 3787 } 3788 3789 if (distance < 0) { 3790 clearInterval(x); 3791 //document.getElementById(sticky_bar_countdown_id).innerHTML = "-"; 3792 $("#"+sticky_bar_countdown_id).remove(); 3793 } 3794 }, 1000); 3795 3796 }); 3797 3798 }); 3799 3800 jQuery.ajaxPrefilter( function( s ) { 3801 if ( s.crossDomain ) { 3802 s.contents.script = false; 3803 } 3804 }); 3805 3806 var loc = window.location.href, index = loc.indexOf('#'); 3807 if (index > 0) { 3808 try { 3809 var urlHash = loc.split("#")[1]; 3810 if( urlHash ) { 3811 if( $('#' + urlHash).length ) { 3812 $('html,body').animate({ 3813 scrollTop: $('#' + urlHash).offset().top 3814 }, 1200); 3815 } else { 3816 window.location = loc.substring(0, index) + "&" + loc.substring(index+1); 3817 } 3818 } 3819 } catch(err) { } 3820 } 3821 3822 var readyInitPage = 1; 3823 var doAdjust = true; 3824 var doAdjustCounter = 0; 3825 var jsLoadTimeout = null; 3826 var previousWidth = 0; 3827 var maxHeight = 0; 3828 var flipper_random_status = 0; 3829 var float_banner_count = 1; 3830 var lazy = 1; 3831 var transInitial = -280; 3832 var mDistance = 0; 3833 3834 if (window!= top) top.location.href = location.href; 3835 3836 //20210713 add menu url target 3837 $(".pushy-submenu button span").click(function(){ 3838 if($(this).attr("target")){ 3839 $(this).removeClass("pushy-submenu-parent"); 3840 if($(this).parents("li").hasClass("pushy-submenu-open")){ 3841 window.open($(this).data("url"),"_blank"); 3842 } 3843 } 3844 }); 3845 3846 $(".pushy-menu-storename span").click(function(){ 3847 $("#myBody").removeClass("pushy-open-left"); 3848 }); 3849 3850 function getScript(url,success){ 3851 var script = document.createElement('script'); 3852 script.type = 'text/javascript'; 3853 script.src = url; 3854 var head=document.getElementsByTagName('head')[0], done=false; 3855 script.onload=script.onreadystatechange = function(){ 3856 if ( !done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete') ) { 3857 done=true; 3858 success(); 3859 script.onload = script.onreadystatechange = null; 3860 head.removeChild(script); 3861 } 3862 }; 3863 head.appendChild(script); 3864 } 3865 3866 function getParams(a){var b=document.getElementsByTagName("script");for(var i=0;i<b.length;i++){if(b[i].src.indexOf("/"+a)>-1){var c=b[i].src.split("?").pop().split("&");var p={};for(var j=0;j<c.length;j++){var d=c[j].split("=");p[d[0]]=d[1]}return p}}return{}} 3867 3868 function adjustBoxHeights() { 3869 maxHeight1 = 270; 3870 maxHeight2 = 270; 3871 maxHeight3 = 270; 3872 maxHeight4 = 270; 3873 maxHeight5 = 270; 3874 3875 $('.content-top .product-box > div').each(function(){ 3876 $(this).height('auto'); 3877 if (maxHeight2 < $(this).height()) { maxHeight2 = $(this).height(); } 3878 }); 3879 $('.content-top .product-box > div').each(function(){ 3880 if( maxHeight2 ) { 3881 $(this).height(maxHeight2); 3882 } 3883 }); 3884 3885 $('.content-bottom .product-box > div').each(function(){ 3886 $(this).height('auto'); 3887 if (maxHeight3 < $(this).height()) { maxHeight3 = $(this).height(); } 3888 }); 3889 $('.content-bottom .product-box > div').each(function(){ 3890 if( maxHeight3 ) { 3891 $(this).height(maxHeight3); 3892 } 3893 }); 3894 3895 $('.product-grid > div').each(function(){ 3896 var img_src = $(this).find(".image img[src]").attr("src"); 3897 try { 3898 var img_src_ext = img_src.split('.').pop().toLowerCase(); 3899 } catch(err) { 3900 img_src_ext = ""; 3901 } 3902 $(this).height('auto'); 3903 if( $( "#myBody" ).hasClass("product-category") ){ 3904 img_src_ext = ""; 3905 } 3906 if( img_src_ext != "gif" ) { 3907 if (maxHeight1 < $(this).height()) { maxHeight1 = $(this).height(); } 3908 } else { 3909 $(this).addClass("gif-tag"); 3910 } 3911 }); 3912 var img_gif_height = 0; 3913 $('.product-grid > div').each(function(){ 3914 var img_src = $(this).find(".image img[src]").attr("src"); 3915 try { 3916 var img_src_ext = img_src.split('.').pop().toLowerCase(); 3917 } catch(err) { 3918 img_src_ext = ""; 3919 } 3920 if( maxHeight1 ){ 3921 $(this).height(maxHeight1); 3922 if( img_src_ext != "gif" ) { 3923 img_gif_height = $(this).find(".image img").height(); 3924 } 3925 } 3926 }); 3927 $('.product-grid > div.gif-tag').attr("style",""); 3928 if( img_gif_height ) { 3929 $('.product-grid > div.gif-tag').find(".image img").attr("style","height:" + img_gif_height + "px;width:auto;"); 3930 } 3931 3932 $('.box-content').each(function(index,elmain){ 3933 $(elmain).find('.product-box').each(function(index,el){ 3934 maxHeight1 = 0; 3935 $(el).find('.grid-box').each(function(index,el2){ 3936 $(el2).height('auto'); 3937 }); 3938 $(el).find('.grid-box .inner').each(function(index,el2){ 3939 if (maxHeight1 < $(el2).height()) { maxHeight1 = $(el2).height(); } 3940 }); 3941 maxHeight1 = maxHeight1 + 18; 3942 $(el).find('.grid-box').each(function(index,el2){ 3943 if( maxHeight1 ) { 3944 $(el2).height(maxHeight1); 3945 } 3946 }); 3947 }); 3948 }); 3949 3950 $('#related-products').each(function(index,elmain){ 3951 $(elmain).imagesLoaded(function(){ 3952 $(this).find('.product-box').each(function(index,el){ 3953 maxHeight1 = 0; 3954 $(el).find('.grid-box').each(function(index,el2){ 3955 $(el2).height('auto'); 3956 }); 3957 $(el).find('.grid-box .inner').each(function(index,el2){ 3958 if (maxHeight1 < $(el2).height()) { maxHeight1 = $(el2).height(); } 3959 }); 3960 maxHeight1 = maxHeight1 + 36; 3961 if( maxHeight1 < 220 ) maxHeight1 = 220; 3962 if( !is.mobile() ) { 3963 if( maxHeight1 < 340 ) maxHeight1 = 340; 3964 } 3965 $(el).find('.grid-box').each(function(index,el2){ 3966 if( maxHeight1 ) { 3967 $(el2).height(maxHeight1); 3968 } 3969 }); 3970 }); 3971 }); 3972 }); 3973 3974 $('.content-bottom #related-products').each(function(index,elmain){ 3975 var contentset_height = parseInt($('.content-bottom #related-products .contentset').height()); 3976 if( contentset_height ) contentset_height = contentset_height + 70; 3977 $(elmain).imagesLoaded(function(){ 3978 $(this).find('.product-box').each(function(index,el){ 3979 maxHeight1 = 0; 3980 $(el).find('.grid-box').each(function(index,el2){ 3981 $(el2).height('auto'); 3982 }); 3983 $(el).find('.grid-box .inner').each(function(index,el2){ 3984 if (maxHeight1 < $(el2).height()) { maxHeight1 = $(el2).height(); } 3985 }); 3986 maxHeight1 = maxHeight1 + 36 + contentset_height; 3987 if( maxHeight1 < 220 ) maxHeight1 = 220; 3988 if( !is.mobile() ) { 3989 if( maxHeight1 < 340 ) maxHeight1 = 340; 3990 } 3991 $(el).find('.grid-box').each(function(index,el2){ 3992 if( maxHeight1 ) { 3993 $(el2).height(maxHeight1); 3994 } 3995 }); 3996 }); 3997 }); 3998 }); 3999 4000 $('.any-products').each(function(index,el){ 4001 4002 if(is.mobile()){ 4003 $(el).find(".grid-box").attr("style",""); 4004 } 4005 4006 maxHeight5 = 0; 4007 $(el).find('.any-box > div').each(function(index,el2){ 4008 $(el2).height('auto'); 4009 if (maxHeight5 < $(el2).height()) { maxHeight5 = $(el2).height(); } 4010 }); 4011 $(el).find('.any-box > div').each(function(index,el2){ 4012 if( maxHeight5 ) { 4013 $(el2).height(maxHeight5); 4014 } 4015 }); 4016 $(el).find('.grid-box > .inner').each(function(index,el2){ 4017 $(el2).css("display", "block"); 4018 }); 4019 }); 4020 } 4021
4022 var supportsNatural = ( "naturalWidth" in (new Image()) ); 4023 4024 function initDeferImages() { 4025 [].forEach.call(document.querySelectorAll('img[data-src]'), function(img) { 4026 img.setAttribute('src', img.getAttribute('data-src')); 4027 img.onload = function() { 4028 this.removeAttribute('data-src'); 4029 if (this.style.opacity !== undefined) { 4030 this.style.opacity = 1; 4031 } 4032 var naturalWidth = supportsNatural ? this.naturalWidth : $(this).width(); 4033 if( naturalWidth == 0 ) { 4034 this.src += '?timestamp=' + new Date().getTime(); 4035 } 4036 }; 4037 }); 4038 $(".grid-box img,.product-row img").each(function(){ 4039 var _this = $(this); 4040 _this.imagesLoaded(function(){ 4041 _this.animate({opacity: 1.0}, 100); 4042 _this.closest('.grid-box').find('.onsale').removeClass("hidden"); 4043 _this.closest('.grid-box').find('.name').removeClass("hidden"); 4044 _this.closest('.grid-box').find('.price').removeClass("hidden"); 4045 _this.closest('.grid-box').find('.label-important').removeClass("hidden"); 4046 _this.closest('.grid-box').find('.load-thumb-conver').remove(); 4047 _this.closest('.product-row').find('.load-thumb-conver').remove(); 4048 try { 4049 if (typeof _this.data('flipper') !== 'undefined') { 4050 _this.flipper(); 4051 } 4052 } catch(err) { } 4053 _this.height('auto'); 4054 if( (lazy == $(".grid-box img").length) ) { adjustBoxHeights(); } 4055 lazy++; 4056 }); 4057 }); 4058 } 4059 4060 function updateCartProductCount() { 4061 $.get("index.php?route=module/cart/GetProductTotal", function(data) { 4062 $("#shopping-cart-list .badge").html(data); 4063 if(data>0){ 4064 $("#shopping-cart-list .badge").removeClass("hidden"); 4065 $("#shopping-cart-list .badge").removeClass("animated"); 4066 $("#shopping-cart-list .badge").addClass("animated bounce"); 4067 } else { 4068 $("#shopping-cart-list .badge").addClass("hidden"); 4069 } 4070 }); 4071 } 4072 4073 function updateQuantityByProductKey(key, quantity) { 4074 quantity = typeof(quantity) != 'undefined' ? quantity : 1; 4075 $.ajax({ 4076 url: 'index.php?route=checkout/cart/updateProductQuantity', 4077 type: 'post', 4078 data: { 'quantity':quantity, 'key': key }, 4079 dataType: 'json', 4080 success: function(json) { 4081 $.get( "index.php?route=module/cart/list", function( data ) { 4082 $(".slidePanel .slidePanel-content").html(data); 4083 updateCartProductCount(); 4084 }); 4085 } 4086 }); 4087 } 4088 4089 function removeProductFromSideCart(key, idx) { 4090 //var newkey = encodeURIComponent(key); 4091 var newkey = key; 4092 $.get("index.php?route=module/cart&remove=" + newkey, function(data) { 4093 $.get( "index.php?route=module/cart/list", function( data ) { 4094 $(".slidePanel .slidePanel-content").html(data); 4095 updateCartProductCount(); 4096 }); 4097 }); 4098 $("#producr-list-" + idx).fadeOut(1200, function() { $(this).remove(); }); 4099 return false; 4100 } 4101 4102 function openSideCart(ta_product_id){ 4103 var slidePanelVisible = $(".slidePanel").hasClass("slidePanel-show"); 4104 if( slidePanelVisible ) { 4105 $("#content-wrapper").off("click"); 4106 $.slidePanel.hide(); 4107 } else { 4108 updateCartProductCount(); 4109 $.slidePanel.show({ 4110 url: 'index.php?route=module/cart/list' 4111 }, { 4112 direction: "left", 4113 duration: '500', 4114 mouseDrag: false, 4115 touchDrag: false, 4116 pointerDrag: false, 4117 loading: { 4118 template: function(options) { 4119 return '<div class="' + options.classes.loading + '"><div class="spinner"><i class="fa fa-circle-o-notch fa-spin fa-3x fa-fw"></i><span class="sr-only">Loading...</span></div></div>'; 4120 } 4121 } 4122 }); 4123 $("#content-wrapper").on('click', function(event) { 4124 $("#content-wrapper").off("click"); 4125 $.slidePanel.hide(); 4126 event.preventDefault(); 4127 event.stopPropagation(); 4128 4129 var t_url = location.href; 4130 var c_url = "https://www.kpstamp.com.tw/cart"; 4131 4132 if(t_url == c_url){ 4133 location.reload(); 4134 } 4135 4136 }); 4137 $(".fancybox-product").on('click', function(event) { 4138 $.slidePanel.hide(); 4139 event.preventDefault(); 4140 event.stopPropagation(); 4141 4142 var t_url = location.href; 4143 var c_url = "https://www.kpstamp.com.tw/cart"; 4144 4145 if(t_url == c_url){ 4146 location.reload(); 4147 } 4148 4149 }); 4150 } 4151 } 4152 4153 function gaTrackAddToCart(page, product_ids) { 4154 4155 product_ids.forEach(function(item){ 4156 4157 try { 4158 4159 // UA 4160 dataLayer.push({ 4161 'event': 'addToCart', 4162 'ecommerce': { 4163 'currencyCode': '', 4164 'add': { 4165 'products': [{ 4166 'name': item.p_name, 4167 'id': item.p_id, 4168 'price': item.p_prices, 4169 'quantity': item.p_qty 4170 }] 4171 } 4172 } 4173 }); 4174 4175 // GA4 4176 dataLayer.push({ 4177 'event': 'add_to_cart', 4178 'ecommerce': { 4179 'items': [{ 4180 'item_name': item.p_name, 4181 'item_id': item.p_id, 4182 'price': item.p_prices, 4183 'quantity': item.p_qty 4184 }] 4185 } 4186 }); 4187 4188 4189 4190 } catch (e) { } 4191 4192 }); 4193 4194 } 4195
4196 // Defers instant-add until the async-loaded $.fancybox exists, so early 4197 // clicks no longer hit an undefined open() and feel dead. One poller at a 4198 // time, latest click wins - repeated clicks don't stack duplicate opens. 4199 // Keep in sync with common/footer_cart.tpl (same guard for '/cart' URLs). 4200 var _fancyboxPendingCb = null; 4201 var _fancyboxPolling = false; 4202 function whenFancyboxReady(callback){ 4203 if (typeof $.fancybox !== 'undefined') { callback(); return; } 4204 _fancyboxPendingCb = callback; // latest click wins if several arrive while waiting 4205 if (_fancyboxPolling) { return; } 4206 _fancyboxPolling = true; 4207 (function poll(attempt){ 4208 if (typeof $.fancybox !== 'undefined') { 4209 _fancyboxPolling = false; 4210 var cb = _fancyboxPendingCb; 4211 _fancyboxPendingCb = null; 4212 if (cb) { cb(); } 4213 return; 4214 } 4215 if (attempt < 50) { setTimeout(function(){ poll(attempt + 1); }, 100); return; } 4216 _fancyboxPolling = false; 4217 _fancyboxPendingCb = null; 4218 if (window.console && console.warn) { console.warn('fancybox not ready after 5s; instant add aborted'); } 4219 })(0); 4220 } 4221 4222 function InstantAddToCart(product_id, quantity, promotion_id, free_present_id){ 4223 4224 if( product_id && quantity ) { 4225 4226 gecommProductToCart.product_id = product_id; 4227 gecommProductToCart.quantity = quantity; 4228 4229 try { 4230 4231 var p_name = $("[data-producttlid='"+product_id+"'] .name [itemprop='name']").html(); 4232 var p_prices = $("[data-producttlid='"+product_id+"'] .price[data-price]").data("price"); 4233 gecommProductToCart.product_name = p_name; 4234 4235 gecommProductToCart.price = p_prices; 4236 4237 // UA 4238 dataLayer.push({ 4239 'event': 'addToCart', 4240 'ecommerce': { 4241 'currencyCode': '', 4242 'add': { 4243 'products': [{ 4244 'name': p_name, 4245 'id': product_id, 4246 'price': p_prices, 4247 'quantity': quantity 4248 }] 4249 } 4250 } 4251 }); 4252 4253 // GA4 4254 dataLayer.push({ 4255 'event': 'add_to_cart', 4256 'ecommerce': { 4257 'items': [{ 4258 'item_name': p_name, 4259 'item_id': product_id, 4260 'price': p_prices, 4261 'quantity': quantity 4262 }] 4263 } 4264 }); 4265 4266 var product_category = ""; 4267 $.getJSON( "index.php?route=common/footer/getProductCategory&product_id=" + product_id, function( data ) { 4268 4269 if(data) product_category = data; 4270 4271 if(product_category != ""){ 4272 gtag('event', 'add_to_cart', { 4273 'value': p_prices, 4274 'items': [{ 4275 'id' : product_id, 4276 'item_id' : product_id, 4277 'item_name' : p_name, 4278 'price' : p_prices, 4279 'quantity' : quantity, 4280 'google_business_vertical': 'retail', 4281 'item_category': product_category 4282 }] 4283 }); 4284 }else{ 4285 gtag('event', 'add_to_cart', { 4286 'value': p_prices, 4287 'items': [{ 4288 'id' : product_id, 4289 'item_id' : product_id, 4290 'item_name' : p_name, 4291 'price' : p_prices, 4292 'quantity' : quantity, 4293 'google_business_vertical': 'retail' 4294 }] 4295 }); 4296 } 4297 4298 }); 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 } catch (e) { } 4309 4310 } 4311 4312 $('[data-toggle="tooltip"], .tooltip').tooltip("hide"); 4313 4314 promotion_id = typeof(promotion_id) != 'undefined' ? promotion_id : -1; 4315 free_present_id = typeof(free_present_id) != 'undefined' ? free_present_id : -1; 4316 4317 if(free_present_id != "-1"){ 4318 quantity = $('input[name="quantity"]').val(); 4319 quantity = typeof(quantity) != 'undefined' ? quantity : 1; 4320 } 4321 4322 var price = $('#price-price-block .price-normal').attr('data-content'); 4323 4324 if(typeof(price) === 'undefined') price = $('#price-price-block .price-new').attr('data-content'); 4325 4326 price = typeof(price) != 'undefined' ? price : 0; 4327 4328 var instantCartSrc = 'https://www.kpstamp.com.tw/index.php?route=product/instant_add&product_id=' + product_id + '&promotion_id=' + promotion_id + '&quantity=' + quantity +'&price=' + price + '&free_present_id=' + free_present_id; 4329 4330 whenFancyboxReady(function(){ 4331 try { 4332 $.fancybox.open({ 4333 src : instantCartSrc, 4334 type : 'iframe', 4335 opts : { 4336 openEffect : 'none', 4337 closeEffect : 'none', 4338 closeClickOutside : true, 4339 iframe : { css : { "max-width" : '332px', "width:": '100%' } },
4340 beforeLoad: function() { 4341 $(".fancybox-container").css("zIndex", 999999993); 4342 } 4343 } 4344 }); 4345 } catch (e) { } 4346 }); 4347 } 4348 4349 function InstantAddToCart1(product_id, quantity, key_id, type, position){ 4350 4351 product_id = (typeof product_id !== 'undefined') ? product_id : 0; 4352 quantity = (typeof quantity !== 'undefined') ? quantity : 1; 4353 key_id = (typeof key_id !== 'undefined') ? key_id : "-1"; 4354 type = (typeof type !== 'undefined') ? type : ""; 4355 position = (typeof position !== 'undefined') ? position : ""; 4356 4357 if( product_id && quantity ) { 4358 4359 gecommProductToCart.product_id = product_id; 4360 gecommProductToCart.quantity = quantity; 4361 4362 try { 4363 4364 var p_name = $("[data-producttlid='"+product_id+"'] .name [itemprop='name']").html(); 4365 var p_prices = $("[data-producttlid='"+product_id+"'] .price[data-price]").data("price"); 4366 gecommProductToCart.product_name = p_name; 4367 4368 gecommProductToCart.price = p_prices; 4369 4370 // UA 4371 dataLayer.push({ 4372 'event': 'addToCart', 4373 'ecommerce': { 4374 'currencyCode': '', 4375 'add': { 4376 'products': [{ 4377 'name': p_name, 4378 'id': product_id, 4379 'price': p_prices, 4380 'quantity': quantity 4381 }] 4382 } 4383 } 4384 }); 4385 4386 // GA4 4387 dataLayer.push({ 4388 'event': 'add_to_cart', 4389 'ecommerce': { 4390 'items': [{ 4391 'item_name': p_name, 4392 'item_id': product_id, 4393 'price': p_prices, 4394 'quantity': quantity 4395 }] 4396 } 4397 }); 4398 4399 4400 4401 4402 4403 4404 4405 } catch (e) { } 4406 4407 } 4408 4409 $('[data-toggle="tooltip"], .tooltip').tooltip("hide"); 4410 4411 if(type == "promotion"){ 4412 var promotion_id = typeof(key_id) != 'undefined' ? key_id : -1; 4413 var send_value = '&promotion_id=' + promotion_id ; 4414 } 4415 4416 if(type == "present"){ 4417 var free_present_id = typeof(key_id) != 'undefined' ? key_id : -1; 4418 4419 //if(free_present_id > 0){ 4420 quantity = $('input[name="quantity"]').val(); 4421 quantity = typeof(quantity) != 'undefined' ? quantity : 1; 4422 //} 4423 4424 var send_value = '&free_present_id=' + free_present_id +'&position=' + position; 4425 } 4426 4427 if(type == "buytogether"){ 4428 var buy_together_id = typeof(key_id) != 'undefined' ? key_id : -1; 4429 4430 quantity = $('input[name="quantity"]').val(); 4431 quantity = typeof(quantity) != 'undefined' ? quantity : 1; 4432 4433 var send_value = '&buy_together_id=' + buy_together_id +'&position=' + position; 4434 } 4435 4436 var price = $('#price-price-block .price-normal').attr('data-content'); 4437 4438 if(typeof(price) === 'undefined') price = $('#price-price-block .price-new').attr('data-content'); 4439 4440 price = typeof(price) != 'undefined' ? price : 0; 4441 4442 4443 var instantCart1Src = 'index.php?route=product/instant_add&product_id=' + product_id + '&quantity=' + quantity +'&price=' + price +send_value ; 4444 4445 whenFancyboxReady(function(){ 4446 try { 4447 $.fancybox.open({ 4448 src : instantCart1Src, 4449 type : 'iframe', 4450 opts : { 4451 closeClickOutside : true, 4452 iframe : { css : { width : '320px' } }, 4453 beforeLoad: function() { 4454 $(".fancybox-container").css("zIndex", 999999993); 4455 } 4456 } 4457 }); 4458 } catch (e) { } 4459 }); 4460 } 4461 4462 // Debounced mini-cart reload: every module/cart hit rewrites server-side 4463 // cart state, so a burst of reloads can undo a just-added product. 4464 // Keep in sync with common/footer_cart.tpl -- only one footer renders per page 4465 // (common/footer.php picks a single template), so the two copies never collide. 4466 var miniCartReloadTimer = null; 4467 function reloadMiniCart(immediate){ 4468 // One shared timer for every caller; immediate only shortens the wait. 4469 // Bypassing it made add-to-cart fire two overlapping module/cart requests 4470 // (closePopFancybox() and TriggerMyCartList() each trigger mouseover). 4471 // Rescheduling is not a lock, so this is "almost always one", not a guarantee. 4472 clearTimeout(miniCartReloadTimer); 4473 miniCartReloadTimer = setTimeout(loadMiniCart, immediate ? 0 : 300); 4474 } 4475 4476 function loadMiniCart(){ 4477 $("#cart").load("index.php?route=module/cart #cart > *", function(){ 4478 try { refreshMiniCartScrollBar(); } catch (e) { } 4479 }); 4480 } 4481 4482 function closePopFancybox(){
4483 try { 4484 $.fancybox.close(); 4485 $.fancybox.destroy(); 4486 } catch (e) { } 4487 if( is.desktop() ) { 4488 setTimeout(function(){ 4489 $("#cart > .heading a").trigger('mouseover'); 4490 setTimeout(function(){ refreshMiniCartScrollBar(); }, 300); 4491 }, 500); 4492 } 4493 } 4494 4495 function LastPresentsOption(html,key,qty){ 4496 $("#lg_option_"+key).prepend(html); 4497 $('.last_free_presents').trigger('change'); 4498 $('.free_present_qty').trigger('change'); 4499 } 4500 4501 function TriggerMyCartList(){ 4502 if( is.not.desktop() ){ 4503 updateCartProductCount(); 4504 setTimeout(function(){ 4505 $("#shopping-cart-list .badge").removeClass("animated"); 4506 $("#shopping-cart-list .badge").addClass("animated"); 4507 $("#shopping-cart-list .badge").addClass("bounce"); 4508 }, 800); 4509 } else { 4510 setTimeout(function(){ 4511 $("#cart > .heading a").trigger('mouseover'); 4512 setTimeout(function(){ refreshMiniCartScrollBar(); }, 300); 4513 }, 500); 4514 } 4515 } 4516 4517 function removeCartByProductID(product_id) { 4518 if( is.existy(product_id) ) { 4519 $.ajax({ 4520 url: 'index.php?route=module/cart&remove=' + product_id + "%3Anull%3A-1%3A0", 4521 type: 'post', 4522 dataType: 'json', 4523 success: function(json) { 4524 TriggerMyCartList(); 4525 } 4526 }); 4527 } 4528 } 4529 4530 function updateQuantityByProductID(product_id, quantity) { 4531 quantity = typeof(quantity) != 'undefined' ? quantity : 1; 4532 $.ajax({ 4533 url: 'index.php?route=checkout/cart/updateProductQuantity', 4534 type: 'post', 4535 data: { 'quantity':quantity, 'key': product_id+'%3Anull%3A-1%3A0' }, 4536 dataType: 'json', 4537 success: function(json) { 4538 TriggerMyCartList(); 4539 } 4540 }); 4541 } 4542 4543 4544 function bulk_add_to_cart() { 4545 $("select.bulk-add-quantity").change(function() { 4546 var value = $("option:selected", this).val(); 4547 var select_idx = $(this).data("idx"); 4548 var product_id = $(this).data("productid"); 4549 var prevval = $(this).data("prevval"); 4550 4551 if( value == 0 ) { 4552 $(this).next(".bulk-add-quantity").addClass("no-cart"); 4553 if(prevval!=0){ 4554 removeCartByProductID(product_id); 4555 } 4556 } else { 4557 $(this).next(".bulk-add-quantity").removeClass("no-cart"); 4558 4559 if( value == 999 ) { 4560 InstantAddToCart(product_id, 999); 4561 $(this).next(".bulk-add-quantity").find(".current").text("+ 9"); 4562 } else { 4563 if(prevval==0){ 4564 // ç¬¬ä¸æ¬¡å å ¥ 4565 InstantAddToCart(product_id, value); 4566 } else { 4567 // æ´æ°æ¸é 4568 updateQuantityByProductID(product_id, value); 4569 } 4570 } 4571 } 4572 $(this).data("prevval", value); 4573 $(this).attr("data-prevval", value); 4574 }); 4575 } 4576 4577 function downloadJSAtOnload() { 4578 4579 $("#myBody").removeAttr('style'); 4580 4581 if( is.not.desktop() ) { 4582 $('.any-products').each(function(index,el){ 4583 $(el).find('.grid-box').each(function(index,el2){ 4584 $(el2).attr('style',''); 4585 }); 4586 }); 4587 } 4588 4589 try { 4590 getScript("https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js",function(){ }); 4591 } catch(e) { } 4592 4593 4594 var queue = $LAB.queueScript("https://cdn.qdm.cloud/assets/js/core.240901.compressed.js"); 4595 queue.queueWait(function(){ 4596 4597 // core.js reloads module/cart on EVERY mini-cart hover, unthrottled (10 4598 // requests in 5s observed). Rebind to the debounced reload, keeping 4599 // hover-to-expand behaviour. The mouseleave rebind is like-for-like: in 4600 // core.240901 (the bundle queued above) its body is only 4601 // removeClass("active"). Re-check if that bundle is rebuilt. 4602 // Keep in sync with common/footer_cart.tpl -- it queues a different 4603 // bundle, so verify that claim against ITS bundle. 4604 // 4605 // The ready() wrapper is load-bearing: core.js binds inside its own 4606 // ready() callback, registered while this queued script runs, and jQuery 4607 // fires ready callbacks in registration order -- so off() is guaranteed to 4608 // run after that bind. Calling off() directly here only works if DOM ready 4609 // happens to have fired already; otherwise it removes nothing and BOTH 4610 // handlers stay attached.
4611 $(document).ready(function(){ 4612 try { 4613 $(document).off("mouseover", "#cart > .heading"); 4614 $(document).on("mouseover", "#cart > .heading", function(e){ 4615 $("#cart").addClass("active"); 4616 // Programmatic refreshes get here via .trigger('mouseover') (add-to-cart / 4617 // fancybox close / login). Debouncing them delayed the reload past each 4618 // call site's paired setTimeout(refreshMiniCartScrollBar, 300). jQuery 4619 // marks synthetic events with isTrigger; losing that just falls back to 4620 // the debounced path. 4621 reloadMiniCart(e && e.isTrigger); 4622 }); 4623 $(document).off("mouseleave", "#cart"); 4624 $(document).on("mouseleave", "#cart", function(){ 4625 $(this).removeClass("active"); 4626 }); 4627 } catch (e) { 4628 // Never break the rest of the queued callback, but do not fail 4629 // silently either -- a swallowed error degrades straight back to 4630 // the unthrottled reload. 4631 if (window.console && console.warn) { console.warn("mini-cart rebind failed", e); } 4632 } 4633 4634 // Self-check. off(type, selector) matches on the selector STRING, so a whitespace 4635 // variant alone breaks it: a rebuilt bundle emitting "#cart>.heading" survives our 4636 // off() and BOTH handlers stay attached. Both spellings hit the same element, so 4637 // compare with whitespace stripped -- that covers drift on either side. 4638 // Known limit: whitespace is the ONLY rewrite covered. "#cart .heading", a trailing 4639 // " a", a comma-separated selector or a direct element bind all stay silent. 4640 // A tripwire for the likely case, not proof that the rebind held. 4641 // _data is a jQuery internal, so it gets its own try/catch: if it ever goes away, 4642 // the rebind above is still correct and must not be reported failed. 4643 try { 4644 var miniCartEvents = $._data(document, "events"); 4645 var miniCartBound = ((miniCartEvents && miniCartEvents.mouseover) || []).filter(function(h){ 4646 return h.selector && h.selector.replace(/\s+/g, "") === "#cart>.heading"; 4647 }).length; 4648 if (miniCartBound !== 1 && window.console && console.warn) { 4649 console.warn("mini-cart rebind: expected 1 mouseover handler, found", miniCartBound); 4650 } 4651 } catch (e2) { 4652 if (window.console && console.warn) { console.warn("mini-cart rebind self-check unavailable", e2); } 4653 } 4654 }); 4655 4656 4657 4658 $(".ajax-popup-link").unbind(); 4659 $(".ajax-popup-link").fancybox({ 4660 closeBtn : true, 4661 closeClick : true, 4662 helpers : { 4663 overlay : {closeClick: true} 4664 }, 4665 buttons : [ 'close' ], 4666 clickOutside : 'close', 4667 closeClick : true, 4668 toolbar : true 4669 }); 4670 4671 4672 var milliseconds = new Date().getTime(); 4673 $.getJSON( "index.php?route=common/header/getLoggedInUserInfo&token=" + milliseconds + "1" + (Math.floor(Math.random() * 999) + 100), function( data ) { 4674 if( is.existy(data) && data.isLogged ) { 4675 $("#header-logged-user").html(data.logged_user_name + data.logged_group_name); 4676 $("#header-mobile-user").html(data.logged_user_name + data.logged_group_name); 4677 $(".header-logged-menu").removeClass("hidden"); 4678 $("#header-logged-menu").removeClass("hidden"); 4679 $("#header-none-logged-menu").remove(); 4680 } else { 4681 $(".header-logged-menu").remove(); 4682 $("#header-logged-menu").remove(); 4683 $(".header-none-logged-menu").removeClass("hidden"); 4684 $("#header-none-logged-menu").removeClass("hidden"); 4685 } 4686 4687 if( is.not.desktop() ){ 4688 updateCartProductCount(); 4689 setTimeout(function(){ 4690 $("#shopping-cart-list .badge").removeClass("animated"); 4691 $("#shopping-cart-list .badge").addClass("animated"); 4692 $("#shopping-cart-list .badge").addClass("bounce"); 4693 }, 800); 4694 } else { 4695 $("#cart > .heading a").trigger('mouseover'); 4696 $("section#cart").removeClass("active"); 4697 setTimeout(function(){ $("section#cart").removeClass("active"); }, 50); 4698 } 4699 4700 }); 4701 4702 setTimeout(function(){ 4703 $('.side_float_banner_wrapper').attr("style",""); 4704 $('.banner').each(function( index ) { 4705 if( $(this).find("a").length == 1 ) { 4706 $(this).attr("style",""); 4707 } 4708 }); 4709 }, 2000); 4710 4711 if (typeof init_inline === 'function') { 4712 if($("#image-additional").length){ 4713 $.fancybox.defaults.hash = false;
4714 } 4715 setTimeout(function(){ init_inline(); }, 300); 4716 } 4717 4718 if (typeof init_fullslideshow === 'function') { init_fullslideshow(); } 4719 4720 $("#contact-block").removeAttr('style'); 4721 4722 if( is.not.desktop() ) { 4723 $('#shopping-cart-list').on('click', function() { 4724 openSideCart(); 4725 return false; 4726 }); 4727 } 4728 4729 if ( $("input[name='quantity']").length > 0 ) { 4730 var qtyMin = $("input[name='quantity']").data("min"); 4731 if(qtyMin=="" || qtyMin==undefined) qtyMin = 1; 4732 $("input[name='quantity']").TouchSpin({ 4733 min: qtyMin, 4734 max: 99999 4735 }); 4736 } 4737 4738 $(window).resize(function() { 4739 if( $(window).width() < 992 ){ 4740 $("#footer-inner-row").removeClass("offset2"); 4741 } else { 4742 var data_count = $("#footer-inner-row").data("count"); 4743 if(data_count < 1) { 4744 $("#footer-inner-row").addClass("offset2"); 4745 } 4746 } 4747 }); 4748 4749 $("#header .flipper").each(function(){ 4750 var imgLoad = $(this).imagesLoaded(function(){ 4751 try { 4752 if (typeof $(this).data('flipper') !== 'undefined') { 4753 $(this).flipper(); 4754 } 4755 } catch(err) { } 4756 }); 4757 }); 4758 4759 $('a[href*="#"]').each(function() { 4760 var hash = $(this).attr('href'); 4761 if(hash=="##") return; 4762 if(hash=="#") return; 4763 if(hash=="#mobile-menu") return; 4764 $(this).click( function(e) { 4765 var url = $(this).attr('href'); 4766 var type = url.split('#'); 4767 var hash = ''; 4768 if(type.length > 1) 4769 hash = type[1]; 4770 if($("[name='"+hash+"']").length){ 4771 if(hash && hash != "undefined" && hash != null && hash != undefined){ 4772 e.preventDefault(); 4773 $('html,body').animate({ scrollTop: $("[name='"+hash+"']").offset().top}, 600); 4774 return false; 4775 } 4776 } 4777 }); 4778 }); 4779 4780 4781 4782 4783 4784 if ( $(".masonry").length > 0 ) { 4785 $(".masonry").each(function(index, value) { 4786 var $grid = $('.masonry').masonry(); 4787 setTimeout(function(){ $grid.masonry('layout'); }, 2000); 4788 }); 4789 } 4790 4791 if ( $(".owl-carousel").length > 0 ) { 4792 $(".owl-carousel").not('[data-exclude]').each(function(index, value) { 4793 4794 var autoplay = is.null( $(this).attr('data-autoPlay') ) ? true : $(this).attr('data-autoPlay'); 4795 var pagination = is.null( $(this).attr('data-pagination') ) ? false : $(this).attr('data-pagination'); 4796 var slideSpeed = is.null( $(this).attr('data-slideSpeed') ) ? 200 : $(this).attr('data-slideSpeed'); 4797 var paginationSpeed = is.null( $(this).attr('data-paginationSpeed') ) ? 800 : $(this).attr('data-paginationSpeed'); 4798 var singleItem = is.null( $(this).attr('data-singleItem') ) ? true : $(this).attr('data-singleItem'); 4799 var transitionStyle = is.null( $(this).attr('data-transitionStyle') ) ? "fade" : $(this).attr('data-transitionStyle'); 4800 4801 $(this).owlCarousel({ 4802 autoPlay : Boolean(autoplay), 4803 navigation : false, 4804 pagination : Boolean(pagination), 4805 slideSpeed : slideSpeed, 4806 paginationSpeed : paginationSpeed, 4807 singleItem: Boolean(singleItem), 4808 transitionStyle : transitionStyle, 4809 stopOnHover: true, 4810 autoHeight: true 4811 }); 4812 4813 }); 4814 } 4815 4816 4817 var vidDefer = document.getElementsByTagName('iframe'); 4818 for (var i=0; i<vidDefer.length; i++) { 4819 if(vidDefer[i].getAttribute('data-src')) { 4820 vidDefer[i].setAttribute('src',vidDefer[i].getAttribute('data-src')); 4821 } 4822 } 4823 4824 $(".fancybox").fancybox({ 4825 closeBtn: false, 4826 padding : 1, 4827 helpers : { 4828 overlay : { 4829 closeClick : true, 4830 speedOut : 200, 4831 showEarly : true, 4832 css : {}, 4833 locked : true 4834 }, 4835 title : { type : 'inside' }, 4836 buttons : {} 4837 } 4838 }); 4839 4840 4841 if( is.not.desktop() ){ 4842 $("#footer-inner-row").removeClass("offset2"); 4843 } 4844 4845 if ( $('#bestseller-products .flexslider').length > 0 ) { 4846 $('#bestseller-products .flexslider').each(function(index, value) { 4847 $(this).flexslider({ 4848 animation: "slide", 4849 animationLoop: true, 4850 itemWidth: 182, 4851 itemMargin: 3, 4852 minItems: 2, 4853 maxItems: 6, 4854 animationSpeed: 700, 4855 touch: true, 4856 slideshow: false, slideshowSpeed: 5000 }); 4857 }); 4858 } 4859 if ( $('#featured-products .flexslider').length > 0 ) { 4860 $('#featured-products .flexslider').each(function(index, value) { 4861 $(this).flexslider({ 4862 animation: "slide", 4863 animationLoop: true, 4864 itemWidth: 182, 4865 itemMargin: 3, 4866 minItems: 2, 4867 maxItems: 6, 4868 animationSpeed: 700, 4869 touch: true, 4870 slideshow: false, slideshowSpeed: 5000 }); 4871 }); 4872 } 4873 if ( $('#latest-products .flexslider').length > 0 ) { 4874 $('#latest-products .flexslider').each(function(index, value) { 4875 $(this).flexslider({ 4876 animation: "slide", 4877 animationLoop: true, 4878 itemWidth: 182, 4879 itemMargin: 3, 4880 minItems: 2, 4881 maxItems: 6, 4882 animationSpeed: 700, 4883 touch: true, 4884 slideshow: false, slideshowSpeed: 5000 }); 4885 }); 4886 } 4887 if ( $('#related-products .flexslider').length > 0 ) { 4888 $('#related-products .flexslider').each(function(index, value) { 4889 $(this).flexslider({ 4890 animation: "slide", 4891 animationLoop: true, 4892 itemWidth: 182, 4893 itemMargin: 3, 4894 minItems: 2, 4895 maxItems: 6, 4896 animationSpeed: 700, 4897 touch: true, 4898 slideshow: false, slideshowSpeed: 5000 }); 4899 }); 4900 } 4901 if ( $('#special-products .flexslider').length > 0 ) { 4902 $('#special-products .flexslider').each(function(index, value) { 4903 $(this).flexslider({ 4904 animation: "slide", 4905 animationLoop: true, 4906 itemWidth: 182, 4907 itemMargin: 3, 4908 minItems: 2, 4909 maxItems: 6, 4910 animationSpeed: 700, 4911 touch: true, 4912 slideshow: false, slideshowSpeed: 5000 }); 4913 }); 4914 } 4915 4916 if ( $('#comingsoon-products .flexslider').length > 0 ) { 4917 $('#comingsoon-products .flexslider').each(function(index, value) { 4918 $(this).flexslider({ 4919 animation: "slide", 4920 animationLoop: true, 4921 itemWidth: 182, 4922 itemMargin: 3, 4923 minItems: 2, 4924 maxItems: 6, 4925 animationSpeed: 700, 4926 touch: true, 4927 slideshow: false, slideshowSpeed: 5000 }); 4928 }); 4929 } 4930 4931 jQuery('.flexslider').each( function() { 4932 var $slider = jQuery(this); 4933 var $slides = jQuery(this).children().children('.slides'); 4934 if ( -1 === jQuery.inArray( $slider.data('flexslider').vars.animation, [ 'slide', 'swing' ] ) ) 4935 return; 4936 $slides.bind( 'mousewheel', function( e ) { 4937 e.preventDefault(); 4938 if ( jQuery(this).hasClass('dragging') ) 4939 return; 4940 if ( e.originalEvent.deltaY > 0 ) { 4941 $slider.flexslider('next'); 4942 } 4943 if ( e.originalEvent.deltaY < 0 ) { 4944 $slider.flexslider('prev'); 4945 } 4946 return false;
4947 } ); 4948 } ); 4949 4950 if ( $('.any-products').length > 0 ) { 4951 $(window).resize(function() { 4952 4953 $('.any-products').each(function(index, value) { 4954 var margin_vertical = $(this).data("marginVertical"); 4955 if( is.mobile() ){ 4956 $(this).find(".products-box").removeClass(".products-box").addClass("product-box"); 4957 } else { 4958 if(margin_vertical){ 4959 $(this).find(".product-box").removeClass(".product-box").addClass("products-box"); 4960 } 4961 } 4962 }); 4963 4964 if(is.mobile()){ 4965 $(".any-products").find(".grid-box").attr("style",""); 4966 adjustBoxHeights(); 4967 } 4968 4969 }); 4970 } 4971 4972 if ( $('.banner-carousel').length > 0 ) { 4973 $('.banner-carousel').each(function(index, value) { 4974 var slideSpeed = is.null( $(this).attr('data-slideSpeed') ) ? 600 : $(this).attr('data-slideSpeed'); 4975 if( slideSpeed == undefined ) { slideSpeed = 600; } 4976 var el = "#" + $(this).attr("id"); 4977 var items = $(this).data("item"); 4978 4979 var lilen = $(el+" li").length; 4980 var sliderLoop = true; 4981 if(lilen==items){sliderLoop = false;} 4982 4983 var autoplay = parseInt($(this).data("autoplay")); 4984 var boolAutoplay = false; 4985 if( autoplay ) boolAutoplay = true; 4986 $(el).removeClass("hidden"); 4987 $(el).show(); 4988 $(el).imagesLoaded( function() { 4989 var el = "#" + $(this).attr("id"); 4990 $(el+" img[data-lazy-src]").each(function(index, value) { 4991 var loadimg = $(this).attr('data-lazy-src'); 4992 $(this).attr('src', loadimg); 4993 }); 4994 var slider = $(el).lightSlider({ 4995 auto: boolAutoplay, 4996 pauseOnHover: true, 4997 pager: false, 4998 item:items, 4999 loop: sliderLoop, 5000 easing: 'cubic-bezier(0.25, 0, 0.25, 1)', 5001 speed: slideSpeed, 5002 onSliderLoad: function() { 5003 $(el).removeClass("hidden"); 5004 $(el).show(); 5005 $(el).css("height", "auto"); 5006 } 5007 }); 5008 slider.refresh(); 5009 }); 5010 }); 5011 } 5012 5013 5014 if ( $('.slideshow-container-appear li').length > 0 ) { 5015 $('.slideshow-container-appear').each(function(index, value) { 5016 var el = "#" + $(this).attr("id"); 5017 var full = $(this).data("full"); 5018 if(full){ 5019 $(this).appendTo('#content-top'); 5020 } 5021 5022 if(is.mobile()){ 5023 $(el).find("li.desktop").remove(); 5024 $(el).find("li.mobile:first").show(); 5025 } else { 5026 $(el).find("li.mobile").remove(); 5027 $(el).find("li.desktop:first").show(); 5028 } 5029 5030 $(el).imagesLoaded( function(e) { 5031 5032 if(is.mobile()){ 5033 $(e).closest("li.mobile").attr("style","width:100%"); 5034 } else { 5035 $(e).closest("li.desktop").attr("style","width:100%"); 5036 } 5037 5038 var controlNav = $(e).closest(".slideshow-container-appear").data("controlnav"); 5039 var directionNav = $(e).closest(".slideshow-container-appear").data("directionnav"); 5040 var el = "#" + $(e).attr("id"); 5041 var delay = $(e).closest(".slideshow-container-appear").data("delay"); 5042 if(delay<300) delay = 300; 5043 5044 adaptiveHeight = true; 5045 if( is.mobile() ){ 5046 //controlNav = false; 5047 //directionNav = false;
5048 adaptiveHeight = false; 5049 } 5050 5051 var slideshow_img_h = 0; 5052 $(e).closest(".slideshow-container-appear li.mobile img").each(function(index, value) { 5053 var img_h = $(this).data("height"); 5054 if( (img_h > 0) && (slideshow_img_h > 0) && (img_h != slideshow_img_h) ) { 5055 slideshow_img_h = 0; 5056 } else { 5057 slideshow_img_h = img_h; 5058 } 5059 }); 5060 5061 if( is.mobile() && slideshow_img_h == 0 ){ 5062 $(e).closest(".slideshow-container-appear").flexslider({ 5063 animation: "fade", 5064 slideDirection: "horizontal", 5065 animationLoop: true, 5066 pauseOnHover: true, 5067 pauseOnAction: false, 5068 smoothHeight: false, 5069 slideshowSpeed: delay, 5070 initDelay: 0, 5071 slideshow: true, 5072 mousewheel: false, 5073 controlNav: controlNav, 5074 directionNav: directionNav, 5075 prevText: "", 5076 nextText: "", 5077 start: function(slider) { 5078 var el = "#" + $(this).attr("id"); 5079 $(el).removeClass('loading'); 5080 } 5081 }); 5082 } else { 5083 var slider = $(e).closest(".slides").lightSlider({ 5084 auto:true, 5085 loop:true, 5086 pauseOnHover:true, 5087 adaptiveHeight:true, 5088 item:1, 5089 slideMargin:0, 5090 easing: 'cubic-bezier(0.25, 0, 0.25, 1)', 5091 speed:600, 5092 pause:delay, 5093 controls:directionNav, 5094 pager:controlNav 5095 }); 5096 slider.refresh(); 5097 setTimeout(function(){ 5098 slider.play(); 5099 slider.goToNextSlide(); 5100 slider.goToPrevSlide(); 5101 slider.goToPrevSlide(); 5102 slider.refresh(); 5103 }, 700); 5104 } 5105 5106 }); 5107 5108 }); 5109 } 5110 5111 if( $('.side_float_banner .flipper').length > 0 ) { 5112 try { 5113 $('.side_float_banner .flipper').flipper(); 5114 } catch(err) { } 5115 } 5116 5117 if( $(".flexslider").find("img").length > 0 ) { 5118 $(".flexslider").find("img").trigger('appear'); 5119 } 5120 5121 if( ($("#maincontent").outerHeight(true)-150) > $('.sidebar .smart-menu').outerHeight(true) ){ 5122 $('.sidebar .smart-menu').scrollToFixed({ 5123 marginTop: $('#navbar-top-fixed').outerHeight(true) + 20, 5124 limit: function() { 5125 var limit = $('footer').offset().top - $(".content-bottom").outerHeight(true) - $('.sidebar .smart-menu').outerHeight(true) - 120; 5126 return limit; 5127 }, 5128 }); 5129 } 5130 5131 5132 $('[data-toggle="tooltip"]').tooltip(); 5133 5134 setTimeout(function(){ 5135 $(window).trigger('resize'); 5136 }, 300); 5137 5138 $(".flex-direction-nav").remove(); 5139 5140 adjustBoxHeights(); 5141 5142 5143 $("#menu-btn").show(); 5144 $("#menu-btn").addClass('animated flash'); 5145 5146 setTimeout(function(){ 5147 $("#mobile-navbar").removeAttr('style'); 5148 }, 1000); 5149 5150 5151 5152 5153 }); 5154 5155 queue.runQueue(); 5156 5157 (function(d, s, id) { 5158 var js, fjs = d.getElementsByTagName(s)[0]; 5159 if (d.getElementById(id)) return; 5160 js = d.createElement(s); js.id = id; 5161 js.src = "https://connect.facebook.net/zh_TW/sdk.js"; 5162 fjs.parentNode.insertBefore(js, fjs); 5163 }(document, 'script', 'facebook-jssdk')); 5164 5165 if (window.location.hash == '#_=_') { 5166 window.location.hash = ''; // for older browsers, leaves a # behind 5167 history.pushState('', document.title, window.location.pathname + window.location.search); 5168 } 5169 5170 } 5171 // Store subdomains count as same site; separate tenants on the platform domain do not 5172 function qdmIsSameSiteHost(host){ 5173 var site = location.hostname.toLowerCase(); 5174 host = (host || '').toLowerCase(); 5175 if (host === site) { 5176 return true; 5177 } 5178 // Keep in sync with Response::isSameSiteHref() in system/library/response.php 5179 if (/(^|\.)(qdm\.(tw|com\.tw|cloud)|myorganic\.org\.tw)$/.test(site)) { 5180 return false; 5181 } 5182 var apex = site.replace(/^www\./, ''); 5183 return host === apex || host.slice(-(apex.length + 1)) === '.' + apex; 5184 } 5185 function sanitizeTargetBlank(){ 5186 $('a[rel~=external]').prop('target', '_blank'); 5187 $('a[target="_blank"]').each(function(){ 5188 var a = $(this); 5189 if(!qdmIsSameSiteHost(this.hostname)){ 5190 var originalRel = (this.rel === undefined) ? '' : this.rel; 5191 var newRel = originalRel.split(" "); 5192 if (originalRel.toLowerCase().indexOf('noopener') === -1){ 5193 newRel.push('noopener'); 5194 } 5195 if (originalRel.toLowerCase().indexOf('noreferrer') === -1){ 5196 newRel.push('noreferrer'); 5197 } 5198 if (originalRel.toLowerCase().indexOf('nofollow') === -1){ 5199 newRel.push('nofollow'); 5200 } 5201 a.attr('rel', newRel.join(" ").trim() ); 5202 } 5203 }); 5204 } 5205 function create_mark(name) { 5206 if (window.performance.mark === undefined) { 5207 console.log("performance.mark Not supported"); 5208 return; 5209 } 5210 window.performance.mark(name); 5211 } 5212 function initCoreJS() { 5213 $LAB.setGlobalDefaults({AlwaysPreserveOrder:true}); 5214 jQuery.ajaxPrefilter(function(s) { 5215 if ( s.crossDomain ) { 5216 s.contents.script = false;
5217 } 5218 }); 5219 $(function() { $('body').removeClass('fade-out'); }); 5220 sanitizeTargetBlank(); 5221 var def_img_idx = 1; 5222 [].forEach.call(document.querySelectorAll('img[data-src]'), function(img) { 5223 if( def_img_idx <= 12 ) { 5224 if (img.getAttribute('data-src') === null) { } else if (img.getAttribute('data-src') === '') {} else { 5225 img.setAttribute('src', img.getAttribute('data-src')); 5226 img.onload = function() { 5227 img.removeAttribute('data-src'); 5228 if (img.style.opacity !== undefined) { 5229 img.style.opacity = 1; 5230 } 5231 }; 5232 } 5233 } 5234 def_img_idx++; 5235 }); 5236 if ( $('.slideshow .flexslider').length > 0 ) { 5237 $('.slideshow .flexslider').each(function(index, value) { 5238 var el = "#" + $(this).attr("id"); 5239 var full = $(this).data("full"); 5240 if(full){ 5241 $(this).find("img").css({'width' : '100%', 'height' : 'auto' }); 5242 $(this).closest("div.slideshow").appendTo('#content-top'); 5243 } 5244 }); 5245 } 5246 $LAB.script("https://cdnjs.cloudflare.com/ajax/libs/jquery.imagesloaded/5.0.0/imagesloaded.pkgd.min.js") 5247 .script("https://cdnjs.cloudflare.com/ajax/libs/is_js/0.9.0/is.min.js").wait(function(){ 5248 initDeferImages(); 5249 loadJS(); 5250 downloadJSAtOnload(); 5251 create_mark('mark_fully_loaded'); 5252 if( $('.wow').eq(0).length ) { 5253 getScript("https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js",function(){ 5254 new WOW().init(); 5255 }); 5256 } 5257 if( $('img[usemap]').eq(0).length ) { 5258 getScript("https://cdnjs.cloudflare.com/ajax/libs/jQuery-rwdImageMaps/1.6/jquery.rwdImageMaps.min.js",function(){ 5259 try { $('img[usemap]').rwdImageMaps(); } catch (e) { } 5260 }); 5261 } 5262 getScript("https://cdnjs.cloudflare.com/ajax/libs/data-layer-helper/0.1.0/data-layer-helper.min.js",function(){ }); 5263 5264 }); 5265 //230117 fix flipper hover 5266 if($(".grid-box, .product-row").find(".flipper").length){ 5267 $(".grid-box, .product-row").find(".flipper").hover(function(){ 5268 oldSrc = $(this).attr("src"); 5269 $(this).attr("src",$(this).attr("data-flipper")); 5270 },function(){ 5271 $(this).attr("src",oldSrc); 5272 }); 5273 } 5274 } 5275 5276 initCoreCSS(); 5277 setTimeout(function(){ 5278 initCoreJS(); 5279 $.getJSON( "index.php?route=account/account/get_user_track&token=" + (Math.floor(Math.random() * 999) + 100), function( data ) { 5280 if( data.user_id ) { ga_userId = data.user_id; } 5281 if( data.uuid ) { 5282 try { 5283 if ('localStorage' in window && window['localStorage'] !== null){ 5284 localStorage.removeItem("qdm_user_uuid"); 5285 localStorage.setItem("qdm_user_uuid", data.uuid); 5286 qdm_user_uuid = data.uuid; 5287 } 5288 } catch (e) {} 5289 } 5290 if( data.utm_source == "affiliates" ) { ga_utm_source = data.utm_source; } 5291 5292 }); 5293 var vidDefer = document.getElementsByTagName('iframe'); 5294 for (var i=0; i<vidDefer.length; i++) { 5295 if(vidDefer[i].getAttribute('src')) { 5296 vidDefer[i].setAttribute('data-src',vidDefer[i].getAttribute('src')); 5297 } 5298 } 5299 document.getElementsByTagName("body")[0].style.display = "block"; 5300 }, 60); 5301 5302 </script>
5302
5302<script> 5303 var lazy = []; 5304 function cleanLazy(){ 5305 lazy = Array.prototype.filter.call(lazy, function(l){ return l.getAttribute('data-lazy-src');}); 5306 } 5307 function setLazy(){ 5308 lazy = document.querySelectorAll('img[data-lazy-src]'); 5309 for(var i=0; i<lazy.length; i++){ 5310 if (lazy[i].getAttribute('data-lazy-src')){ 5311 lazy[i].src = lazy[i].getAttribute('data-lazy-src'); 5312 lazy[i].removeAttribute('data-lazy-src'); 5313 } 5314 if( i >= 3 ) break; 5315 } 5316 setTimeout(function(){ 5317 var elemDefer = document.getElementById("defer-load-spin"); 5318 if( elemDefer !=null ) elemDefer.remove(); 5319 }, 300); 5320 } 5321 function isInViewport(el){ 5322 var rect = el.getBoundingClientRect(); 5323 return ( 5324 rect.bottom >= 0 && 5325 rect.right >= 0 && 5326 rect.top <= ( (window.innerHeight + 1200) || (document.documentElement.clientHeight + 1200) ) && 5327 rect.left <= (window.innerWidth || document.documentElement.clientWidth) 5328 ); 5329 } 5330 function lazyLoad(){ 5331 lazy = document.querySelectorAll('img[data-lazy-src]'); 5332 for(var i=0; i<lazy.length; i++){ 5333 if(isInViewport(lazy[i])){ 5334 if (lazy[i].getAttribute('data-lazy-src')){ 5335 lazy[i].src = lazy[i].getAttribute('data-lazy-src'); 5336 lazy[i].removeAttribute('data-lazy-src'); 5337 } 5338 } 5339 } 5340 } 5341 function registerListener(event, func) { 5342 if (window.addEventListener) { 5343 window.addEventListener(event, func) 5344 } else { 5345 window.attachEvent('on' + event, func) 5346 } 5347 } 5348 registerListener('scroll', lazyLoad); 5349 registerListener('resize', lazyLoad); 5350 setLazy(); 5351 </script>
5351 </body> </html>
5351<script src="https://cdn.qdm.cloud/assets/js/backend_other.js?v=20260318"></script>
5351
5351<script> 5352 //2025.11.20 æ°å¢è²¨å°éç¥ 5353 const isLogged = 0; //ç»å ¥æª¢æ¥ 5354 const goods_arrival_notice_allow_guest_notification = 0; 5355 const goods_arrival_notice_sms_status = 0; 5356 (function() { 5357 var s = document.createElement('script'); 5358 s.async = true; 5359 s.src = 'https://base.qdm.cloud/qdm_base//catalog/view/theme/default/js/customer/product.js?t=' + new Date().getTime(); 5360 var before = document.scripts[document.scripts.length - 1]; 5361 before.parentNode.insertBefore(s, before.nextSibling); 5362 })(); 5363 document.head.innerHTML += '<link rel="stylesheet" type="text/css" href="https://cdn.qdm.cloud/assets/css/bs_utility.css?v=20260318">'; 5364 const elm_StockAlertBtn = document.querySelectorAll('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\'], .product-info input[type=\'checkbox\'], .product-info select,.cart input[name=\'promption_id\']'); 5365 elm_StockAlertBtn.forEach(element => { 5366 element.addEventListener('change', () => { 5367 showStockAlertBtn(0); 5368 }); 5369 }); 5370 5371 function showStockAlertBtn(show = 0) { 5372 handleResize(); 5373 const notifyArrivalBtns = document.querySelectorAll('.notifyArrival'); 5374 if (notifyArrivalBtns.length === 0) return; 5375 if (show == 1) { 5376 notifyArrivalBtns.forEach(btn => { 5377 btn.classList.remove('invisible'); 5378 }); 5379 document.querySelectorAll('#button-quick-checkout').forEach(element => { 5380 element.classList.add('d-none'); 5381 }); 5382 if (document.querySelector('#button-instant-checkout')) { 5383 document.querySelector('#button-instant-checkout').classList.add('d-none'); 5384 } 5385 if (document.querySelector('#button-cart')) { 5386 document.querySelectorAll('#button-cart').forEach(element => { 5387 element.classList.add('d-none'); 5388 }); 5389 } 5390 } else { 5391 notifyArrivalBtns.forEach(btn => { 5392 btn.classList.add('invisible'); 5393 }); 5394 document.querySelectorAll('#button-quick-checkout').forEach(element => { 5395 element.classList.remove('d-none'); 5396 }); 5397 if (document.querySelector('#button-instant-checkout')) { 5398 document.querySelector('#button-instant-checkout').classList.remove('d-none'); 5399 } 5400 if (document.querySelector('#button-cart')) { 5401 document.querySelectorAll('#button-cart').forEach(element => { 5402 element.classList.remove('d-none'); 5403 }); 5404 } 5405 5406 } 5407 }; 5408 //廿 5409 function debounce(func, delay) { 5410 let timeoutId; 5411 return (...args) => { 5412 clearTimeout(timeoutId); 5413 timeoutId = setTimeout(() => { 5414 func.apply(this, args); 5415 }, delay); 5416 }; 5417 } 5418 5419 function handleResize() { 5420 5421 5422 if (getDeviceType() == 'mobile' || getDeviceType() == 'tablet') { 5423 5424 const notifyArrivalBtns = document.querySelectorAll('.notifyArrival'); 5425 if (notifyArrivalBtns.length > 0) { 5426 notifyArrivalBtns.forEach(btn => { 5427 btn.classList.add('mobile'); //æ¹è® 貨å°ä»æ¬¾æé尺寸 5428 }); 5429 } 5430 if (document.querySelector('#button-quick-checkout')) { 5431 document.querySelectorAll('#button-quick-checkout').forEach(element => { 5432 element.classList.add('fix-btn-size'); 5433 }); 5434 } 5435 if (document.querySelector('#button-instant-checkout')) { 5436 document.querySelector('#button-instant-checkout').classList.add('fix-btn-size'); 5437 } 5438 if (document.querySelector('#button-cart')) { 5439 document.querySelectorAll('#button-cart').forEach(element => { 5440 element.classList.add('fix-btn-size'); 5441 }); 5442 } 5443 } else { 5444 5445 const notifyArrivalBtns = document.querySelectorAll('.notifyArrival'); 5446 if (notifyArrivalBtns.length > 0) { 5447 notifyArrivalBtns.forEach(btn => { 5448 btn.classList.remove('mobile'); 5449 }); 5450 } 5451 if (document.querySelector('#button-quick-checkout')) { 5452 document.querySelectorAll('#button-quick-checkout').forEach(element => { 5453 element.classList.remove('fix-btn-size'); 5454 }); 5455 } 5456 5457 if (document.querySelector('#button-instant-checkout')) { 5458 document.querySelector('#button-instant-checkout').classList.remove('fix-btn-size'); 5459 } 5460 if (document.querySelector('#button-cart')) { 5461 document.querySelectorAll('#button-cart').forEach(element => { 5462 element.classList.remove('fix-btn-size'); 5463 }); 5464 } 5465 } 5466 5467 } 5468 5469 function hasStockError(message) { 5470 return /庫å/.test(message); 5471 } 5472 5473 const debouncedHandleResize = debounce(handleResize, 250); // å»¶é² 250 æ¯«ç§ 5474 5475 // ç£è½ resize äºä»¶ï¼ä¸¦ä½¿ç¨å»æéçå½å¼ 5476 window.addEventListener('resize', debouncedHandleResize); 5477 window.addEventListener('ContentLoaded', handleResize()); 5478 5479 function getDeviceType() { 5480 const width = window.innerWidth; 5481 if (width <= 768) { 5482 return 'mobile'; 5483 } else if (width > 768 && width <= 1024) { 5484 return 'tablet'; 5485 } else { 5486 return 'desktop'; 5487 } 5488 } 5489 //è£ä¸: åçé¸é select 黿åï¼inputå¯ä»¥è¢«é¸ 5490 function enableDataSelectsClick() { 5491 5492 $(document).on('click', '[data-selects]', function(event) { 5493 try { 5494 5495 var targetId = $(this).attr('data-selects'); 5496 5497 var $radioInput = $('#' + targetId); 5498 if ($radioInput.length && $radioInput.attr('type') === 'radio') { 5499 $radioInput.trigger('click'); 5500 } else { 5501 // 妿æ¾ä¸å°ç®æ¨å ç´ æé¡åä¸ç¬¦ï¼ç¼åºè¦å 5502 console.warn('DataSelects 黿èçï¼æ¾ä¸å° ID çº ' + targetId + ' ç Radio Input æé¡åä¸ç¬¦ã'); 5503 } 5504 } catch (error) { 5505 console.error('DataSelects 黿èçæç¼çé¯èª¤:', error); 5506 } 5507 }); 5508 } 5509</script>
vendor: 1 bytes, line 5509
5509
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.