Wisconsin is a charming state brimming with natural attractions to explore across all seasons. Blessed by the elegant shores of Lake Michigan alongside other series of lakes, rivers, forests, and wildlife, the outdoor scenery in Wisconsin is as pretty as it comes. While the state is renowned for its chilly winters, it becomes a dazzling world of beauty and adventures in summer, as the lakes unfreeze and the land is kissed by the sun. From the irresistible shores of Lake Geneva with its thrilling water sports to the Swiss appeal of New Glarus, step into these eight lovely towns in Wisconsin this summer and have a blast!
Sister Bay
Aerial view of Sister Bay.
Sister Bay is a lovely small town in Door County that promises a sensational summer experience. Typical of Door County towns, the shores of Lake Michigan are always a draw, and Sister Bay is one of the county’s finest waterfront communities. Hence, the town’s beach, boasting 1,900 feet of public waterfront, is a focal point for tourists during the sunny season, serving as a launch pad to kayak, paddle, boat, sail, and swim on the lake. Otherwise, visitors can bask under the sun, build sand castles, enjoy picnics, catch the sunset, and promenade the massive waterfront area. Sneak out from the beach to check out what the past looks like at Corner of the Past Museum and for art lovers, check out handcrafted works sourced locally and regionally at Earth Art Studio. Don’t forget to dine at the Waterfront Restaurant or Sister Bay Bowl and enjoy mouthwatering treats.
Ephraim
Siblings walking at Eagle Tower in Peninsula State Park. Image credit Christine Dannhausen-Brun via Shutterstock.
Ephraim is a small town with just below 300 residents; however, it has plenty to offer in summer. For starters, it is across Eagle Harbor, with scenic views of bluffs and the picturesque shoreline of Green Bay. The outdoors already looks enticing from its location, but it gets more sensational at Peninsula State Park, where one can spend the entire summer exploring. The park features 468 campsites, 150-foot bluffs, Eagle Bluff Lighthouse, hiking/biking trails, a sand beach, a summer theatre, a nature center, a 76-foot observation tower, and an 18-hole golf course. Elsewhere, history buffs can immerse in the past with historic tours at the Ephraim Historical Society. Regarding dining, Ephraim offers great options like Old Post Office Restaurant with its waterfront views and Sip with its exotic and colorful culinary offers.
New Glarus
Shops in New Glarus, Wisconsin.
New Glarus is a small town in Green County famous for its nickname – the little Switzerland of America. True to its name, this town offers a taste of Switzerland, especially as it is home to the Swiss Historical Village Museum, which features 14 historic buildings filled with artifacts reflecting Swiss pioneer life. Chalet of the Golden Fleece Museum and the Swiss Center of North America are more attractions in town dedicated to preserving and showcasing Swiss culture. Away from its Swiss heritage, New Glarus invites adventurers to the 435-acre New Glarus Woods State Park, featuring hiking/biking trails alongside campsites and picnic areas. The park also links to the 24-mile Sugar River State Trail, where adventurers can hike and bike across woods, farmlands, and rolling hills. If there’s time, New Glarus Bakery is a great place to stop by for fresh treats, while Bailey’s Run Vineyard and Winery offers delicious wine and great vineyard views.
Elkhart Lake
Event on the grounds of The Osthoff Resort in Elkhart Lake, Wisconsin. Image credit ajkelly via Shutterstock.
Elkhart Lake is a small village big on history and outdoor charms. A summer vacation here can start at the Elkhart Lake Historic Depot and Museum, where tourists can glimpse the town’s railroad past. The Henschel’s Indian Museum is another historic attraction in town, located in an archaeological site, housing a collection of Indian pottery, stone tools, copper implements, and other artifacts. For outdoor buffs, Fireman’s Park and Beach is the town’s only public beach and opens in summer. The beach features gorgeous sands, picnic tables, grills, and the charming waters of Elkhart Lake for dips and water sports. In addition, the all-season Broughton Sheboygan Marsh Park is a must-visit outdoor attraction in town, with fishing, camping, and picnic areas alongside an 80-foot observation. After the exploration, visitors can always chill at Lake Street Café and enjoy palatable meals.
Hayward
The world’s largest muskie, at the National Fresh Water Fishing Hall of Fame.
Hayward is a unique town in Sawyer County, famed for its numerous surrounding lakes. However, it is more renowned for hosting the world’s largest muskellunge (aka muskie) sculpture at the National Freshwater Fishing Hall of Fame and Museum. While the museum houses records of the world’s largest freshwater fish in the US, tourists can climb to the mouth of the 143-foot muskie sculpture to enjoy views of the town and Hayward Lake. Fishing enthusiasts can hop the many lakes outside the town, such as Round Lake, Sand Lake, Lake Namakagon, and Chippewa Flowage, to fish bass, muskie, crappie, and walleye, among others. Otherwise, recline back in town to enjoy Lake Hayward Public Beach by swimming, building sand castles, picnicking, and promenading. For animal lovers, Hayward offers the Wilderness Walk Zoo, home to lemurs, fawns, tigers, wolves, and bears. If there’s still time, head to Out of the Woods Winery to taste some of the finest wines in America.
Eagle River
Street view in Eagle River, Wisconsin
Eagle River is a unique town renowned for its 28 connected lakes between Eagle River and Three Lakes. The 28 chains of lakes make up the world’s largest inland lake network, so a summer vacation in this town will surely include a lot of water adventures, although there’s more. Once here, Eagle Lake County Park and Beach is a great spot to begin an adventure as it offers scenic lake views, birdwatching opportunities, picnic pavilions, a swimming pier, and a beach. Silver Lake Park is an alternative just outside the town, featuring picnic stands, a beach, and a playground. Away from the numerous lakes, history enthusiasts can learn about the town’s railroad history at the Eagle River Depot Museum. For ardent hikers, hit the 12-mile Anvil Lake Trail or the mile-long Franklin Nature Trail for sightseeing and birdwatching. When it’s time to wine and dine, head to Andy’s Pontoon Saloon or Braywood.
Sturgeon Bay
Sister Bay is a Town on the Wisconsin Door Peninsula.
Sturgeon Bay is an inviting town in the bay of the same name that promises a sensational waterfront summer experience. Once here, visitors can head to the captivating Cave Point County Park to hike to magnificent dolomite cliffs overlooking the charming Lake Michigan. Next, step down from the cliffs and join kayakers on the lake to discover underwater caves. Proceed with more adventures at Sunset Park, featuring an 18-acre lake, a swimming beach, a short trail, sports areas, and mesmerizing sunset views. Mix the experience with a little history at the Door County Maritime Museum which educates the public about the region’s maritime roots. Meanwhile, Sonny’s Pizzeria and Nightingale Super Club are great spots to stop by for world-class dining, while the Third Avenue Playhouse hosts exciting shows.
Lake Geneva
Lake Geneva, Wisconsin
Lake Geneva is a charming town in Walworth County with so much to offer year-round. In summer, the town is especially exciting as the waters of Geneva Lake offer endless opportunities for cruising, boating, fishing, kayaking, and canoeing. Visitors are also invited to recline at Riviera Beach to sunbathe, build sand castles, play, catch the sunset, and swim in the water. Head to Lake Geneva Ziplines and Adventures for some thrills to tour nine ziplines, five sky bridges, and four spiral staircases. History buffs can head to the Geneva Lake Museum to see Potawatomi Indian artifacts, Geneva Hotel artifacts, and other historic exhibits about the area. Before the end of the vacation, grab a souvenir from Trader’s Jack Gift Shop and White River Gifts to remind you of the town’s amazing features.
There are tons of reasons why towns like these have continued to top the list of summer travelers. With their irresistible natural and man-made charms, they offer a thing or two for every kind of visitor. From history buffs to foodies, adventurers, and laid-back visitors, everybody in these towns will have something to appreciate. Plus, each town is beside one or more water bodies, and there’s no better place to be in the middle of summer than near plenty of H2O. Visit these towns today and create memories while the summer lasts.
The Wisconsin Badgers men’s basketball team wasted no time scheduling an SEC opponent for the 2026-27 season.
Alex Rosinski confirmed the Badgers will head to Nashville on December 19 to play Auburn, a team competing for the NIT Championship on April 5.
The Tigers were the talk of the town come Selection Sunday with their 17-16 record. Claiming it had the nation’s best win at Florida on January 24, Auburn did everything in its power to talk its way into the NCAA Tournament. Instead, the team had to settle for the NIT.
Auburn has taken care of business against South Alabama, Seattle U, Nevada, and Illinois State en route to the championship game against Tulsa.
Advertisement
The Milwaukee Journal Sentinel also confirmed Wisconsin’s game against Auburn on December 19 will take place at the Bridgestone Arena. Auburn usually plays its home games at the Neville Arena, which is about a five-hour trip from the home of the Nashville Predators.
Even though Wisconsin is coming off a disappointing tournament loss, Greg Gard isn’t messing around. This is yet another high-profile non-conference game he’s added to the team’s schedule. For what it’s worth, this is only the second all-time meeting between these two teams.
Contact/Follow@TheBadgersWire on X (formerly Twitter) and like our page onFacebook to follow ongoing coverage of WisconsinBadgers news, notes and opinion.
Chilly Start To Easter but at least it is drying out in SE Wisconsin
After a very wet start to the month, we are finally drying out in SE Wisconsin
Advertisement
WE POSTED IT UNDER THE LINKS TAB ON THE 12 NEWS APP, AND YOU’RE GOING TO WANT TO DRESS WARMLY IF YOU’RE HEADED TO BRUNCH TOMORROW. CHURCH, YOU MIGHT NEED A JACKET. >> YEAH, WIND CHILLS ARE GOING TO BE IN THE 20S, SO IT’S NOT EXACTLY GOING TO BE WARM. IT GETS A LITTLE BIT BETTER AS THE DAY GOES ON, AND WE WILL GET SOME SUN TOMORROW. MORE THAN WHAT WE’VE HAD FOR TODAY. NOW SOME OF YOU GETTING A LITTLE GLIMPSE HERE AND THERE. THE SUN, IT HASN’T LASTED VERY LONG. BUT THE GOOD THING IS IT’S A DRY DAY. BUT THE CROWD. IF YOU’RE TRYING TO DO EASTER EGG HUNTS OUTSIDE, IT IS MUDDY, MUSHY. TAKE IT FROM A GUY WHO PLAYED GOLF TODAY. IT WAS VERY, VERY WET, COOLER, MORE SUNSHINE. AS THE DAY GOES ON, WHICH IS NICE. WE’LL GET MORE SUN, BUT WE’RE DRY ALL DAY. TEMPERATURES WARM UP TO AROUND 50. ALL RIGHT, LET’S TALK ABOUT NEXT WEEK. MAINLY DRY UNTIL WEDNESDAY. CHILLY THROUGH TUESDAY, ESPECIALLY MONDAY AND TUESDAY. TUESDAY ESPECIALLY HIGHS ONLY IN THE 30S. THAT’S NOT GOING TO BE VERY NICE. SHOWERS LIKELY. WEDNESDAY. THURSDAY. FRIDAY. SATURDAY. WE DON’T NEED THE RAIN BUT WE HAVE MORE RAIN IN THE FORECAST. WHEN I SAY WE DON’T NEED RAIN, THIS IS WHAT I MEAN. FOR THE MONTH, WE’VE ONLY HAD FOUR DAYS AND WE’VE HAD 3.5IN OF RAIN. WE ARE WAY ABOVE AVERAGE FOR THE MONTH AND THAT HAS MADE US A PRETTY GOOD AMOUNT ABOVE AVERAGE FOR THE YEAR. AND IT’S ALL ABOUT THE LAST FOUR DAYS WHEN YOU PICKED UP SO MUCH RAIN. IT’S JUST BEEN ROUND AFTER ROUND. AND YES, MORE RAIN IS IN THE FORECAST AS WE HEAD INTO THE MIDDLE AND LATTER PARTS OF NEXT WEEK. CHECK OUT THE SATELLITE MAP. YOU CAN ACTUALLY SEE THE CENTER OF LOW PRESSURE MOVING RIGHT OVER MINNEAPOLIS RIGHT NOW. THAT IS GOING TO CONTINUE TO BRING THESE CLOUDS AROUND, BUT THERE’S GOING TO BE MORE BREAKS AS TIME GOES ON. I THINK TOMORROW IS GOING TO BE A DECENT DAY. THERE ARE A FEW. WOULDN’T BE SURPRISED TO SEE A COUPLE LITTLE PASSING FLURRIES. AND THEN FOR TOMORROW MIGHT GET AN ISOLATED SPRINKLE LATER IN THE DAY. BUT IT’S IT’S NOT BAD. STILL WINDY THOUGH. NOT AS WINDY AS IT IS RIGHT NOW. ALL RIGHT. AGAIN, THIS IS KIND OF WHAT I’M TALKING ABOUT WITH THESE PASSING FLURRIES. THIS IS MONDAY AS WE WORK OUR WAY THROUGH MONDAY. IT’S THE SAME KIND OF STORY. IT’S NOT COMPLETELY SUNNY. IT’S NOT COMPLETELY CLOUDY. AGAIN, POSSIBLY SEEING A TINY FLURRY OR TWO. NOW NEXT WEEK, AS WE WORK OUR WAY IN THE MIDDLE OF THE WEEK, THAT’S WHEN THESE ROUNDS OF SHOWERS WILL BE COMING IN. OVERALL, YES, A SOGGY FORECAST STARTING ON WEDNESDAY. WE’RE NOT GOING TO RAIN THE ENTIRE TIME, BUT IT’S GOING TO BE ROUNDS OF RAIN. AND AGAIN, WE DON’T REALLY NEED IT LIVE. LOOK OUTSIDE. THAT. IT’S ACTUALLY PRETTY 43 DEGREES IN WAUKESHA AND WIND CHILLS ARE HANGING OUT AROUND. FREEZING. WON’T BE LONG. THEY’LL BE CARS BACK ON THE TRACKS. THERE WILL BE TONS OF PEOPLE ENJOYING ROAD AMERICA AND IT WON’T BE LONG. WE’LL SEE A LOT OF BOATS OUT HERE ON DELAVAN LAKE. TEMPERATURE 45 DEGREES. RIGHT NOW YOU CAN SEE THAT COOL AIR AND IT’S NOT GOING TO GO ANYWHERE. IT’S COOL AROUND HERE. RIGHT NOW, 46 IN MILWAUKEE IS THE WARMEST TEMP, 51 FOR TOMORROW. IT’S ABOUT EXACTLY NORMAL. BUT AGAIN, THE MORNING IS GOING TO BE CHILLY FOR SURE. MONDAY 46 ELECTION DAY A HIGH OF ONLY 38. BUT IT’S DRY AND THEN RAIN SHOWERS WEDNESDAY, THURSDAY, FRIDAY. SATURDAY. GREAT.
Advertisement
Chilly Start To Easter but at least it is drying out in SE Wisconsin
After a very wet start to the month, we are finally drying out in SE Wisconsin
Updated: 5:57 PM CDT Apr 4, 2026
Advertisement
Editorial Standards ⓘ
After a very wet start to the month, we are finally drying out in SE Wisconsin
After a very wet start to the month, we are finally drying out in SE Wisconsin
Police believe she is in a vehicle last seen driving Friday afternoon in Monroe County.
Advertisement
AMBER ALERT: Police say eight-year-old Wisconsin girl is missing
Police believe she is in a vehicle last seen driving Friday afternoon in Monroe County.
Advertisement
Updated: 6:01 AM CDT Apr 4, 2026
Editorial Standards ⓘ
Advertisement
An AMBER Alert is out for a Wisconsin girl.Police say eight-year-old Irene Lentz from Wautoma may be with Joseph Nicpon Jr. and Betty Lentz.Authorities believe Irene is in a 2005 Blue Buick Terraza with the license plate number BCU3028. Police say the vehicle was last seen at approximately 12:55 p.m. Friday driving westbound on I-90 in Monroe County near Sparta.If anybody knows where Irene may be, they are asked to immediately call the Wautoma Police Department at (920) 787-3321.
WAUTOMA, Wis. —
An AMBER Alert is out for a Wisconsin girl.
Police say eight-year-old Irene Lentz from Wautoma may be with Joseph Nicpon Jr. and Betty Lentz.
Advertisement
Wisconsin Crime NetworkPolice believe Irene Lentz is in this 2005 Blue Buick Terraza with the license plate number BCU3028. Authorities say the vehicle was last seen at approximately 12:55 p.m. Friday driving westbound on I-90 in Monroe County near Sparta.
Authorities believe Irene is in a 2005 Blue Buick Terraza with the license plate number BCU3028. Police say the vehicle was last seen at approximately 12:55 p.m. Friday driving westbound on I-90 in Monroe County near Sparta.
Advertisement
If anybody knows where Irene may be, they are asked to immediately call the Wautoma Police Department at (920) 787-3321.
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’);
});
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.wisn.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.wisn.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);
}
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
`;
}
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’);
});
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.wisn.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.wisn.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);
}
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