(function ($) { $.fn.scrollClass = function ($setting) { var fnSelect = this; var className = $setting.className; var delay = $setting.delay; var increment = $setting.increment; var loop = $setting.loop; var mobile = $setting.mobile; var breakpointsData = $setting.breakpoints; var distance = $setting.distance; increment || (increment = false); loop || (loop = false); delay || (delay = 0); mobile || (mobile = false); distance || (distance = 0); var nullBreakpoint = {'$(window).width()': distance}; var newDistance = breakpointsData || nullBreakpoint; var distanceKey=Object.keys(newDistance).sort().reverse();// 鎷垮埌閿€煎€掑彊 function widthResize() { function exeDistance() { var distanceNum = 0; for (var i = 0; i < distanceKey.length; i++) { if ($(window).width() < distanceKey[i]) { distanceNum = newDistance[distanceKey[i]].distance; } else if (distanceNum == 0 && i == distanceKey.length - 1) { distanceNum = distance; } } srollClassEvent(distanceNum); } if ($(window).width() < 1000) { if (mobile) { exeDistance(); } else { $(fnSelect.selector).removeClass(className); return false; } } else { exeDistance(); } } function srollClassEvent(distanceValue) { var timer = 1 fnSelect.each(function (index) { var eachSelect = $(this); var scrollPosition = eachSelect.offset().top + distanceValue; if (increment) { if ($(window).scrollTop() > scrollPosition - $(window).height() && $(window).scrollTop() < scrollPosition + eachSelect.innerHeight()) { setTimeout(function () { eachSelect.addClass(className) }, delay * timer++) } else if ($(window).scrollTop() > scrollPosition - $(window).height()) { setTimeout(function () { eachSelect.addClass(className) }, delay) } else if (loop) { eachSelect.removeClass(className) } else { return false; } } else { if ($(window).scrollTop() > scrollPosition - $(window).height()) { setTimeout(function () { eachSelect.addClass(className) }, delay) } else if (loop) { eachSelect.removeClass(className) } else { return false; } } }) } $(window).resize(function () { widthResize(); }); $(document).ready(function () { widthResize(); }); $(window).scroll(function () { widthResize(); }); return this } })(jQuery)