RequireJS模块化开发案例,实现Scroll动画

//入口main-data文件代码,在页面中直接引入入口文件即可

requirejs.config({
	paths:{
		jquery:"jquery-1.12.4"
	}
});<span style="font-family: Arial, Helvetica, sans-serif;">//path定义我们的路径</span>
requirejs(["jquery","BackTop","scrollTo"],function($,BackTop,scrollTo){  //引入我们要依赖的模块文件
	
	new BackTop.BackTop($(".sidebar_up"),{
		 mode:"move",
		 pos:$(window).height(),
		 speed:2000
	});

	var scroll_0 = new scrollTo.ScrollTo({dest:550,speed:1000});
	$("#floor_0").on("click",$.proxy(scroll_0.move,scroll_0));
	
	
	var scroll_1 = new scrollTo.ScrollTo({dest:1150,speed:1000});
	$("#floor_1").on("click",$.proxy(scroll_1.move,scroll_1));
	
	
	var scroll_2 = new scrollTo.ScrollTo({dest:550,speed:1000});
	$("#floor_2").on("click",$.proxy(scroll_2.move,scroll_2));
	
	
	var scroll_3 = new scrollTo.ScrollTo({dest:2500,speed:1000});
	$("#floor_3").on("click",$.proxy(scroll_3.move,scroll_3));

});
//定义编写模块文件ScrollTo.js
<pre name="code" class="javascript">define(["jquery"], function($) {
	function ScrollTo(opts) {
		this.opts = $.extend({}, scrollTo.DEFAULTS, opts);
		this.$el = $("html,body");
	}
	ScrollTo.prototype.move = function() {
		var opts = this.opts;
		var dest = opts.dest;
		if($(window).scrollTop() != dest) {
			if(!this.$el.is(":animated")) {
				this.$el.animate({
					scrollTop: dest
				}, opts.speed);
			}
		}

	};
	ScrollTo.prototype.go = function() {
		var dest = this.opts.dest;
		if($(window).scrollTop() != dest) {
			this.$el.scrollTop(dest);
		}
	};
	ScrollTo.DEFAULTS = {
		dest: 0,
		speed: 800
	};

	return {
		ScrollTo: ScrollTo
	};
});

 
//定义编写模块文件BackTo.js
define(["jquery", "scrollTo"], function($, scrollTo) {
	function BackTop(el, opts) {
		this.opts = $.extend({}, BackTop.DEFAULTS, opts);
		this.$el = $(el);
		this.scroll = new scrollTo.ScrollTo({
			dest: 0,
			speed: this.opts.speed
		});
		this._checkPosition();
		if(this.opts.mode == "move") {

			this.$el.on("click", $.proxy(this._move, this));
		} else {
			this.$el.on("click", $.proxy(this._go, this));

		}
		$(window).on("scroll", $.proxy(this._checkPosition, this));
	}
	BackTop.DEFAULTS = {
		mode: "move",
		pos: $(window).height(),
		speed: 800
	};
	BackTop.prototype._move = function() {
		this.scroll.move();
	};
	BackTop.prototype._go = function() {
		this.scroll.go();
	};
	BackTop.prototype._checkPosition = function() {
		var $el = this.$el;
		if($(window).scrollTop() > this.opts.pos) {
			$el.fadeIn();
		} else {
			$el.fadeOut();
		}
	};
	$.fn.extend({
		backtop: function(opts) {
			return this.each(function() {
				new BackTop(this, opts);
			});
		}
	});

	return {
		BackTop: BackTop
	};

});


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值