-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbackToTop.js
65 lines (60 loc) · 1.89 KB
/
backToTop.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
(function(){
this.scrollBtn=function(){
this.btn=null;
var defaults={
className: '',
el_tag: '',
el_id: '',
text: 'back to top',
durinTime: 550
}
if(arguments[0] && typeof arguments[0] === 'object'){
this.options=extendDefaults(defaults, arguments[0]);
}
appendToEl.call(this);
$('.backtop').on('click', this, function(e){
e.preventDefault();
if(e.data.options.el_tag !== ''){
if(e.data.options.el_tag === 'body' || e.data.options.el_tag === 'html')
$('html, body').animate({scrollTop: 0}, e.data.options.durinTime);
else $(e.data.options.el_tag).animate({scrollTop: 0}, e.data.options.durinTime);
}else if(e.data.options.el_id !== ''){
$(e.data.options.el_id).stop().animate({scrollTop: 0}, e.data.options.durinTime);
};
})
$(window).on('scroll', function(){
if($(this).scrollTop() > 20){
$('.backtop').addClass('show');
}else $('.backtop').removeClass('show');
})
}
function appendToEl(){
docFrag=document.createDocumentFragment();
this.btn=document.createElement('a');
this.btn.className='backtop ' + this.options.className;
this.btn.href='#';
this.btn.innerHTML=this.options.text;
docFrag.appendChild(this.btn);
if(this.options.el_tag !== ''){
document.getElementsByTagName(this.options.el_tag)[0].appendChild(docFrag);
}else if(this.options.el_id !== ''){
document.getElementById(this.options.el_id).appendChild(docFrag);
};
}
function extendDefaults(source, properties){
var property;
for(property in properties){
if(properties.hasOwnProperty(property)){
source[property] = properties[property];
}
}
return source;
}
})(window, document);
// var wraper = document.getElementById('top').id;
var topbtn = new scrollBtn({
el_tag: 'body', //放在標籤上 ex body
el_id: '', //放在id上 ex top
text: '回到最上層', //顯示文字
className: 'btn_position' //外掛class
});