1// cache: 2026-09-04 12:20:56 2const userAgent = window.navigator.userAgent.toLowerCase(); 3function isIpadScreen(){ 4 if (window.screen.height / window.screen.width == 1024 / 768){ 5 if (window.devicePixelRatio == 1){ 6 return true;// iPad, iPad 2, iPad Mini 7 }else{ 8 return true;// iPad 3, 4, 5, Mini 2, Mini 3, Mini 4, Air, Air 2, Pro 9.7 9 } 10 }else if (window.screen.height / window.screen.width == 1112 / 834){ 11 return true;// iPad Pro 10.5 12 }else if (window.screen.height / window.screen.width == 1366 / 1024){ 13 return true;// iPad Pro 12.9, Pro 12.9 (2nd Gen) 14 }else{ 15 return false; 16 } 17} 18function isChrome(){ 19 return (userAgent).match('crios') || /Google Inc/.test(navigator.vendor) || (!!window.chrome); 20} 21function isSafari(){ 22 return /safari/.test(userAgent); 23} 24function isIosDevice(){ 25 return /iphone|ipod|ipad/.test(userAgent) || (userAgent).indexOf('mac os x') != -1; 26} 27function isLaunchedInstalledA2H(){ 28 return (navigator.standalone || window.matchMedia('(display-mode: standalone)').matches); 29} 30function isChromeBrowser(){ 31 return /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor); 32} 33function touchMoveSetup(position = 'up',el = false,callback = false){ 34 if(!el) return false; 35 let _el; 36 _el = document.querySelector(el); 37 if(!_el) return false; 38 let tms; // touch move distance 39 _el.addEventListener("touchstart", (e)=>{ 40 tms = e.touches[0].clientY; 41 }, false); 42 _el.addEventListener("touchend", (e)=>{ 43 let tme = e.changedTouches[0].clientY; 44 if(typeof callback === 'function'){ 45 if((tms - tme) > 12){ 46 if(position === 'up'){ 47 callback(); 48 } 49 }else{ 50 if(position === 'down'){ 51 callback(); 52 } 53 } 54 } 55 }, false); 56} 57 58//--- shortcode ---// 59 60$(document).ready(function() { 61 $('.snip-image_slider').each(function(i, obj) { 62 let no_paginate = $(obj).data('no_paginate'); 63 let param = { 64 calculateHeight: true, 65 autoplay: { 66 delay: $(obj).data('delay') * 1000, 67 disableOnInteraction: false, 68 }, 69 spaceBetween: 20, 70 loop: true, 71 pagination: { 72 el: ".swiper-pagination", 73 clickable: true, 74 }, 75 navigation: { 76 nextEl: ".swiper-button-next", 77 prevEl: ".swiper-button-prev", 78 }, 79 }; 80 if(no_paginate) param.pagination = false; 81 new Swiper(obj, param); 82 }); 83});
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.