Connect with us

Iowa

Iowa driver airlifted to Wisconsin medical facility after striking tree Sunday night

Published

on

Iowa driver airlifted to Wisconsin medical facility after striking tree Sunday night


HARPERS FERRY, Iowa (KTTC) – A North Iowa man needed to be airlifted to the hospital after crashing into a tree in Harpers Ferry over the weekend.

According to the Iowa State Patrol, a driver was heading west along Lansing Harpers Road near Basswood Drive just before 9 p.m. Sunday when he crossed the centerline and went into the ditch before striking a tree head-on.

First responders ended up taking the driver, Steven McKee, 66, of Harpers Ferry, to Veterans Memorial Hospital in Waukon.

He was then airlifted to La Crosse for further care.

Advertisement

The crash remains under investigation.

Find stories like this and more, in our apps.



Source link

Advertisement

Iowa

Iowa High School Boys Track And Field Leaders

Published

on

Iowa High School Boys Track And Field Leaders


We are still weeks away from the state track and field meet in Iowa, but high school athletes around the state are starting to get outdoors to post times and leave marks.

High School on SI previously posted the leaders in Iowa high school track and field for the girls, so now, we head over to the boys. Just like with that one, the numbers below are from the Bound website and up-to-date as of April 3, 2026.

Iowa High School Boys Track And Field Event Leaders

100-Meter Dash

Advertisement
Add us as a preferred source on Google

  • Connor Kunze, Nevada, 10.48
  • Kaiden Kunze, Norwalk, 10.52
  • Noah Ross, Ankeny Centennial, 10.61
  • Adam Kacmarynski, Pella Christian, 10.69
  • Deztin McMurrin, Waterloo West, 10.70

200-Meter Dash

  • Marcus Tomlyanovich, Cedar Falls, 21.73
  • Zane Johnson, ADM, 21.90
  • Cauy Konz, Treynor, 22.08
  • Dawson Dougherty, Cedar Rapids Kennedy, 22.09
  • Lincoln Bainbridge, Van Buren County, 22.10

400-Meter Dash

  • Drew Bennis, Cedar Rapids Prairie, 48.52
  • Harrison Mullens, Pella, 48.85
  • Lincoln Bainbridge, Van Buren County, 49.10
  • Will Bertrand, Sioux City Bishop Heelan, 49.43
  • Gage Tucker, Bettendorf, 49.55

800-Meter Run

  • Brennen Hoyer, Cedar Falls, 1:53.72
  • AJ Willey, Bettendorf, 1:54.27
  • Keegan Decker, Iowa City Liberty, 1:54.44
  • Canaan Dunham, Pella, 1:54.73
  • Ayden Gabrielson, Waukee Northwest, 1:54.79

1600-Meter Run

  • Quentin Nauman, Western Dubuque, 4:03.65
  • Keegan Decker, Iowa City Liberty, 4:04.33
  • Kuma Gutema, Sioux City North, 4:12.40
  • Logan Bleich, Gilbert, 4:14.67
  • Canaan Dunham, Pella, 4:15.92

3200-Meter Run

  • Keegan Decker, Iowa City Liberty, 8:59.49
  • Quentin Nauman, Western Dubuque, 9:07.03
  • AJ Willey, Bettendorf, 9:08.52
  • Slader Buckheister, Cedar Rapids Kennedy, 9:08.54
  • Canaan Dunham, Pella, 9:12.27

110-Meter Hurdles

  • Tay Seals, Clear Creek-Amana, 13.92
  • Hayden Carlson, Ankeny, 14.07
  • Caiden Johnson, Pella, 14.16
  • Blake Ludwig, Waukee Northwest, 14.25
  • Miciah LeLaCheur, Valley, 14.30

400-Meter Hurdles

  • J.J. McDermott, Bettendorf, 54.42
  • Wil Pauli, Cedar Falls, 54.78
  • Jayden Jeter, Waukee, 54.92
  • Owen Von Ahsen, Benton, 54.92
  • Tate Marco, Sibley-Ocheyedan, 55.14

Long Jump

  • Rylan Peters, Waverly-Shell Rock, 23-8
  • Kaiden Kunze, Norwalk, 23-3
  • Jayden Stephens, Waverly-Shell Rock, 22-11
  • Ezekiel Symonds, Independence, 22-10.5
  • Jamaul Richardson Willamsburg, 22-8

High Jump

  • Ajak Malual, Waukee, 6-9
  • Logan Athlerton, Norwalk, 6-8
  • Eli Patterson, Benton, 6-7
  • Miciah LeLaCheur, Valley, 6-6
  • Spencer Casey, Cascade, 6-5.5

Shot Put

  • Greyson Hartman, Washington, 67-3.5
  • Morgan Cooley, East Union, 59-11
  • Max Nevitt, Algona, 59-5.5
  • Carson Divis, Hinton, 57-6
  • Shem Mally, Cedar Rapids Kennedy, 57-5.5

Discus

  • Greyson Hartman, Washington, 179-9
  • Aiden Curtis, Indianola, 179-2
  • Daxon Kiesau, Urbandale, 176-8
  • Colin Whitters, Iowa City West, 167-1
  • Reece Winery, Southeast Polk, 166-5

100-Meter Wheel Chair

  • Titus Steng, Shenandoah, 17.01
  • Eli Johnson, Bedford, 18.58
  • Josh Anderson, Washington, 20.45
  • Logan Shwery, Ankeny Centennial, 23.50
  • Ryan Stevenson, Pleasant Valley, 31.23

200-Meter Wheel Chair

  • Titus Steng, Shenandoah, 31.66
  • Eli Johnson, Bedford, 33.89
  • Issac Anderson, Washington, 37.32
  • Josh Anderson, Washington, 37.34
  • Logan Shwery, Ankeny Centennial, 49.04

400-Meter Wheel Chair

  • Titus Steng, Shenandoah, 1:06.30
  • Eli Johnson, Bedford, 1:10.74
  • Isaac Anderson, Washington, 1:13.78
  • Logan Shwery, Ankeny Centennial, 1:28.32

800-Meter Wheel Chair

  • Titus Steng, Shenandoah, 2:21.91
  • Eli Johnson, Bedford, 2:41.25
  • Josh Anderson, Washington, 3:01.66

Shot Put Wheel Chair

  • Ryan Stevenson, Pleasant Valley, 16-11

100-Meter Ambulatory

  • Carter Swanson, Hudson, 15.35
  • Daniel Villa, Waterloo East, 15.49
  • Leighton Pullin, Waterloo East, 19.72
  • Daniel Carr, Waterloo East, 22.97

200-Meter Ambulatory

  • Cameron McGraw, Alburnett, 30.86
  • Carter Swanson, Hudson, 32.19

400-Meter Ambulatory

  • Carter Swanson, Hudson, 1:14.41

4×100-Meter Relay

  • Gilbert, 42.21
  • Cedar Rapids Jefferson, 42.61
  • Treynor, 42.70
  • Western Dubuque, 42.79
  • Waukee Northwest, 42.86

4×200-Meter Relay

  • Valley, 1:26.29
  • Clear Lake, 1:27.55
  • Waukee Northwest, 1:28.54
  • ADM, 1:28.60
  • Cedar Rapids Prairie, 1:29.30

4×400-Meter Relay

  • Clear Lake, 3:20.37
  • Cedar Falls, 3:21.03
  • Waukee Northwest, 3:23.95
  • Sioux City Bishop Heelan, 3:24.10
  • Cedar Rapids Prairie, 3:24.62

4×800-Meter Relay

  • Waukee Northwest, 7:55.90
  • Cedar Falls, 7:57.36
  • Dallas Center-Grimes, 8:02.78
  • Johnston, 8:03.88
  • Unity Christian, 8:04.19

Sprint Medley Relay

  • Clear Creek-Amana, 1:34.37
  • Sibley-Ocheyedan, 1:35.17
  • Muscatine, 1:35.57
  • Cedar Rapids Prairie, 1:35.76
  • Mount Vernon, 1:35.86

Distance Medley Relay

  • Ankeny Centennial, 3:26.51
  • Waukee Northwest, 3:30.23
  • Gilbert, 3:32.46
  • Dallas Center-Grimes, 3:33.16
  • Ankeny, 3:34.82

Shuttle Hurdle Relay

  • Pella, 58.29
  • Iowa City West, 58.61
  • Treynor, 58.87
  • Waukee Northwest, 58.95
  • Ankeny, 59.02



Source link

Continue Reading

Iowa

Where will Iowa basketball spending rank in transfer portal?

Published

on

Where will Iowa basketball spending rank in transfer portal?


You have to pay to play.

That’s the way the new world of college sports works, especially football and men’s basketball, the two moneymakers for programs across the country. The financial aspect of competing is looming larger than ever now, and to win in those sports, it requires serious financial backing.

It costs now to recruit top talent from high school and even more to lure in top talent from the transfer portal, which can infuse instant upgrades to a roster. The Iowa Hawkeyes had a portal-heavy roster this year during their magical Elite 8 run during March Madness and will once again be shopping for more high-end talent.

Iowa won’t just be among the big spenders in the Big Ten, but On3’s Pete Nakos believes Iowa is going to be among those big spenders in the sport of college basketball, potentially nearing double-figures in the millions.

Advertisement

The Next Tier: $8 to $10 million

LouisvilleTexas A&MIowa, St. Louis, Providence and BYU make up the next tier of top spenders, all expected to spend over $8 million and can touch $10 million if they want. Other top spenders of note will likely be Virginia and Washington, among others.

Alabama was in the $8 to $10 million range this season, and the Crimson Tide are expected to have similar funding available. They will be able to crack into the next tier if they need to, sources said. – Pete Nakos, On3

Iowa’s first priority via the transfer portal is replacing the crater-sized hole in the starting lineup left by point guard Bennett Stirtz, who carried this team at times this year and was the engine that made this team go.

After that, Iowa needs to add size on the interior. While they were able to play most of the year, finding ways to win despite lacking some size, having a true big man only further unlocks Ben McCollum’s offense.

Contact/Follow us @HawkeyesWire on X (formerly Twitter) and like our page on Facebook to follow ongoing coverage of Iowa news, notes and opinions. Follow Riley on X: @rileydonald7

Advertisement





Source link

Continue Reading

Iowa

Iowa wide receiver becomes first-ever back-to-back winner of Jet Award

Published

on

Iowa wide receiver becomes first-ever back-to-back winner of Jet Award


Iowa wide receiver Kaden Wetjen becomes first-ever back-to-back winner of Jet Award

Advertisement

OUR TEAM. SOMEONE TO LOOK OUT FOR THIS UPCOMING YEAR, STICKING WITH FOOTBALL, THE JET AWARD GALA HAPPENING TONIGHT IN OMAHA ON THE 15TH YEAR OF THE AWARD. THE AWARD IS GIVEN TO THE COLLEGE RETURN SPECIALIST OF THE YEAR, IOWA’S KADEN WETJEN MAKES HISTORY, BECOMING THE FIRST EVER BACK TO BACK WINNER. OF JOHNNY THE JET RODGERS AWARD. IT’S AWESOME. AND I KIND OF JOKED AROUND LAST YEAR, TOLD ME I WAS GOING TO COME BACK HERE NEXT YEAR AND HERE WE ARE ACTUALLY ACTUALLY DID IT. AND WE ACTUALLY HAD TWICE THE SUCCESS WE HAD LAST YEAR WHEN WE WON IT. SO JUST ME AND THE UNIT, THE TEAM THAT WE HAD WAS, WAS SUPER AWESOME. IT’S NOT JUST THIS AWARD ISN’T JUST FOR ME. IT’S FOR MY, FOR MY TEAMMATES AS WELL. YES. ALSO BEING HONORED TONIGHT, MILLARD SOUTH ALMA JOBJET TAMALA AS MR. FOOTBALL 2025. RECOGNIZING THE TOP HIGH SCHOOL FOOTBALL TALENT IN THE STATE. GUYS, OBVIOUSLY KAMALA TAKING HIS TALENTS TO ALABAMA. HE’LL BE PLAYING IN TUSCALOOSA THIS YEAR AS FAR AS IT COMES WITH EACH AND EVERY TIME ANYBODY WOULD KICK TO HIM, I WOULD SAY, WHAT ARE YOU DOING? DON’T KICK, KICK, KICK IT. HE’S SO GOOD. I MEAN, LOO

Advertisement

Iowa wide receiver Kaden Wetjen becomes first-ever back-to-back winner of Jet Award

Updated: 8:57 PM CDT Apr 2, 2026

Editorial Standards

Advertisement

Omaha hosted the Jet Award Gala on Thursday.It was the 15th year of the award, which was given to the College Return Specialist of the Year.Iowa’s Kaden Wetjen made history, becoming the first-ever back-to-back winner of the Johnny the Jet Rodgers Award.The gala also honored Millard South alum Jett Thomalla as Mr. Football 2025, recognizing the top high school football talent in the state.Make sure you can always see the latest news, weather, sports and more from KETV NewsWatch 7 on Google search.NAVIGATE: Home | Weather | Local News | National | Sports | Newscasts on demand |

Omaha hosted the Jet Award Gala on Thursday.

Advertisement

It was the 15th year of the award, which was given to the College Return Specialist of the Year.

Iowa’s Kaden Wetjen made history, becoming the first-ever back-to-back winner of the Johnny the Jet Rodgers Award.

The gala also honored Millard South alum Jett Thomalla as Mr. Football 2025, recognizing the top high school football talent in the state.

Advertisement

Make sure you can always see the latest news, weather, sports and more from KETV NewsWatch 7 on Google search.

NAVIGATE: Home | Weather | Local News | National | Sports | Newscasts on demand |

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’;

Advertisement

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’);

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;
}

Advertisement

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) {}

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;

Advertisement

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.ketv.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.ketv.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;
}

Advertisement

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’);
}

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);
}
}

Advertisement

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);

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();
}
}

Advertisement

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’);

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’);
}
}

Advertisement

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) {}

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’);
});
}
}

Advertisement

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.ketv.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.ketv.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’);
}

Advertisement

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’);
}

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);
}
}

Advertisement

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);

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…

Advertisement



Source link

Continue Reading

Trending