MUSKEGON, Mich. (WOOD) – After nearly a straight week of rain and cloud, the sun and heat will appear just in time for the holiday weekend.

Thursday afternoon there were dangerous conditions over Lake Michigan. A small craft advisory and a beach hazard statement are in effect at the lake. If you’re hoping to get out and hang out by the lake late Thursday, watch for waves 3-6 feet and northerly winds around 20-30 knots.

Water temperatures were generally in the 60s at local Lake Michigan beaches Thursday afternoon. Northerly winds could push some of these warmer surface waters south. It is possible that cooler water will rise by this weekend, resulting in cooler swimming temperatures.

The waves won’t be as high on Friday compared to Thursday, but they will still be a bit choppy. Northerly winds of 10 to 20 knots will result in waves of 2 to 4 feet. Temperatures by the lake will be in the upper 60s and it will be a dry, sunny day.

Calm will return on Saturday. Waves will be about a foot or less and winds will be from the west at 10 to 20 knots. Temperatures by the lake will be in the low 70s and the weather will be mostly sunny.

July 4th itself should be a beautiful day by the lake. The humidity will start to rise and the temperatures at the beach will be in the mid-70s. It will be another sunny and dry day. The waves will be about a foot and the winds will be from the west at 10 to 15 knots.

Monday will be hot and humid again. Some showers will be possible at the end of the day but the day itself promises to be dry. Winds will be southwesterly at 10 to 15 knots and the waves will reach about 1 to 2 feet.

Lake Michigan Beach and Boating Forecast is sponsored by Elhart Automotive Campus and Michigan State University Federal Credit Union.

`)); // Integrated Facebook script (function (d, s, id) {var js, fjs = d.getElementsByTagName (s)[0]; if (d.getElementById (id)) return; js = d.createElement (s); = identifier; js.src = “″; fjs.parentNode.insertBefore (js, fjs); } (document, ‘script’, ‘facebook-jssdk’)); // Integration of the Twitter script (function (d, s, id) {var js, tjs = d.getElementsByTagName (s)[0]; if (d.getElementById (id)) return; js = d.createElement (s); = identifier; js.setAttribute (‘async’, ”); js.src = “”; tjs.parentNode.insertBefore (js, tjs); } (document, ‘script’, ‘twitter-js’)); } // Simplify some iframe stuff var iframes = $ (‘iframe’); iframes .filter (‘.responsive’) .each (function (_, frame) {// 16×9 responsive ratio iframes var $ frame = $ (frame); $ (frame) .css ({position: ‘absolute’, top: 0, left: 0, right: 0, width: ‘100%’, height: ‘100%’,}). Parent (). AddClass (‘wood-responsive-container wood-responsive-container-16×9’);} ); var lazyFrames = iframes .filter (‘[data-lazy-src]’); function woodMakeLazyFrame (selector) {var observer; var options = {root: null, rootMargin: ‘0px’, threshold: 0,}; function handler (entries, observer) {entries.forEach (function (entry) {var ioR = entry.intersectionRatio; if (ioR> 0) { =; observer.unobserve ( entry .target);}}); } observer = new IntersectionObserver (manager, options); observe.observ (selector); } lazyFrames.each ((_, frame) => woodMakeLazyFrame (frame)); }); } (jQuery))