使用jquery做一个回到顶部按钮

2016-11-29  本文已影响0人  没梦想的咸鱼丶

本文章著作权归没梦想的咸鱼丶所有,转载须说明来源

产生需求

开始撸代码

  1. 把这个键插入到HTML中,为什么不直接在HTML中写呢?主要我们既然是使用js来做这个事,那最好就一切都用js代码来操作,不互相耦合,以后即使我们要修改那也只需要改js代码就好了,不关HTML任何事。
    var $goTop=$('<div id="to-top">回到顶部</div>');    
        $('body').append($goTop)
  1. 监听事件,我设置的是当滚动条滚动到超过100之后就展示滚动条,否则都是出于隐藏状态。另外当点击goTop键之后立马把滚动条设置为0回到最顶部。
$(window).on('scroll',function(){
            var  $scrollTop=$('body').scrollTop();
            if ($scrollTop>100) {
                $('#to-top').show();
            }else{
                $('#to-top').hide();
            }
        })
        $('#to-top').on('click',function(){
            $(window).scrollTop(0);
        })
  1. 另外插入goTop的css需要自己设置样式,毕竟不同页面样式肯定也会有不同

优化优化

简单的功能我们是做出来了,但还有一些bug,而且这样功能其实我们只要做一次就够了 ,以后直接拿来用。所以还需要封装下。

var GoTop={
    init:function(){
        if ($('#to-top').length>0) { return }//如果已经插入过元素一次就不需要做第二次了
        var $goTop=$('<div id="to-top">回到顶部</div>');
        $('body').append($goTop); 
        this.$goTop=$goTop; 
              //把这个节点赋值为对象属性,以后修改的时候只需要修改这部分就好了
        this.bind();
    },
    bind:function(){
        var me=this;
        $(window).on('scroll',function(){
            var  $scrollTop=$('body').scrollTop();
            if ($scrollTop>100) {
                me.$goTop.show(); //这里this已经发生了改变,所以用变量me保存了下
            }else{
                me.$goTop.hide();
            }
        })
        this.$goTop.on('click',function(){
            $(window).scrollTop(0);
        })
    }
}
  
GoTop.init(); 每次只需要调用这个方法就好了,而且即使执行多次也只需要插入一个按钮       
上一篇 下一篇

猜你喜欢

热点阅读