Loading...
`); } $slides.removeClass('active'); $slides.css({ 'opacity': '0', 'position': 'absolute', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%', 'display': 'none' }); $slides.each(function(index) { var $slide = $(this); var $img = $slide.find('.structure-banner-background'); $img.css({ 'object-position': 'top left', 'position': 'absolute', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%', 'display': 'block', 'object-fit': 'cover' }); }); $slides.eq(0).addClass('active').css({ 'opacity': '1', 'display': 'block' }); $indicators.removeClass('active-item background-color-var-1') .attr('aria-selected', 'false').attr('tabindex', '-1'); $indicators.eq(0).addClass('active-item background-color-var-1') .attr('aria-selected', 'true').attr('tabindex', '0'); var $container = $carousel.find('.carousel-inner'); var $firstImage = $slides.eq(0).find('.structure-banner-background'); function setProperHeight() { var windowWidth = $(window).width(); // Use guideline aspect ratio (1250x600) for consistent height calculation // This ensures the carousel maintains proper dimensions regardless of uploaded image sizes var aspectRatio = 600 / 1250; // 0.48 (height/width from banner guideline) var containerWidth = $container.width(); var calculatedHeight; // Different calculations for different screen widths if (windowWidth <= 480) { // Very small screens - limit height calculatedHeight = Math.min(containerWidth * aspectRatio, window.innerHeight * 0.5); calculatedHeight = Math.max(calculatedHeight, 200); // Minimum 200px } else if (windowWidth <= 800) { // Medium mobile screens calculatedHeight = Math.min(containerWidth * aspectRatio, window.innerHeight * 0.6); calculatedHeight = Math.max(calculatedHeight, 250); // Minimum 250px } else { // Desktop calculatedHeight = Math.max(containerWidth * aspectRatio, 300); } $container.css({ 'height': calculatedHeight + 'px', //'min-height': '200px', 'max-height': windowWidth <= 800 ? '60vh' : 'none' }); window.carouselHeight = calculatedHeight; } // Use requestAnimationFrame for smooth, frame-synced resizing without delay var resizeScheduled = false; $(window).on('resize', function() { if (!resizeScheduled) { resizeScheduled = true; requestAnimationFrame(function() { setProperHeight(); resizeScheduled = false; }); } }); if ($firstImage[0] && $firstImage[0].complete) { setProperHeight(); } else { $firstImage.on('load', setProperHeight); setTimeout(setProperHeight, 1000); } var $firstSlideData = $slides.eq(0).find('.slide-content-data'); if ($firstSlideData.length && $('#current-slide-title').length) { var title = $firstSlideData.find('.slide-title').text(); var text = $firstSlideData.find('.slide-text').text(); var linkText = $firstSlideData.find('.slide-link').text(); var linkHref = $firstSlideData.find('.slide-link').data('href'); $('#current-slide-title').text(title); $('#current-slide-text').text(text); $('#current-slide-link').html(linkText ? '' + linkText + '' : ''); } setupInteractionHandlers(); if ($carousel.is(':hover')) { isUserInteracting = true; } if (isPlaying && !isUserInteracting) { forcedByUser = false; startRotation(); } updateRotationControl(); } function setupInteractionHandlers() { $carousel.on('mouseenter', function() { isUserInteracting = true; if (isPlaying && !forcedByUser) { stopRotation(); } }); $carousel.on('mouseleave', function() { isUserInteracting = false; forcedByUser = false; clearTimeout(forceTimeout); if (isPlaying) { startRotation(); } }); $carousel.on('focusin', function() { isUserInteracting = true; if (isPlaying && !forcedByUser) { stopRotation(); } }); $carousel.on('focusout', function() { isUserInteracting = false; if (isPlaying) { setTimeout(function() { if (!$carousel.find(':focus').length && isPlaying) { forcedByUser = false; clearTimeout(forceTimeout); startRotation(); } }, 100); } }); } function updateSlide(index, isUserAction) { if (isAnimating || currentSlide === index) { return; } isAnimating = true; var $currentSlide = $slides.eq(currentSlide); var $newSlide = $slides.eq(index); var $currentIndicator = $indicators.eq(index); var $textWrapper = $('#current-slide-content'); var prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; var $slideData = $newSlide.find('.slide-content-data'); var newContent = { title: $slideData.find('.slide-title').text(), text: $slideData.find('.slide-text').text(), linkText: $slideData.find('.slide-link').text(), linkHref: $slideData.find('.slide-link').data('href') }; $indicators.removeClass('active-item background-color-var-1') .attr('tabindex', '-1'); // Only update aria-selected on user interaction, not auto-rotation if (isUserAction) { $indicators.attr('aria-selected', 'false'); } $currentIndicator.addClass('active-item background-color-var-1') .attr('tabindex', '0'); // Only update aria-selected on user interaction, not auto-rotation if (isUserAction) { $currentIndicator.attr('aria-selected', 'true'); } if (prefersReducedMotion) { $slides.removeClass('active').css({ 'opacity': '0', 'display': 'none' }); $newSlide.addClass('active').css({ 'opacity': '1', 'display': 'block' }); updateTextContent(); isAnimating = false; } else { // Prepare for animation $slides.removeClass('active transitioning'); $slides.not($currentSlide).not($newSlide).css('display', 'none'); $currentSlide.css({ 'display': 'block', 'opacity': '1' }); $newSlide.css({ 'display': 'block', 'opacity': '0', 'visibility': 'visible' }); $currentSlide.animate({opacity: 0}, 400); $newSlide.animate({opacity: 1}, 400, function() { $currentSlide.removeClass('active').css({ 'display': 'none', 'opacity': '0' }); $newSlide.addClass('active'); $slides.not($newSlide).css('display', 'none'); isAnimating = false; }); updateTextWithAnimation(); } currentSlide = index; function updateTextContent() { $('#current-slide-title').text(newContent.title); $('#current-slide-text').text(newContent.text); $('#current-slide-link').html(newContent.linkText ? '' + newContent.linkText + '' : ''); } function updateTextWithAnimation() { var $tempWrapper = $textWrapper.clone(); $tempWrapper.css({ position: 'absolute', visibility: 'hidden', height: 'auto', width: $textWrapper.outerWidth(), left: '-9999px', top: '-9999px' }).appendTo('body'); $tempWrapper.find('#current-slide-title').text(newContent.title); $tempWrapper.find('#current-slide-text').text(newContent.text); $tempWrapper.find('#current-slide-link').html(newContent.linkText ? '' + newContent.linkText + '' : ''); var currentHeight = $textWrapper.outerHeight(); var newHeight = $tempWrapper.outerHeight(); $tempWrapper.remove(); $textWrapper.css('height', currentHeight + 'px'); setTimeout(function() { $textWrapper.css('height', newHeight + 'px'); }, 10); setTimeout(function() { $textWrapper.css('height', 'auto'); }, 420); setTimeout(function() { updateTextContent(); }, 150); } } function startRotation(forceStart) { if (rotationInterval || (isUserInteracting && !forceStart)) { return; } rotationInterval = setInterval(function() { if (isAnimating) { return; } if (!isUserInteracting || forcedByUser) { var nextSlide = (currentSlide + 1) % totalSlides; updateSlide(nextSlide, false); // false = not user action } }, intervalDuration); $textboxWrapper.attr('aria-live', 'off'); } function stopRotation() { if (rotationInterval) { clearInterval(rotationInterval); rotationInterval = null; } $textboxWrapper.attr('aria-live', 'polite'); } function updateRotationControl() { var $srText = $rotationControl.find('.sr-only'); if (isPlaying) { $rotationControl.removeClass('is-paused').addClass('is-playing'); $rotationControl.attr('aria-label', 'Automatischen Folienwechsel stoppen'); $srText.text('Stoppen'); } else { $rotationControl.removeClass('is-playing').addClass('is-paused'); $rotationControl.attr('aria-label', 'Automatischen Folienwechsel starten'); $srText.text('Starten'); } } $rotationControl.click(function () { clearTimeout(forceTimeout); if (isPlaying) { isPlaying = false; wasPausedByUser = true; forcedByUser = false; stopRotation(); } else { isPlaying = true; wasPausedByUser = false; forcedByUser = true; startRotation(true); forceTimeout = setTimeout(function() { forcedByUser = false; if (isUserInteracting && isPlaying) { stopRotation(); } }, 2000); } updateRotationControl(); }); $rotationControl.on('keydown', function(e) { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); $(this).click(); } }); $indicators.on('click', function() { var index = $(this).data('slide-to'); if (isAnimating) { return; } // Ensure manual navigation is announced $textboxWrapper.attr('aria-live', 'polite'); if (wasPausedByUser) { isPlaying = true; startRotation(); updateSlide(index, true); // true = user action setTimeout(function() { isPlaying = false; stopRotation(); }, 600); } else { updateSlide(index, true); // true = user action } $(this).focus(); }); $indicators.on('keydown', function(e) { var currentIndex = $(this).data('slide-to'); var nextIndex; switch(e.key) { case 'ArrowRight': e.preventDefault(); nextIndex = (currentIndex + 1) % totalSlides; break; case 'ArrowLeft': e.preventDefault(); nextIndex = (currentIndex - 1 + totalSlides) % totalSlides; break; case 'Home': e.preventDefault(); nextIndex = 0; break; case 'End': e.preventDefault(); nextIndex = totalSlides - 1; break; default: return; } if (nextIndex !== undefined && !isAnimating) { // Ensure manual navigation is announced $textboxWrapper.attr('aria-live', 'polite'); if (wasPausedByUser) { isPlaying = true; startRotation(); updateSlide(nextIndex, true); // true = user action $indicators.eq(nextIndex).focus(); setTimeout(function() { isPlaying = false; stopRotation(); }, 600); } else { updateSlide(nextIndex, true); // true = user action $indicators.eq(nextIndex).focus(); } } }); init(); });

Aktuelle Informationen

31.03.2026

Fortbildung News (31. März 2026)

1. Wiener Medizinischer Kongress 2026

Mehr lesen...
26.03.2026

Ärzt*innen News (26. März 2026)

Kammer ruft zur FSME-Impfung auf / Neuer Zugangslink zum BBG e-Impfshop

Mehr lesen...
20.03.2026

Start in die Zeckensaison: Viele Wienerinnen und Wiener haben keinen aufrechten FSME-Impfschutz

Kammer für Ärztinnen und Ärzte in Wien rät zu rechtzeitiger Auffrischung und setzt sich für Gratis-Impfstoff ein

Mehr lesen...

aerztin fuer wien cover

 

„Ärzt*in für Wien 03/26“ online – Karriere trotz Hürden

Wie es Wiens Ärztinnen im Arbeitsalltag geht – wir haben nachgefragt. Darüber und viele weitere interessante Berichte können Sie jetzt schon online in der aktuellen Ausgabe von Ärzt*in für Wien lesen.

 

 


Kontakt
Tel: +43 1 51501-0
Fax: +43 1 51501-1209
Kontaktformular

Öffnungszeiten
Montag - Mittwoch: 8.00 - 16.00 Uhr
Donnerstag: 8.00 - 18.00 Uhr
Freitag: 8.00 - 14.00 Uhr