Connect with us

Iowa

American Press Male Scholar Athlete of the Year: Iowa benefits from Guillory’s leadership – American Press

Published

on

American Press Male Scholar Athlete of the Year: Iowa benefits from Guillory’s leadership – American Press


American Press Male Scholar Athlete of the Year: Iowa benefits from Guillory’s leadership

Published 9:20 am Saturday, July 6, 2024

In his four years at Iowa High School, Luke Guillory grew into a leader everywhere he went.

His academic excellence and athletic skills landed him a coveted spot at the U.S. Air Force Academy, and earned him the American Press Male Scholar Athlete of the Year.

Advertisement

“He is an amazing young man,” Iowa Principal Luke Dietz said. “In everything he does, he works as hard in the classroom as he works on the playing field.

“In everything he does, he wants to be truly excel. He puts the work in to be able to do that. He is just a blessing to have here at the school. He has such high character.

“Even with all the success he has had in academics and athletics, I truly believe his best attributes are probably his character, work ethic and moral beliefs. He bases everything he does around those three things. It drives him to succeed in everything he does.”

Guillory started his six weeks of basic cadet training last week. He will be required to serve at least five years of active duty and three years as an inactive reserve after graduation.

Guillory ranked fourth in his class senior class at Iowa of 140. He scored a 32 on the American College Testing exam and a 4.36 grade point average.

Advertisement

He was a member of the National Honor Society, student council and helped start a chapter of Fellowship of Christian Athletes at the school.

His influence extends into the community where he volunteers for Special Olympics and the Cystic Fibrosis Foundation.

“That kid is off the charts and in the community,” Iowa head football coach Tommy Johns said. “Anytime you needed him for something, he was going to show up. He was the guy that would get everybody else to show up with him. If Luke Guillory walked into the locker room and said, ‘We are going to help this organization,’ everybody got up and followed. Nobody had any questions. That is the kind of person he is.

“All of it comes from his parents. He was raised right. His parents have a very structured home. They demand excellence out of their kids. It has been very impressive. We are definitely going to miss him, not only the football player but the person.”

Johns said Guillory started at defensive end but found his place at tight end and turned into a top pass catcher with 36 for 420 yards and six touchdowns for the state quarterfinalist Yellow Jackets.

Advertisement

“When he first stepped on to our campus he was shy and a little timid,” Johns said, “but you could tell he had the body and the brain to be a great player. He is very, very intelligent. He progressed along.

“I remember after his freshman year he was questioning if he really wanted to play ball. We had a long, long talk in my office, and he decided to stick with it. From that day forward, he turned into a man. He has been our leader the last two or three years. He is a wonderful person.

“Everybody in the school respects him. They flock to him. He earned that. He is a tremendous asset to Iowa High School, the entire community and our program.”

His intelligence and athletic skills helped him to become a force in the lane for the Yellow Jackets’ 2023-2024 basketball Nonselect Division II state runner-up team. He was a second-team all-District 3-3A forward.

“He is so mobile,” Johns said. “I thought he was a little stiff when he was younger, but so is every other kid for the most part. For somebody to carry around that kind of frame and that kind of weight and move like he could was very impressive.”

Advertisement



Source link

Advertisement

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