本文实例讲述了requireJS模块化实现返回顶部功能的方法。分享给大家供大家参考,具体如下:
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、重庆小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了芗城免费建站欢迎大家使用!
引用requireJs
html部分
新建main.js
require.config({ paths:{ jquery:'jquery' } }); requirejs(['jquery','backtop'],function($,backtop){ $('#top').backtop({ mode:"move", pos:100, dest:500, speed:20000 }) });
创建backtop模块 backtop.js
/** * Created by Administrator on 2016/3/24. */ define(["jquery","scrollTo"],function($, scroll){ function backtop(el,opts){ this.opts = $.extend({},backtop.default,opts); this.$el = $(el); this.scroll = new scroll.scrollTo({ dest:this.opts.dest, speed:this.opts.speed }); this._checkPostion(); 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._checkPostion,this)) }; backtop.prototype._move = function(){ this.scroll.move() }; backtop.prototype._go = function(){ this.scroll.go() }; backtop.prototype._checkPostion = function(){ if($(window).scrollTop() > this.opts.pos){ this.$el.fadeIn(); }else{ this.$el.fadeOut(); } } $.fn.extend({ backtop:function(opts){ return this.each(function(){ new backtop(this,opts); }) } }); backtop.default = { mode:"move", pos:100, dest:0, speed:800 } return{ backtop:backtop } })
backtop 依赖 scrollTo模块
创建scrollTo.js
define(['jquery'],function($){ function scrollTo(opts){ this.opts = $.extend({},scrollTo.DEFAULTS,opts); this.$el = $("html,body"); } scrollTo.prototype.move = function(){ if($(window).scrollTop() != this.opts.dest){ //if(!this.$el.is(":animated")){ this.$el.animate({scrollTop:this.opts.dest},this.opts.speed); //} } }; scrollTo.prototype.go = function(){ this.$el.scrollTop(this.opts.dest) }; scrollTo.DEFAULTS = { dest:0, speed:800 }; return { scrollTo:scrollTo } });
希望本文所述对大家基于requireJS的程序设计有所帮助。