{"id":3921,"date":"2021-10-28T06:47:50","date_gmt":"2021-10-28T05:47:50","guid":{"rendered":"https:\/\/bestatterportal.ch\/lightbox\/"},"modified":"2023-08-29T15:08:52","modified_gmt":"2023-08-29T14:08:52","slug":"lightbox","status":"publish","type":"page","link":"https:\/\/bestatter.ch\/it\/lightbox\/","title":{"rendered":"Lightbox"},"content":{"rendered":"                       <div class=\"row img-container\">\n                         \t\t\t\t\t\t  <div class=\"my-gallery-1534276567\" itemscope itemtype=\"http:\/\/schema.org\/ImageGallery\" >\n    \t\t\t\t\t\t  <figure class=\"img-1-1 col\" itemprop=\"associatedMedia\" itemtype=\"http:\/\/schema.org\/ImageObject\"  style=\"margin: 0;\">\n                            <a href=\"https:\/\/bestatter.ch\/wp-content\/uploads\/2021\/07\/imgonline-com-ua-CompressToSize-vMIs72IVTTEpsWl7.jpg\" itemprop=\"contentUrl\" data-size=\"2048x2048\">\n                             <img decoding=\"async\" src=\"https:\/\/bestatter.ch\/wp-content\/uploads\/2021\/07\/imgonline-com-ua-CompressToSize-vMIs72IVTTEpsWl7-150x150.jpg\" itemprop=\"thumbnail\" alt=\"Schweiz. Verband der Bestattungsdienste Un uomo e una donna in cucina preparano il cibo.\" \/>\n                            <\/a>\n                         <\/figure> \n\t\t\t\t\t\t\t\t  \n               \t\t\t\t\t\t  <figure class=\"img-1-1 col\" itemprop=\"associatedMedia\" itemtype=\"http:\/\/schema.org\/ImageObject\"  style=\"margin: 0;\">\n                            <a href=\"https:\/\/bestatter.ch\/wp-content\/uploads\/2021\/07\/imgonline-com-ua-CompressToSize-1F0qxs52uTgUX.jpg\" itemprop=\"contentUrl\" data-size=\"2048x2048\">\n                             <img decoding=\"async\" src=\"https:\/\/bestatter.ch\/wp-content\/uploads\/2021\/07\/imgonline-com-ua-CompressToSize-1F0qxs52uTgUX-150x150.jpg\" itemprop=\"thumbnail\" alt=\"Schweiz. Verband der Bestattungsdienste Una statua in legno di una donna davanti a un albero.\" \/>\n                            <\/a>\n                         <\/figure> \n\t\t\t\t\t\t\t\t  \n               \t\t\t\t\t\t  <figure class=\"img-1-1 col\" itemprop=\"associatedMedia\" itemtype=\"http:\/\/schema.org\/ImageObject\"  style=\"margin: 0;\">\n                            <a href=\"https:\/\/bestatter.ch\/wp-content\/uploads\/2021\/07\/imgonline-com-ua-CompressToSize-IFhuML8SrO.jpg\" itemprop=\"contentUrl\" data-size=\"2048x2048\">\n                             <img decoding=\"async\" src=\"https:\/\/bestatter.ch\/wp-content\/uploads\/2021\/07\/imgonline-com-ua-CompressToSize-IFhuML8SrO-150x150.jpg\" itemprop=\"thumbnail\" alt=\"Schweiz. Verband der Bestattungsdienste Un uomo \u00e8 in piedi accanto a una piscina nella giungla.\" \/>\n                            <\/a>\n                         <\/figure> \n\t\t\t\t\t\t\t\t  \n               \t\t\t\t\t\t  <figure class=\"img-1-1 col\" itemprop=\"associatedMedia\" itemtype=\"http:\/\/schema.org\/ImageObject\"  style=\"margin: 0;\">\n                            <a href=\"https:\/\/bestatter.ch\/wp-content\/uploads\/2021\/07\/New-Project-30.jpg\" itemprop=\"contentUrl\" data-size=\"2048x2048\">\n                             <img decoding=\"async\" src=\"https:\/\/bestatter.ch\/wp-content\/uploads\/2021\/07\/New-Project-30-150x150.jpg\" itemprop=\"thumbnail\" alt=\"Schweiz. Verband der Bestattungsdienste Una donna \u00e8 seduta alla scrivania davanti a una grande finestra.\" \/>\n                            <\/a>\n                         <\/figure> \n\t\t\t\t\t\t\t\t  \n               \t\t\t\t\t\t  <figure class=\"img-1-1 col\" itemprop=\"associatedMedia\" itemtype=\"http:\/\/schema.org\/ImageObject\"  style=\"margin: 0;\">\n                            <a href=\"https:\/\/bestatter.ch\/wp-content\/uploads\/2021\/09\/dummy2-2048x1367.jpg\" itemprop=\"contentUrl\" data-size=\"2048x2048\">\n                             <img decoding=\"async\" src=\"https:\/\/bestatter.ch\/wp-content\/uploads\/2021\/09\/dummy2-150x150.jpg\" itemprop=\"thumbnail\" alt=\"Schweiz. Verband der Bestattungsdienste Un&#039;auto sportiva nera Audi R8 su una strada cittadina al crepuscolo.\" \/>\n                            <\/a>\n                         <\/figure> \n\t\t\t\t\t\t\t\t  \n              \t\t\t\t\t\t\t                        <\/div>\n\t\t\t\t\t\t   \n\t\t\t\t\t\t   \n\t\t\t\t\t\t   <script>\n\/\/ for light box\n var initPhotoSwipeFromDOM = function(gallerySelector) {\n\n    \/\/ parse slide data (url, title, size ...) from DOM elements \n    \/\/ (children of gallerySelector)\n    var parseThumbnailElements = function(el) {\n        var thumbElements = el.childNodes,\n            numNodes = thumbElements.length,\n            items = [],\n            figureEl,\n            linkEl,\n            size,\n            item;\n\n        for(var i = 0; i < numNodes; i++) {\n\n            figureEl = thumbElements[i]; \/\/ <figure> element\n\n            \/\/ include only element nodes \n            if(figureEl.nodeType !== 1) {\n                continue;\n            }\n\n            linkEl = figureEl.children[0]; \/\/ <a> element\n\n            size = linkEl.getAttribute('data-size').split('x');\n\n            \/\/ create slide object\n            item = {\n                src: linkEl.getAttribute('href'),\n                w: parseInt(size[0], 10),\n                h: parseInt(size[1], 10)\n            };\n\n\n\n            if(figureEl.children.length > 1) {\n                \/\/ <figcaption> content\n                item.title = figureEl.children[1].innerHTML; \n            }\n\n            if(linkEl.children.length > 0) {\n                \/\/ <img> thumbnail element, retrieving thumbnail url\n                item.msrc = linkEl.children[0].getAttribute('src');\n            } \n\n            item.el = figureEl; \/\/ save link to element for getThumbBoundsFn\n            items.push(item);\n        }\n\n        return items;\n    };\n\n    \/\/ find nearest parent element\n    var closest = function closest(el, fn) {\n        return el && ( fn(el) ? el : closest(el.parentNode, fn) );\n    };\n\n    \/\/ triggers when user clicks on thumbnail\n    var onThumbnailsClick = function(e) {\n        e = e || window.event;\n        e.preventDefault ? e.preventDefault() : e.returnValue = false;\n\n        var eTarget = e.target || e.srcElement;\n\n        \/\/ find root element of slide\n        var clickedListItem = closest(eTarget, function(el) {\n            return (el.tagName && el.tagName.toUpperCase() === 'FIGURE');\n        });\n\n        if(!clickedListItem) {\n            return;\n        }\n\n        \/\/ find index of clicked item by looping through all child nodes\n        \/\/ alternatively, you may define index via data- attribute\n        var clickedGallery = clickedListItem.parentNode,\n            childNodes = clickedListItem.parentNode.childNodes,\n            numChildNodes = childNodes.length,\n            nodeIndex = 0,\n            index;\n\n        for (var i = 0; i < numChildNodes; i++) {\n            if(childNodes[i].nodeType !== 1) { \n                continue; \n            }\n\n            if(childNodes[i] === clickedListItem) {\n                index = nodeIndex;\n                break;\n            }\n            nodeIndex++;\n        }\n\n\n\n        if(index >= 0) {\n            \/\/ open PhotoSwipe if valid index found\n            openPhotoSwipe( index, clickedGallery );\n        }\n        return false;\n    };\n\n    \/\/ parse picture index and gallery index from URL (#&pid=1&gid=2)\n    var photoswipeParseHash = function() {\n        var hash = window.location.hash.substring(1),\n        params = {};\n\n        if(hash.length < 5) {\n            return params;\n        }\n\n        var vars = hash.split('&#038;');\n        for (var i = 0; i < vars.length; i++) {\n            if(!vars[i]) {\n                continue;\n            }\n            var pair = vars[i].split('=');  \n            if(pair.length < 2) {\n                continue;\n            }           \n            params[pair[0]] = pair[1];\n        }\n\n        if(params.gid) {\n            params.gid = parseInt(params.gid, 10);\n        }\n\n        return params;\n    };\n\n    var openPhotoSwipe = function(index, galleryElement, disableAnimation, fromURL) {\n        var pswpElement = document.querySelectorAll('.pswp')[0],\n            gallery,\n            options,\n            items;\n\n        items = parseThumbnailElements(galleryElement);\n\n        \/\/ define options (if needed)\n        options = {\n\n            \/\/ define gallery index (for URL)\n            galleryUID: galleryElement.getAttribute('data-pswp-uid'),\n\n            getThumbBoundsFn: function(index) {\n                \/\/ See Options -> getThumbBoundsFn section of documentation for more info\n                var thumbnail = items[index].el.getElementsByTagName('img')[0], \/\/ find thumbnail\n                    pageYScroll = window.pageYOffset || document.documentElement.scrollTop,\n                    rect = thumbnail.getBoundingClientRect(); \n\n                return {x:rect.left, y:rect.top + pageYScroll, w:rect.width};\n            }\n\n        };\n\n        \/\/ PhotoSwipe opened from URL\n        if(fromURL) {\n            if(options.galleryPIDs) {\n                \/\/ parse real index when custom PIDs are used \n                \/\/ http:\/\/photoswipe.com\/documentation\/faq.html#custom-pid-in-url\n                for(var j = 0; j < items.length; j++) {\n                    if(items[j].pid == index) {\n                        options.index = j;\n                        break;\n                    }\n                }\n            } else {\n                \/\/ in URL indexes start from 1\n                options.index = parseInt(index, 10) - 1;\n            }\n        } else {\n            options.index = parseInt(index, 10);\n        }\n\n        \/\/ exit if index not found\n        if( isNaN(options.index) ) {\n            return;\n        }\n\n        if(disableAnimation) {\n            options.showAnimationDuration = 0;\n        }\n\n        \/\/ Pass data to PhotoSwipe and initialize it\n        gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options);\n        gallery.init();\n    };\n\n    \/\/ loop through all gallery elements and bind events\n    var galleryElements = document.querySelectorAll( gallerySelector );\n\n    for(var i = 0, l = galleryElements.length; i < l; i++) {\n        galleryElements[i].setAttribute('data-pswp-uid', i+1);\n        galleryElements[i].onclick = onThumbnailsClick;\n    }\n\n    \/\/ Parse URL and open gallery if it contains #&#038;pid=3&#038;gid=1\n    var hashData = photoswipeParseHash();\n    if(hashData.pid) {\n\t\tif(hashData.gid) {\n        openPhotoSwipe( hashData.pid ,  galleryElements[ hashData.gid - 1 ], true, true );\n\t\t}\n    }\n};\n\n\/\/ execute above function\ninitPhotoSwipeFromDOM('.my-gallery-1534276567');\n<\/script>\n\t\t\t\t\t\t   \n        \n                     \n                    \n                    <\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":6,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"ep_latitude":0,"ep_longitude":0,"ep_address":"","ep_exclude_from_search":false,"_vp_format_video_url":"","_vp_image_focal_point":[],"footnotes":""},"class_list":["post-3921","page","type-page","status-publish","hentry"],"acf":{"font":"","background_shape":"type3"},"_links":{"self":[{"href":"https:\/\/bestatter.ch\/it\/wp-json\/wp\/v2\/pages\/3921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bestatter.ch\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bestatter.ch\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bestatter.ch\/it\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/bestatter.ch\/it\/wp-json\/wp\/v2\/comments?post=3921"}],"version-history":[{"count":0,"href":"https:\/\/bestatter.ch\/it\/wp-json\/wp\/v2\/pages\/3921\/revisions"}],"wp:attachment":[{"href":"https:\/\/bestatter.ch\/it\/wp-json\/wp\/v2\/media?parent=3921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}