diff --git a/bilder/Außenansicht-2-small.webp b/bilder/Außenansicht-2-small.webp new file mode 100644 index 0000000..29d2e6e Binary files /dev/null and b/bilder/Außenansicht-2-small.webp differ diff --git a/bilder/Außenansicht-2.webp b/bilder/Außenansicht-2.webp new file mode 100644 index 0000000..4213a2e Binary files /dev/null and b/bilder/Außenansicht-2.webp differ diff --git a/bilder/Bad-2-small.webp b/bilder/Bad-2-small.webp new file mode 100644 index 0000000..9579213 Binary files /dev/null and b/bilder/Bad-2-small.webp differ diff --git a/bilder/Bad-2.webp b/bilder/Bad-2.webp new file mode 100644 index 0000000..48648d0 Binary files /dev/null and b/bilder/Bad-2.webp differ diff --git a/bilder/Bad-3-small.webp b/bilder/Bad-3-small.webp new file mode 100644 index 0000000..699a67d Binary files /dev/null and b/bilder/Bad-3-small.webp differ diff --git a/bilder/Bad-3.webp b/bilder/Bad-3.webp new file mode 100644 index 0000000..31af324 Binary files /dev/null and b/bilder/Bad-3.webp differ diff --git a/bilder/Bad-4-small.webp b/bilder/Bad-4-small.webp new file mode 100644 index 0000000..9ae6198 Binary files /dev/null and b/bilder/Bad-4-small.webp differ diff --git a/bilder/Bad-4.webp b/bilder/Bad-4.webp new file mode 100644 index 0000000..39719f5 Binary files /dev/null and b/bilder/Bad-4.webp differ diff --git a/bilder/Bad-small.webp b/bilder/Bad-small.webp new file mode 100644 index 0000000..e22689f Binary files /dev/null and b/bilder/Bad-small.webp differ diff --git a/bilder/Bad.webp b/bilder/Bad.webp new file mode 100644 index 0000000..8ce0864 Binary files /dev/null and b/bilder/Bad.webp differ diff --git a/bilder/Kinderzimmer 2-small.webp b/bilder/Kinderzimmer 2-small.webp new file mode 100644 index 0000000..2f487ec Binary files /dev/null and b/bilder/Kinderzimmer 2-small.webp differ diff --git a/bilder/Kinderzimmer 2.webp b/bilder/Kinderzimmer 2.webp new file mode 100644 index 0000000..1e7e9b8 Binary files /dev/null and b/bilder/Kinderzimmer 2.webp differ diff --git a/bilder/Kinderzimmer 3-small.webp b/bilder/Kinderzimmer 3-small.webp new file mode 100644 index 0000000..19f5c0d Binary files /dev/null and b/bilder/Kinderzimmer 3-small.webp differ diff --git a/bilder/Kinderzimmer 3.webp b/bilder/Kinderzimmer 3.webp new file mode 100644 index 0000000..d568c2a Binary files /dev/null and b/bilder/Kinderzimmer 3.webp differ diff --git a/bilder/Kinderzimmer-small.webp b/bilder/Kinderzimmer-small.webp new file mode 100644 index 0000000..5de4539 Binary files /dev/null and b/bilder/Kinderzimmer-small.webp differ diff --git a/bilder/Kinderzimmer.webp b/bilder/Kinderzimmer.webp new file mode 100644 index 0000000..83c8cd5 Binary files /dev/null and b/bilder/Kinderzimmer.webp differ diff --git a/bilder/Küche 1-small.webp b/bilder/Küche 1-small.webp new file mode 100644 index 0000000..8a45949 Binary files /dev/null and b/bilder/Küche 1-small.webp differ diff --git a/bilder/Küche 1.webp b/bilder/Küche 1.webp new file mode 100644 index 0000000..5256e7c Binary files /dev/null and b/bilder/Küche 1.webp differ diff --git a/bilder/grundrisse/Dachboden unten 2-small.webp b/bilder/grundrisse/Dachboden unten 2-small.webp new file mode 100644 index 0000000..0d5bdfd Binary files /dev/null and b/bilder/grundrisse/Dachboden unten 2-small.webp differ diff --git a/bilder/grundrisse/Dachboden unten 2.webp b/bilder/grundrisse/Dachboden unten 2.webp new file mode 100644 index 0000000..5684231 Binary files /dev/null and b/bilder/grundrisse/Dachboden unten 2.webp differ diff --git a/bilder/grundrisse/Dachboden unten-small.webp b/bilder/grundrisse/Dachboden unten-small.webp new file mode 100644 index 0000000..b1b680d Binary files /dev/null and b/bilder/grundrisse/Dachboden unten-small.webp differ diff --git a/bilder/grundrisse/Dachboden unten.webp b/bilder/grundrisse/Dachboden unten.webp new file mode 100644 index 0000000..a1c0dd9 Binary files /dev/null and b/bilder/grundrisse/Dachboden unten.webp differ diff --git a/bilder/grundrisse/EG 3D-small.webp b/bilder/grundrisse/EG 3D-small.webp new file mode 100644 index 0000000..b4b8bab Binary files /dev/null and b/bilder/grundrisse/EG 3D-small.webp differ diff --git a/bilder/grundrisse/EG 3D.webp b/bilder/grundrisse/EG 3D.webp new file mode 100644 index 0000000..b8671b1 Binary files /dev/null and b/bilder/grundrisse/EG 3D.webp differ diff --git a/bilder/grundrisse/EG-small.webp b/bilder/grundrisse/EG-small.webp new file mode 100644 index 0000000..35320e6 Binary files /dev/null and b/bilder/grundrisse/EG-small.webp differ diff --git a/bilder/grundrisse/EG.webp b/bilder/grundrisse/EG.webp new file mode 100644 index 0000000..c2642ae Binary files /dev/null and b/bilder/grundrisse/EG.webp differ diff --git a/bilder/grundrisse/OG 1 2-small.webp b/bilder/grundrisse/OG 1 2-small.webp new file mode 100644 index 0000000..0bbff80 Binary files /dev/null and b/bilder/grundrisse/OG 1 2-small.webp differ diff --git a/bilder/grundrisse/OG 1 2.webp b/bilder/grundrisse/OG 1 2.webp new file mode 100644 index 0000000..e21d8bd Binary files /dev/null and b/bilder/grundrisse/OG 1 2.webp differ diff --git a/bilder/grundrisse/OG 1 3D-small.webp b/bilder/grundrisse/OG 1 3D-small.webp new file mode 100644 index 0000000..80e60df Binary files /dev/null and b/bilder/grundrisse/OG 1 3D-small.webp differ diff --git a/bilder/grundrisse/OG 1 3D.webp b/bilder/grundrisse/OG 1 3D.webp new file mode 100644 index 0000000..d06e580 Binary files /dev/null and b/bilder/grundrisse/OG 1 3D.webp differ diff --git a/bilder/grundrisse/OG 2 3D-small.webp b/bilder/grundrisse/OG 2 3D-small.webp new file mode 100644 index 0000000..bcbb999 Binary files /dev/null and b/bilder/grundrisse/OG 2 3D-small.webp differ diff --git a/bilder/grundrisse/OG 2 3D.webp b/bilder/grundrisse/OG 2 3D.webp new file mode 100644 index 0000000..91f046b Binary files /dev/null and b/bilder/grundrisse/OG 2 3D.webp differ diff --git a/bilder/grundrisse/OG 2 grundriss-small.webp b/bilder/grundrisse/OG 2 grundriss-small.webp new file mode 100644 index 0000000..0ae42bb Binary files /dev/null and b/bilder/grundrisse/OG 2 grundriss-small.webp differ diff --git a/bilder/grundrisse/OG 2 grundriss.webp b/bilder/grundrisse/OG 2 grundriss.webp new file mode 100644 index 0000000..f8f93a4 Binary files /dev/null and b/bilder/grundrisse/OG 2 grundriss.webp differ diff --git a/bilder/kinderzimmer 2 2-small.webp b/bilder/kinderzimmer 2 2-small.webp new file mode 100644 index 0000000..a9ab76c Binary files /dev/null and b/bilder/kinderzimmer 2 2-small.webp differ diff --git a/bilder/kinderzimmer 2 2.webp b/bilder/kinderzimmer 2 2.webp new file mode 100644 index 0000000..6b50e6e Binary files /dev/null and b/bilder/kinderzimmer 2 2.webp differ diff --git a/bilder/schlafzimmer-small.webp b/bilder/schlafzimmer-small.webp new file mode 100644 index 0000000..a5abc3b Binary files /dev/null and b/bilder/schlafzimmer-small.webp differ diff --git a/bilder/schlafzimmer.webp b/bilder/schlafzimmer.webp new file mode 100644 index 0000000..dab1e4e Binary files /dev/null and b/bilder/schlafzimmer.webp differ diff --git a/bilder/wohnzimmer2-small.webp b/bilder/wohnzimmer2-small.webp new file mode 100644 index 0000000..dbd9af0 Binary files /dev/null and b/bilder/wohnzimmer2-small.webp differ diff --git a/bilder/wohnzimmer2.webp b/bilder/wohnzimmer2.webp new file mode 100644 index 0000000..efe0144 Binary files /dev/null and b/bilder/wohnzimmer2.webp differ diff --git a/index.php b/index.php index 7c2b817..93ef33f 100644 --- a/index.php +++ b/index.php @@ -210,7 +210,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
@@ -283,7 +283,10 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
- Wohnzimmer + + + Wohnzimmer +
Wohnzimmer · 42,6 m²
@@ -298,55 +301,88 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
-
- Außenansicht +
+ + + Außenansicht + Außenansicht
-
- Wohnzimmer +
+ + + Wohnzimmer + Wohnzimmer · 42,6 m²
-
- Küche +
+ + + Küche + Küche · 18,4 m²
-
- Schlafzimmer +
+ + + Schlafzimmer + Schlafzimmer · 18 m²
-
- Badezimmer +
+ + + Badezimmer + Badezimmer · 9,8 m²
-
- Kinderzimmer 1 +
+ + + Kinderzimmer 1 + Kinderzimmer 1 · 21,7 m²
-
- Kinderzimmer 2 +
+ + + Kinderzimmer 2 + Kinderzimmer 2 · 15,7 m²
-
- Kinderzimmer Detail +
+ + + Kinderzimmer Detail + Kinderzimmer Detail
-
- Kinderzimmer 3 +
+ + + Kinderzimmer 3 + Gästezimmer · 11,5 m²
-
- Wohnbereich Detail 1 +
+ + + Wohnbereich Detail 1 + Wohnbereich
-
- Wohnbereich Detail 2 +
+ + + Wohnbereich Detail 2 + Wohnbereich Detail
-
- Wohnbereich Detail 3 +
+ + + Wohnbereich Detail 3 + Hausansicht
@@ -392,16 +428,24 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
- Grundriss Erdgeschoss - Grundriss Erdgeschoss + + + Grundriss Erdgeschoss + + + + Grundriss Erdgeschoss +
@@ -441,16 +485,24 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
- Grundriss 1. Obergeschoss - Grundriss 1. Obergeschoss + + + Grundriss 1. Obergeschoss + + + + Grundriss 1. Obergeschoss +
@@ -490,16 +542,24 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
- Grundriss 2. Obergeschoss (1) - Grundriss 2. Obergeschoss (1) + + + Grundriss 2. Obergeschoss (1) + + + + Grundriss 2. Obergeschoss (1) +
@@ -527,16 +587,24 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
- Grundriss Dachboden - Grundriss Dachboden + + + Grundriss Dachboden + + + + Grundriss Dachboden +
diff --git a/js/haus-schleusingen.js b/js/haus-schleusingen.js index 492e556..76b690e 100644 --- a/js/haus-schleusingen.js +++ b/js/haus-schleusingen.js @@ -46,6 +46,11 @@ $(function () { // Lightbox – gallery grid items $(document).on("click", ".grid-item", function () { var src = $(this).data("img") || $(this).find("img").attr("src"); + $("#lightboxImg").on("error", function () { + // WebP fallback: try original format + var fallback = src.replace(/\.webp$/, src.endsWith('.webp') ? '.png' : '.jpg'); + if ($(this).attr('src') !== fallback) $(this).attr('src', fallback); + }); $("#lightboxImg").attr("src", src); $("#lightbox").addClass("open"); $("body").css("overflow", "hidden"); @@ -54,6 +59,10 @@ $(function () { // Lightbox – floor plan images in Raumaufteilung $(document).on("click", ".floor-plan img[data-img]", function () { var src = $(this).data("img"); + $("#lightboxImg").on("error", function () { + var fallback = src.replace(/\.webp$/, '.png'); + if ($(this).attr('src') !== fallback) $(this).attr('src', fallback); + }); $("#lightboxImg").attr("src", src); $("#lightbox").addClass("open"); $("body").css("overflow", "hidden"); diff --git a/js/masonry.pkgd.min.js b/js/masonry.pkgd.min.js deleted file mode 100644 index 53386ae..0000000 --- a/js/masonry.pkgd.min.js +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Masonry PACKAGED v4.2.2 - * Cascading grid layout library - * https://masonry.desandro.com - * MIT License - * by David DeSandro - */ - -!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,r,a){function h(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var d=u[e];if(!d||"_"==e.charAt(0))return void s(r+" is not a valid method");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],o=0;oe;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s=200==Math.round(t(o.width)),r.isBoxSizeOuter=s,i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;is?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}); \ No newline at end of file diff --git a/nginx.conf b/nginx.conf index 4f75c83..b82c87a 100644 --- a/nginx.conf +++ b/nginx.conf @@ -5,7 +5,20 @@ server { root /usr/share/nginx/html; index haus-schleusingen.html; + # Gzip aktivieren + gzip on; + gzip_types text/css application/javascript image/svg+xml application/json text/xml; + gzip_min_length 256; + gzip_vary on; + location / { try_files $uri $uri/ /haus-schleusingen.html; } -} \ No newline at end of file + + # Lange Cache-Dauer für Bilder und statische Assets + location ~* \.(jpg|jpeg|png|webp|gif|ico|svg|css|js|woff2?)$ { + expires 30d; + add_header Cache-Control "public, immutable"; + access_log off; + } +}