/* ============================================= name : top.js ============================================= */ var app; $(function(){ var $win = $(window), $sideNaviPrev = $("#side-navi .prev"), $sideNaviNext = $("#side-navi .next"); var scrollTop = 0; app = { init : function(){ this.resizeEvent(); this.scrollEvent(); this.sideNavi.init(); }, sideNavi : { target : [ "content", "purposeArea_scrollTop", "nature", "beach", "city", "diving", "ladies" ], init : function(){ var _this = this; _this.targetPos = new Array(); $.each(_this.target, function(){ _this.targetPos.push($("#" + this).offset().top); }); _this.clickEvent(); }, clickEvent : function(){ var _this = this; var myClickEvent = 'click.appSideNavi'; $sideNaviPrev.off(myClickEvent).on(myClickEvent, function(){ _this.setTarget("prev"); return false; }); $sideNaviNext.off(myClickEvent).on(myClickEvent, function(){ _this.setTarget("next"); return false; }); }, setTarget : function(dir){ var _this = this; var num; $.each(_this.targetPos, function(i){ if(scrollTop < ( this - 1 )){ if(dir === "prev"){ num = i - 2; }else if(dir === "next"){ num = i; }else{ return false; } if(num < 0){ num = 0; } _this.scrollToTarget(_this.target[num]); return false; /*}else if(scrollTop === (_this.targetPos[_this.targetPos.length - 1] - 1)){ if(dir === "prev"){ num = _this.targetPos.length - 2; }else{ return false; } _this.scrollToTarget(_this.target[num]); return false;*/ }else if(scrollTop >= (_this.targetPos[_this.targetPos.length - 1] - 1)){ if(dir === "prev"){ num = _this.targetPos.length - 2; }else{ return false; } _this.scrollToTarget(_this.target[num]); return false; } }); }, scrollToTarget : function(_target){ var $target = $("#" + _target); if ($target.length) { var targetOffset = $target.offset().top; jQuery('html,body').stop().animate({ scrollTop: targetOffset }, 600, 'swing'); } } }, resizeEvent : function(){ var _this = this; $win.resize(function(){ _this.sideNavi.init(); }); }, scrollEvent : function(){ $win.scroll(function(){ scrollTop = $(this).scrollTop(); }); } } });