<?xml version="1.0" encoding="utf-8"?><rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="2.0"><channel><description>zum Wohle der Nutzer und Vorteil der Eigentümer.</description><item><description>





&lt;div class="zpColumnItem" &gt;
	&lt;div id="a2407" data-article-id="2407" data-zpleid="2407" 
 class="articlearea zpwSlider zp13sliderWidget mobilecutoff mobilecaptionbelow burns zpBreakout captionmiddle defaultbg topslider" 
	
	&gt;
	

	
	&lt;div class="zp13slider-container"&gt;
		&lt;ul class="zp13slider"&gt;
		
		
			&lt;li class="zp13slider-active-slide"&gt;
				
				
					&lt;img class="zpfocal" src="https://www.bbm.haus/media/images/0c3c48b644c54b648f1ff9db02a37364-large.jpg" data-focus-x="50" data-focus-y="50" data-image-w="1280" data-image-h="400" width="1280" height="400" alt="" style="border-radius: 0;" /&gt;
				
				
				
					&lt;div class="zp13slider-caption" style=" text-shadow: 1px 1px 0 #000000;"&gt;
						
							&lt;h2&gt;Damit Ihr Zuhause zur Wohlfühloase wird!&lt;/h2&gt;
						
						&lt;p&gt;Wir wollen, dass SIE das beste&amp;nbsp;Haus bekommen.&lt;/p&gt;
					&lt;/div&gt;
				
				
			&lt;/li&gt;

		
	&lt;/ul&gt;
  &lt;/div&gt;

	&lt;/div&gt;
&lt;/div&gt;





	&lt;script&gt;
		$z(document).ready(function() {
			var useCssAnimation = false;
			
			var autoplay = 1;
			if ( $z("body").hasClass("zpreducemotion") &amp;&amp; 'fade' !== 'fade' ){ // don't allow moving animations
				autoplay = false;
			}
			var directionNav = false;
			
			// handle focus point
			
			function handlefocal(){
				var minScreenWidth = 640; // breakpoint mobil
		
				if ( $z('[data-article-id="2407"]').hasClass("mobilecutoff") &amp;&amp; $z(document).width() &gt; minScreenWidth &amp;&amp; !$z('[data-article-id="2407"]').hasClass("desktopcutoff") ){
					$z('img.zpfocal').css("object-position", "");
					return;
				}
		
				$z('img.zpfocal').each(function(){
					var that = $z(this);
					// math taken from https://css-tricks.com/focusing-background-image-precise-location-percentages/
					iw = that.width();  								// bounding box width of scaled responsive image
					ih = that.height(); 								// bounding box height of scaled responsive image
					inw =  parseInt(that.attr("data-image-w")) || 0; 	// bgimage original width
					inh =  parseInt(that.attr("data-image-h")) || 0; 	// bgimage original height
					ifx =  parseInt(that.attr("data-focus-x")) || 50;	// desired focus point X as percentage from original image 
					ify =  parseInt(that.attr("data-focus-y")) || 50;	// desired focus point X as percentage from original image 

					/*
						Da wir in diesem Anwendungsfall ausschließlich "object-fit: cover" nutzen, wird ein Bild
						grundsätzlich nur rechts/links ODER oben/unten beschnitten. Daher ermitteln wir zunächst das Seitenverhältnis
						um dann den entsprechenden Skalierungsfaktor basierend auf Breite oder Höhe zu ermitteln. 
					*/
					
					scaleH = ih / inh;
					zW = parseFloat( (inw * scaleH) / iw ); 				// horizontal factor for focus as bg-position  
					bgx = ( (ifx - 50) * zW/(zW-1) + 50 );		

					scaleW = iw / inw;
					zH = parseFloat( (inh * scaleW) / ih ); 				// vertical factor for focus as bg-position  
					bgy = ( (ify - 50) * zH/(zH-1) + 50 )
					
					//console.log("ifx: " + ifx  + " / ify: " + ify + " / scaleH: " + scaleH + "/ scaleW: " + scaleW + " / zW: " + zW + " / zH: " + zH + " / bgx = " + bgx + " / bgy: " + bgy + " / this.width(): "+ that.width() );
			
					is = this.src + ":\n";
			
					// auf min. 0 und max. 100 limitieren
					scaledFocusX = parseInt(bgx);
					if ( scaledFocusX &gt; 100 ){
						scaledFocusX = 100;
					}
					if ( scaledFocusX &lt; 0 ){
						scaledFocusX = 0;
					}
					scaledFocusY = parseInt(bgy);
					if ( scaledFocusY &gt; 100 ){
						scaledFocusY = 100;
					}
					if ( scaledFocusY &lt; 0 ){
						scaledFocusY = 0;
					}
			
					that.css("object-position", scaledFocusX + "% " + scaledFocusY + "%");
				});
			}
			
			// dynamically set controls position. Needed when caption-position is "below"
			function placeControls(el){
				var currentSlide = el.data('flexslider').currentSlide;
				var imageHeight = el.find(".zp13slider &gt; li.zp13slider-active-slide img").first().height();
								
				if ( el.parent().hasClass("captionbelow") || (el.parent().hasClass("mobilecaptionbelow") &amp;&amp; $z(document).width() &lt;= 640) ){
					// if caption is below, we need js to vertically center the nav buttons as the container is image-height+cption-height and 
					// positioning via css doesn't work as usual
					// debug.log("Dirction Nav position set for: ", el);
					el.find(".zp13slider-direction-nav").css("top", imageHeight/2);
					el.find(".zp13slider-control-nav").css("bottom", "auto").css("top", imageHeight-29);
				}
				else{
					el.find(".zp13slider-direction-nav").css("top", "");
					el.find(".zp13slider-control-nav").css("bottom", "").css("top", "");
				}
			}
			
			// init flexslider after 1st image has loaded, so have dimensions as quickly as possible without having to wait too long on window loaded or such and can start right with doc ready
			$z('[data-article-id="2407"] ul.zp13slider li img').first().one("load", function(){
				$z('[data-article-id="2407"] .zp13slider-container').flexslider({
					useCSS: useCssAnimation,
					touch: true,
					itemMargin: 0,
					animation: 'fade',
					animationSpeed: 3000,
					namespace: 'zp13slider-',
					selector: '.zp13slider &gt; li',
					controlsContainer: '[data-article-id="2407"].zp13sliderWidget .zp13slider-container',
					multipleKeyboard: true,
					slideshow: autoplay,
					slideshowSpeed: 5000,
					directionNav: false,
					controlNav: true,
					randomize: false,
					
					pauseOnHover: false,
					pauseOnAction: false,
					smoothHeight: false,
					start: function(el){
						focalImages();
						$z('[data-article-id="2407"] .zp13slider-container').addClass('zpstarted');
						
						
						placeControls(el);
						
					},
					
					after: function(el){
						placeControls(el)
					},
					
					prevText: "zur&amp;#252;ck",
					nextText: "weiter"
				});
			}).each(function() {
				if(this.complete) {
					//debug.log("Slider trigger load");
					$z(this).trigger('load');
				}
			}); // .each() is to work around a browser bugs which don't fire load() for cached images http://stackoverflow.com/a/3877079
		
			// make sure the slider is properly resized when the window is resized (400ms after window.resize ended)
			$z('[data-article-id="2407"] .zp13slider-container').on('resize',function(event){
				// prevents slider.trigger("resize") from causing a windows.resize event again which looped
				event.stopPropagation();
			});
			var sliderTimeout2407 = null;
			$z(window).on("resize", function(event) {
				clearTimeout(sliderTimeout2407);
				sliderTimeout2407 = setTimeout(function() {
					//handlefocal();
					var slider = $z('[data-article-id="2407"] .zp13slider-container').data('flexslider');   
					debug.log("Resizing Slider: ", slider);
					if ( slider ){  // if slider contains only one image, slider will be undefined
						$z(slider).css('height', '');
						slider.trigger("resize");
						
						placeControls(slider);
						
					}
					clearTimeout(sliderTimeout2407); 
				}, 400);
				
			});
			
			// smooth scroll to anchors
			$z('[data-article-id="2407"] ul.zp13slider &gt; li &gt; a.zpnolayoutlinkstyles').on("click", function(e){
				if ( document.location.pathname == this.pathname &amp;&amp; $z(this.hash).length ){ // if current page contains anchor
					e.preventDefault();
					$z('html,body').animate({
							scrollTop: $z(this.hash).offset().top - parseInt($z("body").css("padding-top"))
					}, 500);
					window.location.hash = this.hash;
				}
			});
			
			$z(window).off('load.zpSliderLoad');
			$z(window).on('load.zpSliderLoad', function(){
				// if the url includes an anchor, scriol to it after a slight delay when all assets are loaded
				// needed because while this widget loads its images, the scroll position changes 
				setTimeout(function() {
					hash = document.location.hash;
					if (hash !=="") {
						debug.log("Slider scroll to anchor " + hash);
						var element_to_scroll_to = $z(hash)[0];
						element_to_scroll_to.scrollIntoView();
					}
				}, 110);
			});
		});
  	&lt;/script&gt;



&lt;p&gt;&lt;a href="https://www.bbm.haus/index.html#a2407"&gt;Lesen Sie den gesamten Artikel&lt;/a&gt;&lt;/p&gt;</description><guid>https://www.bbm.haus/index.html#a2407</guid><link>https://www.bbm.haus/index.html#a2407</link><pubDate>Sun, 12 Jan 2020 11:46:18 +0100</pubDate><pubDateParsed>2020-01-12T10:46:18</pubDateParsed><title>Artikel #2407</title></item><lastBuildDate>Wed, 15 Jan 2025 16:55:38 +0100</lastBuildDate><link>https://www.bbm.haus</link><title>Die EU-weit geschützte Baumarke garantiert praxistauglich angewandte Baubiologie</title><pubDate>Wed, 15 Jan 2025 16:55:38 +0100</pubDate></channel></rss>