{"id":36,"date":"2025-09-16T12:10:32","date_gmt":"2025-09-16T12:10:32","guid":{"rendered":"https:\/\/www.biljardihuone.com\/?page_id=36"},"modified":"2025-10-18T21:37:02","modified_gmt":"2025-10-18T21:37:02","slug":"saannot-2","status":"publish","type":"page","link":"https:\/\/www.biljardihuone.com\/index.php\/saannot-2\/","title":{"rendered":"Biljarditilan s\u00e4\u00e4nn\u00f6t"},"content":{"rendered":"\n<figure class=\"wp-block-gallery has-nested-images columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full zoom-on-click\"><img loading=\"lazy\" decoding=\"async\" width=\"1587\" height=\"2245\" data-id=\"163\" src=\"https:\/\/www.biljardihuone.com\/wp-content\/uploads\/2025\/09\/saannot_viimeisin.png\" alt=\"\" class=\"wp-image-163\" srcset=\"https:\/\/www.biljardihuone.com\/wp-content\/uploads\/2025\/09\/saannot_viimeisin.png 1587w, https:\/\/www.biljardihuone.com\/wp-content\/uploads\/2025\/09\/saannot_viimeisin-212x300.png 212w, https:\/\/www.biljardihuone.com\/wp-content\/uploads\/2025\/09\/saannot_viimeisin-724x1024.png 724w, https:\/\/www.biljardihuone.com\/wp-content\/uploads\/2025\/09\/saannot_viimeisin-768x1086.png 768w, https:\/\/www.biljardihuone.com\/wp-content\/uploads\/2025\/09\/saannot_viimeisin-1086x1536.png 1086w, https:\/\/www.biljardihuone.com\/wp-content\/uploads\/2025\/09\/saannot_viimeisin-1448x2048.png 1448w\" sizes=\"auto, (max-width: 1587px) 100vw, 1587px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-style-rounded\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"2560\" data-id=\"306\" src=\"https:\/\/www.biljardihuone.com\/wp-content\/uploads\/2025\/10\/Pallokori-scaled.jpeg\" alt=\"\" class=\"wp-image-306\" srcset=\"https:\/\/www.biljardihuone.com\/wp-content\/uploads\/2025\/10\/Pallokori-scaled.jpeg 1920w, https:\/\/www.biljardihuone.com\/wp-content\/uploads\/2025\/10\/Pallokori-225x300.jpeg 225w, https:\/\/www.biljardihuone.com\/wp-content\/uploads\/2025\/10\/Pallokori-768x1024.jpeg 768w, https:\/\/www.biljardihuone.com\/wp-content\/uploads\/2025\/10\/Pallokori-1152x1536.jpeg 1152w, https:\/\/www.biljardihuone.com\/wp-content\/uploads\/2025\/10\/Pallokori-1536x2048.jpeg 1536w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/figure>\n<\/figure>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\"><\/figure>\n\n\n\n<script>\n(function () {\n  const selector = '.wp-block-gallery img, .blocks-gallery-grid img, .gallery img';\n\n  \/\/ Tee kaikista zoomattavia\n  function initZoomables() {\n    document.querySelectorAll(selector).forEach(img => img.classList.add('__zoomable'));\n  }\n\n  \/\/ Klikki-kuuntelija\n  document.addEventListener('click', function (e) {\n    const img = e.target.closest('img.__zoomable');\n    const active = document.querySelector('img.__zoomed');\n\n    if (img && img !== active) {\n      \/\/ Sulje mahdollinen aiempi zoom\n      if (active) active.classList.remove('__zoomed');\n      document.body.classList.add('__zoom-active');\n      img.classList.add('__zoomed');\n    } else {\n      \/\/ Klikkaus tyhj\u00e4\u00e4n tai samaan kuvaan -> poista zoom\n      if (active) active.classList.remove('__zoomed');\n      document.body.classList.remove('__zoom-active');\n    }\n  });\n\n  initZoomables();\n  setTimeout(initZoomables, 800); \/\/ varmistus jos galleria latautuu hitaasti\n})();\n<\/script>\n<script>\n(function () {\n  const selector = '.wp-block-gallery img, .blocks-gallery-grid img, .gallery img';\n  const MAX_SCALE = 2.2;       \/\/ suurin sallittu zoom\n  const MARGIN = 0.96;         \/\/ k\u00e4yt\u00e4 96% n\u00e4yt\u00f6st\u00e4\n\n  function initZoomables() {\n    document.querySelectorAll(selector).forEach(img => img.classList.add('__zoomable'));\n  }\n\n  function openZoom(img) {\n    \/\/ sulje mahdollinen aiempi\n    closeZoom();\n\n    \/\/ nykyinen koko sivulla (ennen zoomia)\n    const rect = img.getBoundingClientRect();\n    const vw = window.innerWidth;\n    const vh = window.innerHeight;\n\n    \/\/ skaalakerroin, jolla kuva mahtuisi 96%:iin n\u00e4yt\u00f6st\u00e4\n    const scaleToFit = Math.min((vw * MARGIN) \/ rect.width, (vh * MARGIN) \/ rect.height);\n\n    \/\/ rajoitetaan maksimiin\n    const scale = Math.min(scaleToFit, MAX_SCALE);\n\n    \/\/ asetetaan CSS-muuttuja k\u00e4ytt\u00f6\u00f6n ja avataan zoom\n    img.style.setProperty('--zoom-scale', scale.toFixed(3));\n    img.classList.add('__zoomed');\n    document.body.classList.add('__zoom-active');\n\n    \/\/ est\u00e4 mahdollinen linkki\/lightbox\n    const a = img.closest('a');\n    if (a) a.addEventListener('click', preventOnce, { once: true, capture: true });\n  }\n\n  function preventOnce(e){ e.preventDefault(); e.stopPropagation(); }\n\n  function closeZoom() {\n    const active = document.querySelector('img.__zoomed');\n    if (active) {\n      active.classList.remove('__zoomed');\n      active.style.removeProperty('--zoom-scale');\n    }\n    document.body.classList.remove('__zoom-active');\n  }\n\n  \/\/ delegoitu klikkaus: kuva avaa\/sulkee, muu sulkee\n  document.addEventListener('click', function (e) {\n    const img = e.target.closest('img.__zoomable');\n    const active = document.querySelector('img.__zoomed');\n\n    if (img && img !== active) {\n      openZoom(img);\n    } else if (img && active === img) {\n      closeZoom();\n    } else {\n      \/\/ klikattiin muualle\n      closeZoom();\n    }\n  }, { passive: false });\n\n  \/\/ Reagoidaan my\u00f6s orientaation ja koon muutoksiin\n  window.addEventListener('resize', function () {\n    const active = document.querySelector('img.__zoomed');\n    if (active) openZoom(active); \/\/ lasketaan skaala uudelleen\n  });\n\n  initZoomables();\n  setTimeout(initZoomables, 800); \/\/ jos galleria latautuu viiveell\u00e4\n})();\n<\/script>\n<style>\n\/* thumbnailit sivulla \u2013 ei pakkoa koskea n\u00e4ihin *\/\n.wp-block-gallery img, .blocks-gallery-grid img, .gallery img { cursor: zoom-in; touch-action: manipulation; }\n\n\/* kevyt lightbox *\/\n#tapzoom-backdrop{\n  position:fixed; inset:0; display:none; align-items:center; justify-content:center;\n  background: rgba(0,0,0,.55); z-index:99999; padding: 16px;\n}\n#tapzoom-backdrop.open{ display:flex; }\n\/* zoomattu kuva \u2013 aina keskelle, ei yli ruudun *\/\n#tapzoom-backdrop img{\n  max-width: 96vw;        \/* leveys ei yli ruudun *\/\n  max-height: 96svh;      \/* huomioi mobiilin osoitepalkit; fallback alla *\/\n  height:auto; width:auto; border-radius:8px; box-shadow:0 10px 40px rgba(0,0,0,.5);\n  cursor: zoom-out;\n}\n@supports not (height: 100svh){\n  #tapzoom-backdrop img{ max-height:96vh; } \/* fallback vanhemmille selaimille *\/\n}\n<\/style>\n\n<!-- lightboxin kontti (luodaan sivulle kerran) -->\n<div id=\"tapzoom-backdrop\" aria-hidden=\"true\" role=\"dialog\" tabindex=\"-1\">\n  <img alt=\"\">\n<\/div>\n\n<script>\n(function(){\n  const backdrop = document.getElementById('tapzoom-backdrop');\n  const bigImg   = backdrop.querySelector('img');\n  const SEL = '.wp-block-gallery img, .blocks-gallery-grid img, .gallery img, img.zoom-on-click';\n\n  \/\/ est\u00e4 mahdolliset lightbox-lis\u00e4osat avautumasta\n  function stop(e){ e.preventDefault(); e.stopPropagation(); }\n\n  \/\/ avaa\n  function openZoom(src){\n    bigImg.src = src;\n    backdrop.classList.add('open');\n    document.body.style.overflow = 'hidden';\n  }\n  \/\/ sulje\n  function closeZoom(){\n    backdrop.classList.remove('open');\n    document.body.style.overflow = '';\n    bigImg.src = '';\n  }\n\n  \/\/ kuuntele gallerian kuvia (pointer toimii sek\u00e4 kosketuksella ett\u00e4 hiirell\u00e4)\n  document.addEventListener('pointerup', function(e){\n    const img = e.target.closest(SEL);\n    if(!img) return;\n    \/\/ jos kuva linkitetty, est\u00e4 linkki\/lightbox vain t\u00e4ss\u00e4 klikiss\u00e4\n    const a = img.closest('a'); if(a){ stop(e); }\n    openZoom((a && a.href) ? a.href : img.currentSrc || img.src);\n  }, {passive:false});\n\n  \/\/ sulkeminen napauttamalla taustaa tai kuvaa, sek\u00e4 Esc\n  backdrop.addEventListener('pointerup', closeZoom, {passive:true});\n  document.addEventListener('keydown', e => { if(e.key==='Escape' && backdrop.classList.contains('open')) closeZoom(); });\n\n  \/\/ varmistus: jos sivulla on klikkauksen kaappaajia (lis\u00e4osat), pys\u00e4ytet\u00e4\u00e4n ne lightboxin ollessa auki\n  backdrop.addEventListener('click', stop, true);\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"unboxed","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-36","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.biljardihuone.com\/index.php\/wp-json\/wp\/v2\/pages\/36","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.biljardihuone.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.biljardihuone.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.biljardihuone.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.biljardihuone.com\/index.php\/wp-json\/wp\/v2\/comments?post=36"}],"version-history":[{"count":43,"href":"https:\/\/www.biljardihuone.com\/index.php\/wp-json\/wp\/v2\/pages\/36\/revisions"}],"predecessor-version":[{"id":588,"href":"https:\/\/www.biljardihuone.com\/index.php\/wp-json\/wp\/v2\/pages\/36\/revisions\/588"}],"wp:attachment":[{"href":"https:\/\/www.biljardihuone.com\/index.php\/wp-json\/wp\/v2\/media?parent=36"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}