Connect with us

Iowa

2024 Olympics wrestling live updates: Iowa’s Kennedy Blades goes for gold Sunday morning

Published

on

2024 Olympics wrestling live updates: Iowa’s Kennedy Blades goes for gold Sunday morning


play

Six minutes is all Kennedy Blades has left to get wrestling’s ultimate prize.

The future Hawkeye, who committed to the Iowa program a month ago, cut her way through the bracket Saturday to reach Sunday’s Olympic gold medal match and secure at least a silver medal. With Spencer Lee securing silver on Friday, this is the first time since 2000 (Terry Brands and Lincoln Mcllravy) that more than one Hawkeye wrestler has medaled in the same cycle.

Advertisement

“It was really nice because I had the whole Iowa Hawkeyes behind my back going into the Olympics, me and Spencer Lee,” Blades said. “It was pretty great to just have two athletes in different genders.”

At 20 years old, Blades is looking to join Amit Elor and Sarah Hilebrandt as gold medalists for Team USA.

“(There’s) so many hours I’ve been putting into training, I want it to be worth it,” Blades said. “I don’t want to just go back home with a silver. I want gold because that was my mentality the whole time. I’m just going to go out there and have fun and just let it fly. No matter what happens, I’m still young, this is my first Olympics, so I don’t even put any pressure (on myself).”

For the sport’s biggest honor, Blades will have to defeat Japan’s Yuka Kagami, 22, the reigning World champion at 76 kilograms.

Blades’ gold-medal match will be in the one and only session of Day 7 of wrestling at the Olympics, the 4 a.m. to 7:30 a.m. window (CT). Keep it here for updates on when she is set to wrestle and how Team USA does as they wrap up a long week of wrestling.

Advertisement

Who is Kennedy Blades?

Kennedy Blades committed to the Hawkeyes in July following a stint with the Sunkist Kids Wrestling Club out of high school and attending Arizona State University. She qualified for the Olympics in April by defeating Adeline Gray, a six-time World champion and a 2020 Olympic silver medalist. While Blades lost to Gray at the 2020 Olympic Trials, then at the age of 17, she got her redemption by beating one of the United States’ all-time best wrestlers.

Blades, 20, is one of the premier talents of the sport as a Junior World champion in 2021, but had never made a senior-level team until making the Olympic team.

“This was honestly my goal since I was seven. 2024 was definitely my goal,” Blades said. “I’ve never even made a Senior World team, so it’s just amazing to think I made an Olympic team.”

Before she even becomes a Hawkeye, she has won at least a silver medal at the Olympics. She’s the 12th Hawkeye wrestler to medal at the Olympics and with the exception of Iowa women’s wrestling coaches Clarissa Chun and Tonya Verbeek, she’s the first women’s wrestler for Iowa to medal at the Olympics.

Advertisement

Who is Zain Retherford?

The former Penn State star, who won three NCAA championships, is hoping to remain on top of the world.

He is the reigning World champion at 70 kilograms, but he’s the Team USA representative at 65 kilograms in Paris. He won a World silver in 2022 as well.

After losing in round one to Iran’s Rahman Mousa Amouzadkhalili, Retherford has been pulled back into the repechage and will have to win two matches to take bronze.

Who is Kyle Snyder?

We’ve had Michigan Wolverines compete, now it’s time for a Buckeye. The former Ohio State star, who won three NCAA titles, is Team USA’s representative at 97 kilograms. He has won three World Championships, an Olympic gold in 2016 and an Olympic silver in 2020.

He reached the semifinals, but fell short to Iran phenom Iran’s Bahrain’s Akhmed Tazhudinov and will need to win one match to secure bronze for the USA.

Advertisement

Eli McKown covers high school sports and wrestling for the Des Moines Register. Contact him at Emckown@gannett.com. Follow him on Twitter at @EMcKown23.





Source link

Iowa

Iowa house passes bill requiring parental consent for minors to receive HPV vaccine

Published

on

Iowa house passes bill requiring parental consent for minors to receive HPV vaccine


DES MOINES, Iowa (IOWA CAPITAL DISPATCH) – The Iowa House passed legislation Tuesday requiring parental consent for minors to receive certain vaccines associated with sexually transmitted diseases — a measure that Democrats said could lead to higher cancer rates in Iowa.

Iowa requires parental consent for minors to receive a vast majority of vaccinations. But there’s currently a carveout in Iowa law for human papillomavirus (HPV) and hepatitis B vaccines. Iowans under age 18 can consent, without parental approval, for these vaccines, as they specifically deal with sexually transmitted diseases and infections.

Senate File 304, which passed on a 63-29 vote — would remove this exemption, requiring parental consent for minors to receive HPV and hepatitis B vaccines. Rep. Austin Baeth, D-Des Moines, an internal medicine physician, said the measure was a “pro-cancer bill, period.”

At subcommittee meetings on the measure, advocates representing health care providers and organizations have said HPV is linked with multiple forms of genital cancer, including cervical, penile, anal cancer and vaginal cancers — and that studies have found the HPV vaccine in particular has been linked with much lower instances of cervical cancer especially when a person is vaccinated before age 17.

Advertisement

“We have, with these vaccines, a way to save people’s lives,” Baeth said. “And in a state with the fastest-rising cancer rates, the second highest cancer rate overall, we should be doing more to prevent cancer, not less.”

Rep. Jeff Shipley, R-Fairfield, who supported the bill, said the measure was not limiting access to the HPV vaccine, but ensuring that parents approve of these vaccines being administered to young children.

Rep. Megan Srinivas, D-Des Moines, said the reason why this carveout was introduced in Iowa law in the first place was because there were instances where a parent may not be a trusted adult in a child’s life — including in situations of child abuse or child sexual assault.

“This conversation about needing to always trust our adults does not take the bad actors into account,” Srinivas said. “And what we should be keeping in mind, as we are passing legislation, are the most vulnerable in our society, which are the children that we have been entrusted to protect. By removing one of the most important things we can do in protecting children who might be the victims, we are making a bad decision, and that is why I urge you to vote no on this.”

Rep. Austin Harris, R-Moulton, disagreed with the assertion that the measure was “pro-cancer” — saying it only subjects the HPV and Hepatitis B vaccines to the same requirements as other vaccines.

Advertisement

“Are we pro-polio because we require parental consent?” Harris said. “Pro-measles, pro-mumps, everything else? And I take it personally as someone who has a mother, who is a breast cancer survivor, to be accused of saying, ‘I’m pro-cancer.’”

The measure heads to Gov. Kim Reynolds’ desk for final approval.



Source link

Advertisement
Continue Reading

Iowa

Are tornadoes in Iowa possible today? Here’s what forecasters say

Published

on

Are tornadoes in Iowa possible today? Here’s what forecasters say


play

  • Severe storms are expected to hit Iowa again Tuesday, bringing the possibility of tornadoes, large hail, and damaging winds.
  • The National Weather Service has issued an Enhanced Risk for parts of Iowa, indicating a higher chance of organized severe thunderstorms.
  • Forecasters warn that strong tornadoes and giant hail are possible with the most intense storms.
  • The severe weather threat is expected to continue through the week, with another strong system anticipated on Friday.

Severe storms are expected to sweep across Iowa again in the afternoon of Tuesday, April 14, with forecasters warning of all severe weather hazards possible — including tornadoes, large hail and damaging winds — as multiple rounds of storms move through the region through midweek.

The National Weather Service Storm Prediction Center has placed parts of Iowa under an Enhanced Risk (Level 3 of 5) for Tuesday, signaling a higher likelihood of organized severe thunderstorms, including supercells capable of producing strong tornadoes and very large hail.

Advertisement

What is the weather today in Iowa?

Forecasters expect storms to develop late Tuesday afternoon into the evening as a stalled frontal boundary sits across eastern Iowa into Wisconsin. A surge of warm, moisture-rich air moving north from the Missouri Valley will collide with steep mid-level lapse rates and strong wind shear, creating an environment supportive of severe storms.

If storms can form, they are expected to quickly become supercells.

“Large to giant hail and an intense tornado will be possible with the strongest storms,” the Storm Prediction Center noted, especially where wind shear is maximized near surface boundaries.

Are tornadoes in Iowa possible?

Yes — tornadoes are possible across Iowa Tuesday afternoon and evening, though forecasters say the setup is still uncertain and depends on how storms evolve during the day, according to the National Weather Service.

Advertisement

A key factor is a “cap” in the atmosphere that could delay or limit storm development, making the exact timing and placement of storms difficult to pin down early.

Even if afternoon storms remain scattered, activity is expected to increase later Tuesday night as a low-level jet strengthens over the Plains and Midwest. That pattern should help trigger more widespread thunderstorms, especially across southern and central Iowa.

Some of these storms may become elevated above the surface overnight, which could slightly reduce the tornado threat at that point. However, that setup would still support hazards such as heavy rainfall, frequent lightning and hail, particularly in stronger storm clusters.

Advertisement

Still, forecasters say all severe weather hazards remain on the table.

Tornadoes are possible, and a few could be strong if storms stay isolated and develop into discrete supercells.

Large to giant hail is also a concern within the strongest rotating storms that form along boundaries in the warm sector.

Damaging wind gusts may become more widespread later in the evening if storms organize into larger clusters or storm complexes moving across the state.

Advertisement

Storms continue through Friday

Additional severe weather is possible on Wednesday as another upper-level disturbance moves into the region. The exact risk will depend on how Tuesday’s storms evolve and how much instability remains in place.

If conditions recover, supercells with all hazards — including tornadoes — could redevelop across parts of Iowa during peak daytime heating. For now, forecasters have maintained a Slight Risk (Level 2 of 5) for Wednesday.

The active pattern does not end midweek. Another strong system is expected on Friday, bringing a new round of severe storms across much of Iowa ahead of a fast-moving cold front.

Behind it, temperatures will drop sharply over the weekend, with highs falling into the 40s and 50s and a hard freeze possible in northern areas by Saturday night.

Advertisement

Iowa weather radar

Iowa weather watches and warnings

Here are the watches and warnings for the area.

Stay informed. Get weather alerts via text.

Brandi D. Addison covers weather across the United States as the Weather Connect Reporter for the USA TODAY Network. She can be reached at baddison@gannett.com.



Source link

Continue Reading

Iowa

Tornadoes and hail reported across northern Iowa counties

Published

on

Tornadoes and hail reported across northern Iowa counties


Tornadoes and hail reported across northern Iowa counties

Advertisement

KCCI EIGHT NEWS AT TEN STARTS NOW. GOOD EVENING. IT HAS BEEN AN ACTIVE EVENING IN NORTHERN IOWA. ACTIVE WEATHER EVENING. THIS PICTURE SENT TO US BY STEVE FITCHETT SHOWS A TORNADO ON THE GROUND NEAR GILLETT GROVE. YOU CAN SEE THE DEBRIS KICK UP THERE. THIS WAS IN CLAY COUNTY. THIS WAS A TORNADO WARNED STORM NEAR THAT AREA. TONIGHT. A TORNADO WARNED STORM ALSO MOVED THROUGH KOSSUTH COUNTY THIS EVENING. THAT’S A LIVE LOOK RIGHT NOW FROM ALGONA. THANKFULLY THE TORNADO WATCH FOR THE COUNTY JUST EXPIRED AT THE TOP OF THE HOUR, SO IT SHOULD BE A MUCH CALMER NIGHT AHEAD. THE STORM ROLLED THROUGH SANBORN THIS AFTERNOON. TAKE A LOOK AT THIS. ALYSSA BECKER SENT US THESE PICTURES OF THE HAIL THAT FELL THERE TODAY. THAT’S A BIG HAIL AND DOES SOME DAMAGE. ABSOLUTELY. WE SAW EVEN THE LIVE LOOK FROM ALGONA. YOU SAW SOME LIGHTNING THERE. SO EVEN FOR THESE AREAS THAT ARE OUT OF KIND OF THE ROUGH STUFF THERE, JASON, STILL A LITTLE BIT OF A, YOU KNOW, I DON’T KNOW, THINGS THAT CATCHES THEIR EYE TONIGHT. ABSOLUTELY. THERE’S

Advertisement

Tornadoes and hail reported across northern Iowa counties

Updated: 11:16 PM CDT Apr 13, 2026

Editorial Standards

Advertisement

Severe storms swept through northern Iowa Monday evening, bringing tornadoes and hail to several counties.A tornado was spotted on the ground near Gillett Grove in Clay County, as shown in a photo sent by Steve Fitchett. The area experienced a tornado-warned storm Monday night. A tornado-warned storm also moved through Kossuth County this evening. A live view from Algona showed the conditions, and the tornado watch for the county expired at 10 p.m.Earlier in the day, the storm rolled through Sandborn, bringing hail to the area. Alyssa Becker shared pictures of the hail from the scene.

Severe storms swept through northern Iowa Monday evening, bringing tornadoes and hail to several counties.

Advertisement

A tornado was spotted on the ground near Gillett Grove in Clay County, as shown in a photo sent by Steve Fitchett. The area experienced a tornado-warned storm Monday night.

A tornado-warned storm also moved through Kossuth County this evening. A live view from Algona showed the conditions, and the tornado watch for the county expired at 10 p.m.

Earlier in the day, the storm rolled through Sandborn, bringing hail to the area. Alyssa Becker shared pictures of the hail from the scene.

Advertisement
Advertisement

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

Advertisement

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

Advertisement

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.kcci.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

Advertisement

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

Advertisement

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

Advertisement

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

Advertisement

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

Advertisement

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

Advertisement

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.kcci.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

Advertisement

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

Advertisement

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

Loading more articles…



Source link

Advertisement
Continue Reading

Trending