1
1
"use strict" ;
2
2
var Lazyload = function ( elements , options ) {
3
3
var that = this ;
4
- var settings = {
4
+ this . settings = {
5
5
threshold : 0 , // 临界值
6
6
event : 'scroll' , // 事件类型
7
7
container : window , // 容器
@@ -11,41 +11,41 @@ var Lazyload = function(elements,options){
11
11
}
12
12
13
13
for ( var item in options ) {
14
- settings [ item ] = options [ item ] ;
14
+ this . settings [ item ] = options [ item ] ;
15
15
}
16
16
17
17
for ( var i = 0 ; i < elements . length ; i ++ ) {
18
18
var src = elements [ i ] . getAttribute ( 'src' ) ;
19
19
if ( ! src || src == '' ) {
20
- elements [ i ] . src = settings . placeholder ;
20
+ elements [ i ] . src = this . settings . placeholder ;
21
21
}
22
- that . update ( settings , elements [ i ] ) ;
22
+ that . update ( elements [ i ] ) ;
23
23
}
24
24
25
- settings . container . onscroll = function ( ) {
25
+ this . settings . container . onscroll = function ( ) {
26
26
for ( var i = 0 ; i < elements . length ; i ++ ) {
27
- that . update ( settings , elements [ i ] ) ;
27
+ that . update ( elements [ i ] ) ;
28
28
}
29
29
}
30
30
}
31
31
32
32
33
33
Lazyload . prototype = {
34
34
// 判断是否触发图片更新
35
- update : function ( setting , element ) {
36
- if ( this . abovethetop ( setting , element ) && this . abovetheleft ( setting , element ) ) {
37
- setting . apper && setting . apper ( element ) ;
35
+ update : function ( element ) {
36
+ if ( this . abovethetop ( element ) && this . abovetheleft ( element ) ) {
37
+ this . settings . apper && this . settings . apper ( element ) ;
38
38
this . change ( element ) ;
39
39
}
40
40
} ,
41
41
// 判断是否接近
42
- abovethetop : function ( setting , element ) {
42
+ abovethetop : function ( element ) {
43
43
var fold ,
44
44
containerHeight ;
45
- if ( element . getAttribute ( 'src' ) != setting . placeholder ) {
45
+ if ( element . getAttribute ( 'src' ) != this . settings . placeholder ) {
46
46
return false ;
47
47
}
48
- if ( setting . container == undefined || setting . container == window ) {
48
+ if ( this . settings . container == undefined || this . settings . container == window ) {
49
49
if ( window . pageYOffset ) {
50
50
fold = window . pageYOffset ;
51
51
}
@@ -54,19 +54,19 @@ Lazyload.prototype = {
54
54
}
55
55
containerHeight = document . documentElement . clientHeight
56
56
} else {
57
- fold = setting . container . scrollTop ;
58
- containerHeight = setting . container . clientHeight
57
+ fold = this . settings . container . scrollTop ;
58
+ containerHeight = this . settings . container . clientHeight
59
59
}
60
60
fold = fold ? fold : 0 ;
61
- return fold + containerHeight + setting . threshold >= element . offsetTop ;
61
+ return fold + containerHeight + this . settings . threshold >= element . offsetTop ;
62
62
} ,
63
- abovetheleft : function ( setting , element ) {
63
+ abovetheleft : function ( element ) {
64
64
var fold ,
65
65
containerWidth ;
66
- if ( element . getAttribute ( 'src' ) != setting . placeholder ) {
66
+ if ( element . getAttribute ( 'src' ) != this . settings . placeholder ) {
67
67
return false ;
68
68
}
69
- if ( setting . container == undefined || setting . container == window ) {
69
+ if ( this . settings . container == undefined || this . settings . container == window ) {
70
70
if ( window . pageYOffset ) {
71
71
fold = window . pageXOffset ;
72
72
}
@@ -75,11 +75,11 @@ Lazyload.prototype = {
75
75
}
76
76
containerWidth = document . documentElement . clientWidth
77
77
} else {
78
- fold = setting . container . scrollLeft ;
79
- containerWidth = setting . container . clientWidth
78
+ fold = this . settings . container . scrollLeft ;
79
+ containerWidth = this . settings . container . clientWidth
80
80
}
81
81
fold = fold ? fold : 0 ;
82
- return fold + containerWidth + setting . threshold >= element . offsetLeft ;
82
+ return fold + containerWidth + this . settings . threshold >= element . offsetLeft ;
83
83
} ,
84
84
// 改变默认图片
85
85
change : function ( element ) {
0 commit comments