LoftLoader - Version 2.1.8

Version Description

  • Fixed: Compatibility issue with maintenance/coming soon plugins
Download this release

Release Info

Developer loftocean
Plugin Icon 128x128 LoftLoader
Version 2.1.8
Comparing to
See all releases

Code changes from version 2.1.7 to 2.1.8

assets/css/loftloader-settings.css CHANGED
@@ -1,12 +1,12 @@
1
  /**
2
  * LoftLoader Lite Setting Panel Style
3
- *
4
  * Plugin Name: LoftLoader
5
  * Plugin URI: http://www.loftocean.com/loftloader
6
  * Author: Kaylolo Yinxi Chen @Loft.Ocean
7
  * Author URI: http://www.loftocean.com
8
  * Description: LoftLoader (Lite Version) is a plugin for adding beautiful and smooth preload animation to your WordPress website. With setting options, you can choose from preset animations, add custom logo image, choose colours to match your branding, and amuse and impress your visitors while loading site content.
9
- * Version: 2.1.7
10
  */
11
  @import url(https://fonts.googleapis.com/css?family=Lato:400,600);
12
  #customize-theme-controls.loftloader-controls-wrapper {
@@ -399,4 +399,4 @@
399
 
400
  .customize-partial-edit-shortcut,
401
  .widget .customize-partial-edit-shortcut {
402
- display: none !important; }
1
  /**
2
  * LoftLoader Lite Setting Panel Style
3
+ *
4
  * Plugin Name: LoftLoader
5
  * Plugin URI: http://www.loftocean.com/loftloader
6
  * Author: Kaylolo Yinxi Chen @Loft.Ocean
7
  * Author URI: http://www.loftocean.com
8
  * Description: LoftLoader (Lite Version) is a plugin for adding beautiful and smooth preload animation to your WordPress website. With setting options, you can choose from preset animations, add custom logo image, choose colours to match your branding, and amuse and impress your visitors while loading site content.
9
+ * Version: 2.1.8
10
  */
11
  @import url(https://fonts.googleapis.com/css?family=Lato:400,600);
12
  #customize-theme-controls.loftloader-controls-wrapper {
399
 
400
  .customize-partial-edit-shortcut,
401
  .widget .customize-partial-edit-shortcut {
402
+ display: none !important; }
assets/css/loftloader.css CHANGED
@@ -1,12 +1,12 @@
1
  /**
2
  * LoftLoader Lite Frontend Style
3
- *
4
  * Plugin Name: LoftLoader
5
  * Plugin URI: http://www.loftocean.com/loftloader
6
  * Author: Kaylolo Yinxi Chen @Loft.Ocean
7
  * Author URI: http://www.loftocean.com
8
  * Description: LoftLoader (Lite Version) is a plugin for adding beautiful and smooth preload animation to your WordPress website. With setting options, you can choose from preset animations, add custom logo image, choose colours to match your branding, and amuse and impress your visitors while loading site content.
9
- * Version: 2.1.7
10
  */
11
  @-webkit-keyframes spinReturn {
12
  0% {
@@ -631,4 +631,4 @@ body {
631
  word-wrap: normal !important; }
632
  .loader-close-button .close-des {
633
  padding: 0 5px;
634
- font-size: 12px; }
1
  /**
2
  * LoftLoader Lite Frontend Style
3
+ *
4
  * Plugin Name: LoftLoader
5
  * Plugin URI: http://www.loftocean.com/loftloader
6
  * Author: Kaylolo Yinxi Chen @Loft.Ocean
7
  * Author URI: http://www.loftocean.com
8
  * Description: LoftLoader (Lite Version) is a plugin for adding beautiful and smooth preload animation to your WordPress website. With setting options, you can choose from preset animations, add custom logo image, choose colours to match your branding, and amuse and impress your visitors while loading site content.
9
+ * Version: 2.1.8
10
  */
11
  @-webkit-keyframes spinReturn {
12
  0% {
631
  word-wrap: normal !important; }
632
  .loader-close-button .close-des {
633
  padding: 0 5px;
634
+ font-size: 12px; }
assets/scss/loftloader-settings.scss CHANGED
@@ -1,12 +1,12 @@
1
  /**
2
  * LoftLoader Lite Setting Panel Style
3
- *
4
  * Plugin Name: LoftLoader
5
  * Plugin URI: http://www.loftocean.com/loftloader
6
  * Author: Kaylolo Yinxi Chen @Loft.Ocean
7
  * Author URI: http://www.loftocean.com
8
  * Description: LoftLoader (Lite Version) is a plugin for adding beautiful and smooth preload animation to your WordPress website. With setting options, you can choose from preset animations, add custom logo image, choose colours to match your branding, and amuse and impress your visitors while loading site content.
9
- * Version: 2.1.7
10
  */
11
 
12
 
@@ -44,7 +44,7 @@ $description-color: #888;
44
  @mixin slidervalue {
45
  span.customize-control-title {
46
  display: inline;
47
-
48
  & + span {
49
  float: right;
50
  padding-right: 5px;
@@ -52,7 +52,7 @@ $description-color: #888;
52
  letter-spacing: 0.05em;
53
  font-weight: bold;
54
  color: $text-color;
55
-
56
  input {
57
  width: 60px;
58
  padding-right: 0;
@@ -75,18 +75,18 @@ $description-color: #888;
75
 
76
  #customize-theme-controls.loftloader-controls-wrapper {
77
  font-family: Lato;
78
-
79
  .customize-section-title h3 {
80
  font-size: 18px;
81
  font-weight: 600;
82
  letter-spacing: 0.05em;
83
  color: $text-color;
84
-
85
  span {
86
  letter-spacing: 0;
87
  }
88
  }
89
-
90
  .customize-control-title {
91
  margin-top: 0;
92
  font-size: 12px;
@@ -94,24 +94,24 @@ $description-color: #888;
94
  font-weight: bold;
95
  text-transform: none;
96
  color: $text-color;
97
-
98
  + span.description {
99
  margin-top: -6px;
100
  }
101
  }
102
-
103
  span.description {
104
  margin-bottom: 12px;
105
  font-size: 11px;
106
  font-style: normal;
107
  color: $description-color;
108
-
109
  strong {
110
  color: $text-color;
111
  font-weight: bold;
112
  }
113
  }
114
-
115
  select,
116
  input[type="text"],
117
  input[type="number"],
@@ -124,7 +124,7 @@ $description-color: #888;
124
  border-color: $primary-color;
125
  box-shadow: none;
126
  }
127
-
128
  input[type="text"],
129
  input[type="number"],
130
  button.button.remove-button {
@@ -132,16 +132,16 @@ $description-color: #888;
132
  text-align: center;
133
  @include roundedcorner;
134
  }
135
-
136
  #customize-control-loftloader_show_close_tip input[type="text"] {
137
  width: 100%;
138
  text-align: left;
139
  }
140
-
141
  button.button.remove-button:hover {
142
  opacity: 0.75;
143
  }
144
-
145
  input[type="checkbox"] {
146
  position: relative;
147
  float: right;
@@ -152,7 +152,7 @@ $description-color: #888;
152
  border: 2px solid $primary-color;
153
  box-shadow: none;
154
  font-size: 0;
155
-
156
  &:checked:before {
157
  position: absolute;
158
  top: 50%;
@@ -160,26 +160,26 @@ $description-color: #888;
160
  @include transform(translate(-50%, -50%));
161
  margin: 0 0 0 -3px;
162
  color: $primary-color;
163
-
164
  @media screen and (max-width: 782px) {
165
  & {
166
  margin: 0 0 0 -8px;
167
  }
168
  }
169
  }
170
-
171
  &:hover {
172
  opacity: 0.75;
173
  }
174
  }
175
-
176
  .loftloader-radiobtn {
177
  display: none;
178
  width: inherit;
179
  height: inherit;
180
  opacity: 0;
181
  margin: 0;
182
-
183
  + span {
184
  position: absolute;
185
  top: 0;
@@ -190,12 +190,12 @@ $description-color: #888;
190
  border: 2px solid $secondary-color;
191
  box-sizing: border-box;
192
  }
193
-
194
  &:checked + span {
195
  border-color: $primary-color;
196
  }
197
  }
198
-
199
  .customize-control-btn {
200
  label {
201
  position: relative;
@@ -203,20 +203,20 @@ $description-color: #888;
203
  margin-left: 0;
204
  padding: 0;
205
  }
206
-
207
  span.customize-control-title {
208
  display: inline;
209
-
210
  & + div {
211
  float: right;
212
  }
213
  }
214
  }
215
-
216
  .accordion-section-content {
217
  padding: 0;
218
  background: #FFF;
219
-
220
  &:before {
221
  position: absolute;
222
  top: 0;
@@ -228,28 +228,28 @@ $description-color: #888;
228
  background: #FFF;
229
  content: "";
230
  }
231
-
232
  li {
233
  padding: 15px 12px;
234
  margin-bottom: 0;
235
  border-bottom: 1px solid #EEE;
236
  box-sizing: border-box;
237
-
238
  &.customize-section-description-container {
239
  padding: 12px 12px 0;
240
  border-bottom: none;
241
  }
242
-
243
  &:last-of-type {
244
  border-bottom: none;
245
  }
246
  }
247
  }
248
-
249
  .wp-picker-container {
250
  overflow: visible;
251
  width: auto;
252
-
253
  .wp-color-result {
254
  width: 24px;
255
  height: 24px;
@@ -259,7 +259,7 @@ $description-color: #888;
259
  border-radius: 50%;
260
  box-shadow: none !important;
261
  line-height: 28px;
262
-
263
  &:after {
264
  right: auto;
265
  left: 24px;
@@ -272,27 +272,27 @@ $description-color: #888;
272
  text-align: left;
273
  line-height: 24px;
274
  }
275
-
276
  .wp-color-result-text {
277
  margin-left: 24px;
278
  background: none;
279
  border: none;
280
  color: inherit;
281
  line-height: 24px;
282
-
283
  body.rtl & {
284
  margin-right: 24px;
285
  margin-left: 0;
286
  }
287
  }
288
  }
289
-
290
  .wp-picker-open + .wp-picker-input-wrap {
291
  float: right;
292
  margin-top: -2px;
293
  width: auto;
294
  }
295
-
296
  input[type="text"].wp-color-picker {
297
  display: inline-block;
298
  padding: 0 5px;
@@ -303,25 +303,25 @@ $description-color: #888;
303
  font-family: Lato;
304
  line-height: 26px;
305
  }
306
-
307
  .button.wp-picker-default {
308
  display: none;
309
  }
310
  }
311
-
312
  .attachment-media-view,
313
  .media-widget-preview.media_audio,
314
  .media-widget-preview.media_image {
315
  background: none;
316
  }
317
-
318
  .loader-ui-slider {
319
  height: 16px;
320
  margin-top: 12px;
321
  background: none;
322
  border-radius: 0;
323
  border: none;
324
-
325
  &:before {
326
  position: absolute;
327
  top: 50%;
@@ -332,14 +332,14 @@ $description-color: #888;
332
  background: $secondary-color;
333
  content: "";
334
  }
335
-
336
  .ui-slider-range {
337
  top: 50%;
338
  @include transform(translateY(-50%));
339
  height: 2px;
340
  background: $primary-color;
341
  }
342
-
343
  .ui-slider-handle {
344
  top: 50%;
345
  @include transform(translateY(-50%));
@@ -350,39 +350,39 @@ $description-color: #888;
350
  border-radius: 50%;
351
  }
352
  }
353
-
354
  &.loftloader-settings-disabled {
355
  li#accordion-section-loftloader_switch ~ li {
356
  @include optionsdisabled;
357
  }
358
  }
359
-
360
  li.customize-control.customize-control-image .thumbnail.thumbnail-image {
361
  background-color: #EEE;
362
  }
363
-
364
  li#accordion-section-loftloader_switch {
365
  margin-bottom: 10px;
366
-
367
  .accordion-section-title {
368
  padding: 20px 10px 22px 14px;
369
-
370
  &:after {
371
  display: none;
372
  }
373
  }
374
  }
375
-
376
  li.customize-control.customize-control-slider {
377
  @include slidervalue;
378
  }
379
-
380
  li.customize-control.customize-control-check {
381
  span.customize-control-title {
382
  display: inline;
383
  }
384
  }
385
-
386
  li#customize-control-loftloader_loader_type {
387
  .customize-more-toggle {
388
  position: relative;
@@ -399,7 +399,7 @@ $description-color: #888;
399
  background: $primary-color;
400
  border-radius: 50%;
401
  border: none;
402
-
403
  &:before {
404
  position: absolute;
405
  top: 50%;
@@ -414,24 +414,24 @@ $description-color: #888;
414
  transform-origin: 50% 50%;
415
  content: "";
416
  }
417
-
418
  &:focus {
419
  outline: none;
420
  opacity: 0.5;
421
  }
422
-
423
  &.expanded {
424
  @include transform(rotate(-45deg));
425
  }
426
-
427
  & + span.description {
428
  margin: 12px 0 0;
429
  }
430
  }
431
-
432
  #loftloader_option_animation {
433
  margin-top: 12px;
434
-
435
  label {
436
  position: relative;
437
  float: left;
@@ -439,13 +439,13 @@ $description-color: #888;
439
  height: 45px;
440
  margin: 0 -2px -2px 0;
441
  padding: 0;
442
-
443
  @include animations(8);
444
-
445
  .loftloader-radiobtn {
446
  & + span {
447
  overflow: hidden;
448
-
449
  &:after {
450
  position: absolute;
451
  top: 0;
@@ -460,7 +460,7 @@ $description-color: #888;
460
  }
461
  }
462
  }
463
-
464
  .loftloader-radiobtn:checked + span {
465
  z-index: 8;
466
  &:after {
@@ -468,7 +468,7 @@ $description-color: #888;
468
  }
469
  }
470
  }
471
-
472
  &:after {
473
  position: relative;
474
  display: block;
@@ -477,7 +477,7 @@ $description-color: #888;
477
  }
478
  }
479
  }
480
-
481
  li#customize-control-loftloader_customimg {
482
  button.upload-button {
483
  position: relative;
@@ -490,14 +490,14 @@ $description-color: #888;
490
  border: 2px solid $primary-color;
491
  box-shadow: none;
492
  font-size: 0;
493
-
494
  &:before,
495
  &:after {
496
  position: absolute;
497
  content: "";
498
  display: block;
499
  }
500
-
501
  &:before {
502
  top: 50%;
503
  left: 50%;
@@ -509,7 +509,7 @@ $description-color: #888;
509
  border-bottom: none;
510
  transform-origin: 50% 50%;
511
  }
512
-
513
  &:after {
514
  top: 50%;
515
  left: 50%;
@@ -518,22 +518,22 @@ $description-color: #888;
518
  height: 16px;
519
  background: $primary-color;
520
  }
521
-
522
  &:hover {
523
  opacity: 0.75;
524
  }
525
  }
526
-
527
  .current {
528
  margin-top: 15px;
529
  }
530
  }
531
-
532
  li.customize-control-number {
533
  label {
534
  position: relative;
535
  display: block;
536
-
537
  > span:last-child {
538
  float: right;
539
  z-index: 9;
@@ -541,13 +541,13 @@ $description-color: #888;
541
  font-weight: bold;
542
  letter-spacing: 0.05em;
543
  color: $text-color;
544
-
545
  input[type="number"] {
546
  margin-right: 5px;
547
  }
548
  }
549
  }
550
-
551
  span.customize-control-title {
552
  display: inline;
553
  }
@@ -567,4 +567,4 @@ $description-color: #888;
567
  .customize-partial-edit-shortcut,
568
  .widget .customize-partial-edit-shortcut {
569
  display: none !important;
570
- }
1
  /**
2
  * LoftLoader Lite Setting Panel Style
3
+ *
4
  * Plugin Name: LoftLoader
5
  * Plugin URI: http://www.loftocean.com/loftloader
6
  * Author: Kaylolo Yinxi Chen @Loft.Ocean
7
  * Author URI: http://www.loftocean.com
8
  * Description: LoftLoader (Lite Version) is a plugin for adding beautiful and smooth preload animation to your WordPress website. With setting options, you can choose from preset animations, add custom logo image, choose colours to match your branding, and amuse and impress your visitors while loading site content.
9
+ * Version: 2.1.8
10
  */
11
 
12
 
44
  @mixin slidervalue {
45
  span.customize-control-title {
46
  display: inline;
47
+
48
  & + span {
49
  float: right;
50
  padding-right: 5px;
52
  letter-spacing: 0.05em;
53
  font-weight: bold;
54
  color: $text-color;
55
+
56
  input {
57
  width: 60px;
58
  padding-right: 0;
75
 
76
  #customize-theme-controls.loftloader-controls-wrapper {
77
  font-family: Lato;
78
+
79
  .customize-section-title h3 {
80
  font-size: 18px;
81
  font-weight: 600;
82
  letter-spacing: 0.05em;
83
  color: $text-color;
84
+
85
  span {
86
  letter-spacing: 0;
87
  }
88
  }
89
+
90
  .customize-control-title {
91
  margin-top: 0;
92
  font-size: 12px;
94
  font-weight: bold;
95
  text-transform: none;
96
  color: $text-color;
97
+
98
  + span.description {
99
  margin-top: -6px;
100
  }
101
  }
102
+
103
  span.description {
104
  margin-bottom: 12px;
105
  font-size: 11px;
106
  font-style: normal;
107
  color: $description-color;
108
+
109
  strong {
110
  color: $text-color;
111
  font-weight: bold;
112
  }
113
  }
114
+
115
  select,
116
  input[type="text"],
117
  input[type="number"],
124
  border-color: $primary-color;
125
  box-shadow: none;
126
  }
127
+
128
  input[type="text"],
129
  input[type="number"],
130
  button.button.remove-button {
132
  text-align: center;
133
  @include roundedcorner;
134
  }
135
+
136
  #customize-control-loftloader_show_close_tip input[type="text"] {
137
  width: 100%;
138
  text-align: left;
139
  }
140
+
141
  button.button.remove-button:hover {
142
  opacity: 0.75;
143
  }
144
+
145
  input[type="checkbox"] {
146
  position: relative;
147
  float: right;
152
  border: 2px solid $primary-color;
153
  box-shadow: none;
154
  font-size: 0;
155
+
156
  &:checked:before {
157
  position: absolute;
158
  top: 50%;
160
  @include transform(translate(-50%, -50%));
161
  margin: 0 0 0 -3px;
162
  color: $primary-color;
163
+
164
  @media screen and (max-width: 782px) {
165
  & {
166
  margin: 0 0 0 -8px;
167
  }
168
  }
169
  }
170
+
171
  &:hover {
172
  opacity: 0.75;
173
  }
174
  }
175
+
176
  .loftloader-radiobtn {
177
  display: none;
178
  width: inherit;
179
  height: inherit;
180
  opacity: 0;
181
  margin: 0;
182
+
183
  + span {
184
  position: absolute;
185
  top: 0;
190
  border: 2px solid $secondary-color;
191
  box-sizing: border-box;
192
  }
193
+
194
  &:checked + span {
195
  border-color: $primary-color;
196
  }
197
  }
198
+
199
  .customize-control-btn {
200
  label {
201
  position: relative;
203
  margin-left: 0;
204
  padding: 0;
205
  }
206
+
207
  span.customize-control-title {
208
  display: inline;
209
+
210
  & + div {
211
  float: right;
212
  }
213
  }
214
  }
215
+
216
  .accordion-section-content {
217
  padding: 0;
218
  background: #FFF;
219
+
220
  &:before {
221
  position: absolute;
222
  top: 0;
228
  background: #FFF;
229
  content: "";
230
  }
231
+
232
  li {
233
  padding: 15px 12px;
234
  margin-bottom: 0;
235
  border-bottom: 1px solid #EEE;
236
  box-sizing: border-box;
237
+
238
  &.customize-section-description-container {
239
  padding: 12px 12px 0;
240
  border-bottom: none;
241
  }
242
+
243
  &:last-of-type {
244
  border-bottom: none;
245
  }
246
  }
247
  }
248
+
249
  .wp-picker-container {
250
  overflow: visible;
251
  width: auto;
252
+
253
  .wp-color-result {
254
  width: 24px;
255
  height: 24px;
259
  border-radius: 50%;
260
  box-shadow: none !important;
261
  line-height: 28px;
262
+
263
  &:after {
264
  right: auto;
265
  left: 24px;
272
  text-align: left;
273
  line-height: 24px;
274
  }
275
+
276
  .wp-color-result-text {
277
  margin-left: 24px;
278
  background: none;
279
  border: none;
280
  color: inherit;
281
  line-height: 24px;
282
+
283
  body.rtl & {
284
  margin-right: 24px;
285
  margin-left: 0;
286
  }
287
  }
288
  }
289
+
290
  .wp-picker-open + .wp-picker-input-wrap {
291
  float: right;
292
  margin-top: -2px;
293
  width: auto;
294
  }
295
+
296
  input[type="text"].wp-color-picker {
297
  display: inline-block;
298
  padding: 0 5px;
303
  font-family: Lato;
304
  line-height: 26px;
305
  }
306
+
307
  .button.wp-picker-default {
308
  display: none;
309
  }
310
  }
311
+
312
  .attachment-media-view,
313
  .media-widget-preview.media_audio,
314
  .media-widget-preview.media_image {
315
  background: none;
316
  }
317
+
318
  .loader-ui-slider {
319
  height: 16px;
320
  margin-top: 12px;
321
  background: none;
322
  border-radius: 0;
323
  border: none;
324
+
325
  &:before {
326
  position: absolute;
327
  top: 50%;
332
  background: $secondary-color;
333
  content: "";
334
  }
335
+
336
  .ui-slider-range {
337
  top: 50%;
338
  @include transform(translateY(-50%));
339
  height: 2px;
340
  background: $primary-color;
341
  }
342
+
343
  .ui-slider-handle {
344
  top: 50%;
345
  @include transform(translateY(-50%));
350
  border-radius: 50%;
351
  }
352
  }
353
+
354
  &.loftloader-settings-disabled {
355
  li#accordion-section-loftloader_switch ~ li {
356
  @include optionsdisabled;
357
  }
358
  }
359
+
360
  li.customize-control.customize-control-image .thumbnail.thumbnail-image {
361
  background-color: #EEE;
362
  }
363
+
364
  li#accordion-section-loftloader_switch {
365
  margin-bottom: 10px;
366
+
367
  .accordion-section-title {
368
  padding: 20px 10px 22px 14px;
369
+
370
  &:after {
371
  display: none;
372
  }
373
  }
374
  }
375
+
376
  li.customize-control.customize-control-slider {
377
  @include slidervalue;
378
  }
379
+
380
  li.customize-control.customize-control-check {
381
  span.customize-control-title {
382
  display: inline;
383
  }
384
  }
385
+
386
  li#customize-control-loftloader_loader_type {
387
  .customize-more-toggle {
388
  position: relative;
399
  background: $primary-color;
400
  border-radius: 50%;
401
  border: none;
402
+
403
  &:before {
404
  position: absolute;
405
  top: 50%;
414
  transform-origin: 50% 50%;
415
  content: "";
416
  }
417
+
418
  &:focus {
419
  outline: none;
420
  opacity: 0.5;
421
  }
422
+
423
  &.expanded {
424
  @include transform(rotate(-45deg));
425
  }
426
+
427
  & + span.description {
428
  margin: 12px 0 0;
429
  }
430
  }
431
+
432
  #loftloader_option_animation {
433
  margin-top: 12px;
434
+
435
  label {
436
  position: relative;
437
  float: left;
439
  height: 45px;
440
  margin: 0 -2px -2px 0;
441
  padding: 0;
442
+
443
  @include animations(8);
444
+
445
  .loftloader-radiobtn {
446
  & + span {
447
  overflow: hidden;
448
+
449
  &:after {
450
  position: absolute;
451
  top: 0;
460
  }
461
  }
462
  }
463
+
464
  .loftloader-radiobtn:checked + span {
465
  z-index: 8;
466
  &:after {
468
  }
469
  }
470
  }
471
+
472
  &:after {
473
  position: relative;
474
  display: block;
477
  }
478
  }
479
  }
480
+
481
  li#customize-control-loftloader_customimg {
482
  button.upload-button {
483
  position: relative;
490
  border: 2px solid $primary-color;
491
  box-shadow: none;
492
  font-size: 0;
493
+
494
  &:before,
495
  &:after {
496
  position: absolute;
497
  content: "";
498
  display: block;
499
  }
500
+
501
  &:before {
502
  top: 50%;
503
  left: 50%;
509
  border-bottom: none;
510
  transform-origin: 50% 50%;
511
  }
512
+
513
  &:after {
514
  top: 50%;
515
  left: 50%;
518
  height: 16px;
519
  background: $primary-color;
520
  }
521
+
522
  &:hover {
523
  opacity: 0.75;
524
  }
525
  }
526
+
527
  .current {
528
  margin-top: 15px;
529
  }
530
  }
531
+
532
  li.customize-control-number {
533
  label {
534
  position: relative;
535
  display: block;
536
+
537
  > span:last-child {
538
  float: right;
539
  z-index: 9;
541
  font-weight: bold;
542
  letter-spacing: 0.05em;
543
  color: $text-color;
544
+
545
  input[type="number"] {
546
  margin-right: 5px;
547
  }
548
  }
549
  }
550
+
551
  span.customize-control-title {
552
  display: inline;
553
  }
567
  .customize-partial-edit-shortcut,
568
  .widget .customize-partial-edit-shortcut {
569
  display: none !important;
570
+ }
assets/scss/loftloader.scss CHANGED
@@ -1,12 +1,12 @@
1
  /**
2
  * LoftLoader Lite Frontend Style
3
- *
4
  * Plugin Name: LoftLoader
5
  * Plugin URI: http://www.loftocean.com/loftloader
6
  * Author: Kaylolo Yinxi Chen @Loft.Ocean
7
  * Author URI: http://www.loftocean.com
8
  * Description: LoftLoader (Lite Version) is a plugin for adding beautiful and smooth preload animation to your WordPress website. With setting options, you can choose from preset animations, add custom logo image, choose colours to match your branding, and amuse and impress your visitors while loading site content.
9
- * Version: 2.1.7
10
  */
11
 
12
  $primary-color: #248acc;
@@ -28,7 +28,7 @@ body {
28
  width: 100%;
29
  height: 100%;
30
  background: transparent !important;
31
-
32
  // After the page content has been loaded:
33
  .loaded & {
34
  @include transform(translateX(-200%));
@@ -36,18 +36,18 @@ body {
36
  pointer-events: none;
37
  transition: all;
38
  transition-delay: 1s;
39
-
40
  &.slide-vertical {
41
  @include verticalend;
42
  }
43
-
44
  // Hide the preloader elements
45
  #loader,
46
  .loader-close-button {
47
  @include endLoader;
48
  }
49
  }
50
-
51
  .loader-inner {
52
  position: absolute;
53
  top: 50%;
@@ -57,7 +57,7 @@ body {
57
  text-align: center;
58
  transition: all 0s;
59
  font-size: 0;
60
-
61
  #loader {
62
  position: relative;
63
  z-index: 1002;
@@ -67,7 +67,7 @@ body {
67
  color: $primary-color;
68
  }
69
  }
70
-
71
  // LoftLoader Background
72
  .loader-section {
73
  position: fixed;
@@ -78,52 +78,52 @@ body {
78
  opacity: 0.95;
79
  transition: all 0s;
80
  will-change: transform;
81
-
82
  //Fade
83
  &.section-fade {
84
  top: 0;
85
  left: 0;
86
  width: 100%;
87
  will-change: opacity;
88
-
89
  .loaded & {
90
  @include endBgFade;
91
  }
92
  }
93
-
94
  //Slide Up
95
  &.section-slide-up {
96
  top: 0;
97
  left: 0;
98
  width: 100%;
99
-
100
  .loaded & {
101
  @include endBgUp;
102
  }
103
  }
104
-
105
  //Split Horizontally
106
  &.section-left,
107
  &.section-right {
108
  top: 0;
109
  }
110
-
111
  &.section-left {
112
  left: 0;
113
-
114
  .loaded & {
115
  @include endBgSplitLeft;
116
  }
117
  }
118
-
119
  &.section-right {
120
  right: 0;
121
-
122
  .loaded & {
123
  @include endBgSplitRight;
124
  }
125
  }
126
-
127
  //Split Vertically
128
  &.section-up,
129
  &.section-down {
@@ -131,18 +131,18 @@ body {
131
  width: 100%;
132
  height: 50%;
133
  }
134
-
135
  &.section-up {
136
  top: 0;
137
-
138
  .loaded & {
139
  @include endBgSplitUp;
140
  }
141
  }
142
-
143
  &.section-down {
144
  bottom: 0;
145
-
146
  .loaded & {
147
  @include endBgSplitDown;
148
  }
@@ -159,7 +159,7 @@ body {
159
  #loader {
160
  width: 50px;
161
  height: 50px;
162
-
163
  span {
164
  position: absolute;
165
  top: 0;
@@ -171,7 +171,7 @@ body {
171
  opacity: 0.9;
172
  transform-origin: 50% 50%;
173
  @include animation(spinReturn 4s ease infinite);
174
-
175
  &:before {
176
  position: absolute;
177
  top: 0;
@@ -198,7 +198,7 @@ body {
198
  #loader {
199
  width: 100px;
200
  height: 60px;
201
-
202
  span,
203
  &:before,
204
  &:after {
@@ -210,26 +210,26 @@ body {
210
  opacity: 0.2;
211
  background: currentColor;
212
  }
213
-
214
  span {
215
  top: 50%;
216
  left: 50%;
217
  @include transform(translate(-50%, -50%));
218
  @include animation(lightUp 1.5s linear infinite 0.5s);
219
  }
220
-
221
  &:before,
222
  &:after {
223
  content: "";
224
  top: 50%;
225
  @include transform(translate(0, -50%));
226
  }
227
-
228
  &:before {
229
  left: 0;
230
  @include animation(lightUp 1.5s linear infinite);
231
  }
232
-
233
  &:after {
234
  right: 0;
235
  @include animation(lightUp 1.5s linear infinite 1s);
@@ -246,7 +246,7 @@ body {
246
  #loader {
247
  width: 60px;
248
  height: 30px;
249
-
250
  span,
251
  &:before,
252
  &:after {
@@ -256,21 +256,21 @@ body {
256
  height: 100%;
257
  background: currentColor;
258
  }
259
-
260
  span {
261
  margin: 0 16px;
262
  @include animation(wave 0.9s linear infinite 0.3s);
263
  }
264
-
265
  &:before,
266
  &:after {
267
  content: "";
268
  }
269
-
270
  &:before {
271
  @include animation(wave 0.9s linear infinite);
272
  }
273
-
274
  &:after {
275
  @include animation(wave 0.9s linear infinite 0.6s);
276
  }
@@ -288,7 +288,7 @@ body {
288
  height: 50px;
289
  transform-origin: 50% 50%;
290
  @include animation(spinReturn 4s ease infinite);
291
-
292
  span {
293
  position: absolute;
294
  top: 0;
@@ -314,7 +314,7 @@ body {
314
  width: 80px;
315
  height: 80px;
316
  max-width: 90vw;
317
-
318
  &:before,
319
  &:after {
320
  position: absolute;
@@ -323,21 +323,21 @@ body {
323
  background: currentColor;
324
  content: "";
325
  }
326
-
327
  &:before {
328
  top: 0;
329
  right: 0;
330
  left: auto;
331
  @include animation(drawframeTop 4s linear infinite);
332
  }
333
-
334
  &:after {
335
  right: auto;
336
  bottom: 0;
337
  left: 0;
338
  @include animation(drawframeBottom 4s linear infinite 1s);
339
  }
340
-
341
  span {
342
  position: absolute;
343
  top: 0;
@@ -345,7 +345,7 @@ body {
345
  display: block;
346
  width: 100%;
347
  height: 100%;
348
-
349
  &:before,
350
  &:after {
351
  position: absolute;
@@ -354,14 +354,14 @@ body {
354
  background: currentColor;
355
  content: "";
356
  }
357
-
358
  &:before {
359
  top: auto;
360
  right: 0;
361
  bottom: 0;
362
  @include animation(drawframeRight 4s linear infinite 0.5s);
363
  }
364
-
365
  &:after {
366
  top: 0;
367
  bottom: auto;
@@ -369,7 +369,7 @@ body {
369
  @include animation(drawframeLeft 4s linear infinite 1.5s);
370
  }
371
  }
372
-
373
  img {
374
  position: absolute;
375
  top: 50%;
@@ -390,11 +390,11 @@ body {
390
  #loftloader-wrapper.pl-imgloading {
391
  #loader {
392
  @include customImg;
393
-
394
  img {
395
  opacity: 0.3;
396
  }
397
-
398
  span {
399
  position: absolute;
400
  bottom: 0;
@@ -423,7 +423,7 @@ body {
423
  #loader {
424
  width: 60px;
425
  height: 60px;
426
-
427
  span,
428
  &:before {
429
  position: absolute;
@@ -437,11 +437,11 @@ body {
437
  box-shadow: 0 0 50px;
438
  opacity: 0;
439
  }
440
-
441
  span {
442
  @include animation(beat 1.5s linear infinite);
443
  }
444
-
445
  &:before {
446
  content: "";
447
  @include animation(beat 1.5s linear infinite 1s);
@@ -470,11 +470,11 @@ body {
470
  font-size: 12px;
471
  line-height: 25px;
472
  cursor: pointer;
473
-
474
  &:hover {
475
  background: rgba(#000,0.7);
476
  }
477
-
478
  &:before,
479
  &:after {
480
  position: absolute;
@@ -487,15 +487,15 @@ body {
487
  content: "";
488
  background: #FFF;
489
  }
490
-
491
  &:before {
492
  @include transform(rotate(45deg));
493
  }
494
-
495
  &:after {
496
  @include transform(rotate(135deg));
497
  }
498
-
499
  .screen-reader-text {
500
  position: absolute !important;
501
  width: 1px;
@@ -508,9 +508,9 @@ body {
508
  overflow: hidden;
509
  word-wrap: normal !important;
510
  }
511
-
512
  .close-des {
513
  padding: 0 5px;
514
  font-size: 12px;
515
  }
516
- }
1
  /**
2
  * LoftLoader Lite Frontend Style
3
+ *
4
  * Plugin Name: LoftLoader
5
  * Plugin URI: http://www.loftocean.com/loftloader
6
  * Author: Kaylolo Yinxi Chen @Loft.Ocean
7
  * Author URI: http://www.loftocean.com
8
  * Description: LoftLoader (Lite Version) is a plugin for adding beautiful and smooth preload animation to your WordPress website. With setting options, you can choose from preset animations, add custom logo image, choose colours to match your branding, and amuse and impress your visitors while loading site content.
9
+ * Version: 2.1.8
10
  */
11
 
12
  $primary-color: #248acc;
28
  width: 100%;
29
  height: 100%;
30
  background: transparent !important;
31
+
32
  // After the page content has been loaded:
33
  .loaded & {
34
  @include transform(translateX(-200%));
36
  pointer-events: none;
37
  transition: all;
38
  transition-delay: 1s;
39
+
40
  &.slide-vertical {
41
  @include verticalend;
42
  }
43
+
44
  // Hide the preloader elements
45
  #loader,
46
  .loader-close-button {
47
  @include endLoader;
48
  }
49
  }
50
+
51
  .loader-inner {
52
  position: absolute;
53
  top: 50%;
57
  text-align: center;
58
  transition: all 0s;
59
  font-size: 0;
60
+
61
  #loader {
62
  position: relative;
63
  z-index: 1002;
67
  color: $primary-color;
68
  }
69
  }
70
+
71
  // LoftLoader Background
72
  .loader-section {
73
  position: fixed;
78
  opacity: 0.95;
79
  transition: all 0s;
80
  will-change: transform;
81
+
82
  //Fade
83
  &.section-fade {
84
  top: 0;
85
  left: 0;
86
  width: 100%;
87
  will-change: opacity;
88
+
89
  .loaded & {
90
  @include endBgFade;
91
  }
92
  }
93
+
94
  //Slide Up
95
  &.section-slide-up {
96
  top: 0;
97
  left: 0;
98
  width: 100%;
99
+
100
  .loaded & {
101
  @include endBgUp;
102
  }
103
  }
104
+
105
  //Split Horizontally
106
  &.section-left,
107
  &.section-right {
108
  top: 0;
109
  }
110
+
111
  &.section-left {
112
  left: 0;
113
+
114
  .loaded & {
115
  @include endBgSplitLeft;
116
  }
117
  }
118
+
119
  &.section-right {
120
  right: 0;
121
+
122
  .loaded & {
123
  @include endBgSplitRight;
124
  }
125
  }
126
+
127
  //Split Vertically
128
  &.section-up,
129
  &.section-down {
131
  width: 100%;
132
  height: 50%;
133
  }
134
+
135
  &.section-up {
136
  top: 0;
137
+
138
  .loaded & {
139
  @include endBgSplitUp;
140
  }
141
  }
142
+
143
  &.section-down {
144
  bottom: 0;
145
+
146
  .loaded & {
147
  @include endBgSplitDown;
148
  }
159
  #loader {
160
  width: 50px;
161
  height: 50px;
162
+
163
  span {
164
  position: absolute;
165
  top: 0;
171
  opacity: 0.9;
172
  transform-origin: 50% 50%;
173
  @include animation(spinReturn 4s ease infinite);
174
+
175
  &:before {
176
  position: absolute;
177
  top: 0;
198
  #loader {
199
  width: 100px;
200
  height: 60px;
201
+
202
  span,
203
  &:before,
204
  &:after {
210
  opacity: 0.2;
211
  background: currentColor;
212
  }
213
+
214
  span {
215
  top: 50%;
216
  left: 50%;
217
  @include transform(translate(-50%, -50%));
218
  @include animation(lightUp 1.5s linear infinite 0.5s);
219
  }
220
+
221
  &:before,
222
  &:after {
223
  content: "";
224
  top: 50%;
225
  @include transform(translate(0, -50%));
226
  }
227
+
228
  &:before {
229
  left: 0;
230
  @include animation(lightUp 1.5s linear infinite);
231
  }
232
+
233
  &:after {
234
  right: 0;
235
  @include animation(lightUp 1.5s linear infinite 1s);
246
  #loader {
247
  width: 60px;
248
  height: 30px;
249
+
250
  span,
251
  &:before,
252
  &:after {
256
  height: 100%;
257
  background: currentColor;
258
  }
259
+
260
  span {
261
  margin: 0 16px;
262
  @include animation(wave 0.9s linear infinite 0.3s);
263
  }
264
+
265
  &:before,
266
  &:after {
267
  content: "";
268
  }
269
+
270
  &:before {
271
  @include animation(wave 0.9s linear infinite);
272
  }
273
+
274
  &:after {
275
  @include animation(wave 0.9s linear infinite 0.6s);
276
  }
288
  height: 50px;
289
  transform-origin: 50% 50%;
290
  @include animation(spinReturn 4s ease infinite);
291
+
292
  span {
293
  position: absolute;
294
  top: 0;
314
  width: 80px;
315
  height: 80px;
316
  max-width: 90vw;
317
+
318
  &:before,
319
  &:after {
320
  position: absolute;
323
  background: currentColor;
324
  content: "";
325
  }
326
+
327
  &:before {
328
  top: 0;
329
  right: 0;
330
  left: auto;
331
  @include animation(drawframeTop 4s linear infinite);
332
  }
333
+
334
  &:after {
335
  right: auto;
336
  bottom: 0;
337
  left: 0;
338
  @include animation(drawframeBottom 4s linear infinite 1s);
339
  }
340
+
341
  span {
342
  position: absolute;
343
  top: 0;
345
  display: block;
346
  width: 100%;
347
  height: 100%;
348
+
349
  &:before,
350
  &:after {
351
  position: absolute;
354
  background: currentColor;
355
  content: "";
356
  }
357
+
358
  &:before {
359
  top: auto;
360
  right: 0;
361
  bottom: 0;
362
  @include animation(drawframeRight 4s linear infinite 0.5s);
363
  }
364
+
365
  &:after {
366
  top: 0;
367
  bottom: auto;
369
  @include animation(drawframeLeft 4s linear infinite 1.5s);
370
  }
371
  }
372
+
373
  img {
374
  position: absolute;
375
  top: 50%;
390
  #loftloader-wrapper.pl-imgloading {
391
  #loader {
392
  @include customImg;
393
+
394
  img {
395
  opacity: 0.3;
396
  }
397
+
398
  span {
399
  position: absolute;
400
  bottom: 0;
423
  #loader {
424
  width: 60px;
425
  height: 60px;
426
+
427
  span,
428
  &:before {
429
  position: absolute;
437
  box-shadow: 0 0 50px;
438
  opacity: 0;
439
  }
440
+
441
  span {
442
  @include animation(beat 1.5s linear infinite);
443
  }
444
+
445
  &:before {
446
  content: "";
447
  @include animation(beat 1.5s linear infinite 1s);
470
  font-size: 12px;
471
  line-height: 25px;
472
  cursor: pointer;
473
+
474
  &:hover {
475
  background: rgba(#000,0.7);
476
  }
477
+
478
  &:before,
479
  &:after {
480
  position: absolute;
487
  content: "";
488
  background: #FFF;
489
  }
490
+
491
  &:before {
492
  @include transform(rotate(45deg));
493
  }
494
+
495
  &:after {
496
  @include transform(rotate(135deg));
497
  }
498
+
499
  .screen-reader-text {
500
  position: absolute !important;
501
  width: 1px;
508
  overflow: hidden;
509
  word-wrap: normal !important;
510
  }
511
+
512
  .close-des {
513
  padding: 0 5px;
514
  font-size: 12px;
515
  }
516
+ }
inc/class-loftloader-front.php CHANGED
@@ -1,12 +1,7 @@
1
  <?php
2
- // Not allowed by directly accessing.
3
- if(!defined('ABSPATH')){
4
- die('Access not allowed!');
5
- }
6
-
7
  /**
8
  * Main class for front display
9
- *
10
  * @package LoftLoader
11
  * @link http://www.loftocean.com/
12
  * @author Suihai Huang from Loft Ocean Team
@@ -15,9 +10,11 @@ if(!defined('ABSPATH')){
15
  */
16
 
17
  if ( ! class_exists( 'LoftLoader_Front' ) ) {
18
- class LoftLoader_Front {
19
- private $defaults;
20
- private $type; // Get the loader settings
 
 
21
  public function __construct() {
22
  $this->get_settings();
23
  $this->start_cache();
@@ -32,7 +29,7 @@ if ( ! class_exists( 'LoftLoader_Front' ) ) {
32
  * Start cache for outputing
33
  */
34
  public function start_cache() {
35
- // Only for front view
36
  if ( ! is_admin() ) {
37
  // Start cache the output with callback function
38
  ob_start( array( $this, 'modify_html' ) );
@@ -42,26 +39,32 @@ if ( ! class_exists( 'LoftLoader_Front' ) ) {
42
  * Will be called when flush cache
43
  *
44
  * @param string cached string
45
- * @return string modified cached string
46
  */
47
  public function modify_html( $html ) {
48
- return apply_filters( 'loftloader_modify_html', $html );
 
 
 
 
49
  }
50
  /**
51
  * @description get the plugin settings
52
  */
53
- public function get_settings() {
54
  global $loftloader_default_settings;
55
  $this->defaults = $loftloader_default_settings;
56
  do_action( 'loftloader_settings' );
57
  $this->type = esc_attr( $this->get_loader_setting( 'loftloader_loader_type' ) );
 
 
58
  }
59
  /**
60
  * @description enqueue the scripts and styles for front end
61
  */
62
  public function enqueue_scripts() {
63
  $loadJSStyle = $this->get_loader_setting( 'loftloader_inline_js' );
64
- if ( ! is_customize_preview() && ( 'inline' !== $loadJSStyle ) ) {
65
  wp_enqueue_script( 'loftloader-lite-front-main', LOFTLOADER_URI . 'assets/js/loftloader.min.js', array( 'jquery' ), LOFTLOADER_ASSET_VERSION, true );
66
  }
67
  wp_enqueue_style('loftloader-lite-animation', LOFTLOADER_URI . 'assets/css/loftloader.min.css', array(), LOFTLOADER_ASSET_VERSION);
@@ -79,15 +82,15 @@ if ( ! class_exists( 'LoftLoader_Front' ) ) {
79
  }
80
  var loader = document.getElementById( 'loftloader-wrapper' );
81
  if ( loader ) {
82
- window.addEventListener( 'load', function( e ) {
83
- loftloader_finished();
84
  } );
85
  if ( loader.dataset && loader.dataset.showCloseTime ) {
86
  var showCloseTime = parseInt( loader.dataset.showCloseTime ),
87
  closeBtn = loader.getElementsByClassName( 'loader-close-button' );
88
  if ( showCloseTime && closeBtn.length ) {
89
  setTimeout( function() {
90
- closeBtn[0].style.display = '';
91
  }, showCloseTime );
92
  closeBtn[0].addEventListener( 'click', function( e ) {
93
  loftloader_finished();
@@ -108,11 +111,11 @@ if ( ! class_exists( 'LoftLoader_Front' ) ) {
108
  $bgOpacity = intval( $this->get_loader_setting('loftloader_bg_opacity' ) ) / 100;
109
 
110
  $styles = $this->generate_style(
111
- 'loftloader-lite-custom-bg-color',
112
  '#loftloader-wrapper .loader-section {' . PHP_EOL . "\t" . 'background: ' . $bgColor . ';' . PHP_EOL . '}' . PHP_EOL
113
  );
114
  $styles .= $this->generate_style(
115
- 'loftloader-lite-custom-bg-opacity',
116
  '#loftloader-wrapper .loader-section {' . PHP_EOL . "\t" . 'opacity: ' . $bgOpacity . ';' . PHP_EOL . '}' . PHP_EOL
117
  );
118
  $css = '';
@@ -154,7 +157,7 @@ if ( ! class_exists( 'LoftLoader_Front' ) ) {
154
  if ( ! empty( $origin ) ) {
155
  $regexp ='/(<body[^>]*>)/i';
156
  $split = preg_split( $regexp, $origin, 3, PREG_SPLIT_DELIM_CAPTURE );
157
- if ( is_array( $split ) && ( 3 <= count( $split ) ) ) {
158
  $image = esc_url($this->get_loader_setting('loftloader_custom_img'));
159
  $ending = esc_attr($this->get_loader_setting('loftloader_bg_animation'));
160
 
@@ -232,6 +235,18 @@ if ( ! class_exists( 'LoftLoader_Front' ) ) {
232
  private function generate_style( $id, $style ) {
233
  return '<style id="' . $id . '">' . $style . '</style>';
234
  }
 
 
 
 
 
 
 
 
 
 
 
 
235
  }
236
  new LoftLoader_Front();
237
- }
1
  <?php
 
 
 
 
 
2
  /**
3
  * Main class for front display
4
+ *
5
  * @package LoftLoader
6
  * @link http://www.loftocean.com/
7
  * @author Suihai Huang from Loft Ocean Team
10
  */
11
 
12
  if ( ! class_exists( 'LoftLoader_Front' ) ) {
13
+ class LoftLoader_Front {
14
+ protected $defaults;
15
+ protected $site_header_loaded = false;
16
+ protected $site_footer_loaded = false;
17
+ protected $type; // Get the loader settings
18
  public function __construct() {
19
  $this->get_settings();
20
  $this->start_cache();
29
  * Start cache for outputing
30
  */
31
  public function start_cache() {
32
+ // Only for front view
33
  if ( ! is_admin() ) {
34
  // Start cache the output with callback function
35
  ob_start( array( $this, 'modify_html' ) );
39
  * Will be called when flush cache
40
  *
41
  * @param string cached string
42
+ * @return string modified cached string
43
  */
44
  public function modify_html( $html ) {
45
+ if ( $this->site_header_loaded && $this->site_footer_loaded ) {
46
+ return apply_filters( 'loftloader_modify_html', $html );
47
+ } else {
48
+ return $html;
49
+ }
50
  }
51
  /**
52
  * @description get the plugin settings
53
  */
54
+ public function get_settings() {
55
  global $loftloader_default_settings;
56
  $this->defaults = $loftloader_default_settings;
57
  do_action( 'loftloader_settings' );
58
  $this->type = esc_attr( $this->get_loader_setting( 'loftloader_loader_type' ) );
59
+ add_action( 'wp_head', array( $this, 'set_header_loaded' ) );
60
+ add_action( 'wp_footer', array( $this, 'set_footer_loaded' ) );
61
  }
62
  /**
63
  * @description enqueue the scripts and styles for front end
64
  */
65
  public function enqueue_scripts() {
66
  $loadJSStyle = $this->get_loader_setting( 'loftloader_inline_js' );
67
+ if ( ! is_customize_preview() && ( 'inline' !== $loadJSStyle ) ) {
68
  wp_enqueue_script( 'loftloader-lite-front-main', LOFTLOADER_URI . 'assets/js/loftloader.min.js', array( 'jquery' ), LOFTLOADER_ASSET_VERSION, true );
69
  }
70
  wp_enqueue_style('loftloader-lite-animation', LOFTLOADER_URI . 'assets/css/loftloader.min.css', array(), LOFTLOADER_ASSET_VERSION);
82
  }
83
  var loader = document.getElementById( 'loftloader-wrapper' );
84
  if ( loader ) {
85
+ window.addEventListener( 'load', function( e ) {
86
+ loftloader_finished();
87
  } );
88
  if ( loader.dataset && loader.dataset.showCloseTime ) {
89
  var showCloseTime = parseInt( loader.dataset.showCloseTime ),
90
  closeBtn = loader.getElementsByClassName( 'loader-close-button' );
91
  if ( showCloseTime && closeBtn.length ) {
92
  setTimeout( function() {
93
+ closeBtn[0].style.display = '';
94
  }, showCloseTime );
95
  closeBtn[0].addEventListener( 'click', function( e ) {
96
  loftloader_finished();
111
  $bgOpacity = intval( $this->get_loader_setting('loftloader_bg_opacity' ) ) / 100;
112
 
113
  $styles = $this->generate_style(
114
+ 'loftloader-lite-custom-bg-color',
115
  '#loftloader-wrapper .loader-section {' . PHP_EOL . "\t" . 'background: ' . $bgColor . ';' . PHP_EOL . '}' . PHP_EOL
116
  );
117
  $styles .= $this->generate_style(
118
+ 'loftloader-lite-custom-bg-opacity',
119
  '#loftloader-wrapper .loader-section {' . PHP_EOL . "\t" . 'opacity: ' . $bgOpacity . ';' . PHP_EOL . '}' . PHP_EOL
120
  );
121
  $css = '';
157
  if ( ! empty( $origin ) ) {
158
  $regexp ='/(<body[^>]*>)/i';
159
  $split = preg_split( $regexp, $origin, 3, PREG_SPLIT_DELIM_CAPTURE );
160
+ if ( is_array( $split ) && ( 3 <= count( $split ) ) ) {
161
  $image = esc_url($this->get_loader_setting('loftloader_custom_img'));
162
  $ending = esc_attr($this->get_loader_setting('loftloader_bg_animation'));
163
 
235
  private function generate_style( $id, $style ) {
236
  return '<style id="' . $id . '">' . $style . '</style>';
237
  }
238
+ /**
239
+ * Make the head loaded flag
240
+ */
241
+ public function set_header_loaded() {
242
+ $this->site_header_loaded = true;
243
+ }
244
+ /**
245
+ * Make the footer loaded flag
246
+ */
247
+ public function set_footer_loaded() {
248
+ $this->site_footer_loaded = true;
249
+ }
250
  }
251
  new LoftLoader_Front();
252
+ }
inc/class-loftloader-upgrade.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  if ( ! class_exists( 'LoftLoader_Upgrade' ) ) {
3
  class LoftLoader_Upgrade {
4
- private $version ='2.1.7';
5
  function __construct(){
6
  $old_version = get_option('loftloader_lite_version', '1.0');
7
  if(version_compare($old_version, $this->version, '<')){
@@ -58,4 +58,4 @@ if ( ! class_exists( 'LoftLoader_Upgrade' ) ) {
58
  }
59
  }
60
  new LoftLoader_Upgrade();
61
- }
1
  <?php
2
  if ( ! class_exists( 'LoftLoader_Upgrade' ) ) {
3
  class LoftLoader_Upgrade {
4
+ private $version ='2.1.8';
5
  function __construct(){
6
  $old_version = get_option('loftloader_lite_version', '1.0');
7
  if(version_compare($old_version, $this->version, '<')){
58
  }
59
  }
60
  new LoftLoader_Upgrade();
61
+ }
languages/loftloader.pot CHANGED
@@ -3,16 +3,16 @@
3
  #, fuzzy
4
  msgid ""
5
  msgstr ""
6
- "Project-Id-Version: LoftLoader 2.1.7\n"
7
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/loftloader\n"
8
- "POT-Creation-Date: 2019-05-14 10:59+0800\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
  "PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
13
  "Last-Translator: Suihai <cain@loftocean.com>\n"
14
  "Language-Team: Loft Ocean <cain@loftocean.com>\n"
15
- "X-Generator: Poedit 2.2.1\n"
16
 
17
  #: inc/any-page/class-loftloader-any-page.php:24
18
  msgid "LoftLoader Any Page Shortcode"
@@ -42,7 +42,7 @@ msgstr ""
42
  msgid "More info"
43
  msgstr ""
44
 
45
- #: inc/class-loftloader-front.php:186
46
  msgid "Close"
47
  msgstr ""
48
 
3
  #, fuzzy
4
  msgid ""
5
  msgstr ""
6
+ "Project-Id-Version: LoftLoader 2.1.8\n"
7
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/loftloader\n"
8
+ "POT-Creation-Date: 2019-06-30 10:55+0800\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
  "PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
13
  "Last-Translator: Suihai <cain@loftocean.com>\n"
14
  "Language-Team: Loft Ocean <cain@loftocean.com>\n"
15
+ "X-Generator: Poedit 2.2.3\n"
16
 
17
  #: inc/any-page/class-loftloader-any-page.php:24
18
  msgid "LoftLoader Any Page Shortcode"
42
  msgid "More info"
43
  msgstr ""
44
 
45
+ #: inc/class-loftloader-front.php:189
46
  msgid "Close"
47
  msgstr ""
48
 
loftloader.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: LoftLoader
4
  Plugin URI: http://www.loftocean.com/
5
  Description: An easy to use plugin to add an animated preloader to your website with fully customisations.
6
- Version: 2.1.7
7
  Author: Loft Ocean
8
  Author URI: http://www.loftocean.com/
9
  Text Domain: loftloader
@@ -14,7 +14,7 @@ License URI: https://www.gnu.org/licenses/gpl-2.0.html
14
 
15
  /**
16
  * LoftLoader main file
17
- *
18
  * @package LoftLoader
19
  * @link http://www.loftocean.com/
20
  * @author Suihai Huang from Loft Ocean Team
@@ -32,7 +32,7 @@ if ( ! class_exists( 'LoftLoader' ) ) {
32
  define( 'LOFTLOADER_ROOT', dirname( __FILE__ ) . '/' );
33
  define( 'LOFTLOADER_NAME', plugin_basename( __FILE__ ) );
34
  define( 'LOFTLOADER_URI', plugin_dir_url( __FILE__ ) );
35
- define( 'LOFTLOADER_ASSET_VERSION', '2019051401' );
36
 
37
  class LoftLoader {
38
  public function __construct() {
@@ -132,7 +132,7 @@ if ( ! class_exists( 'LoftLoader' ) ) {
132
  *
133
  * @return boolean
134
  */
135
- function loftloader_is_customize() {
136
  global $wp_customize;
137
  return ( isset($_GET['plugin'] ) && ( $_GET['plugin'] === 'loftloader-lite') ) || ( isset( $wp_customize ) && $wp_customize->is_preview() && ! is_admin() ) || defined( 'DOING_AJAX' );
138
  }
3
  Plugin Name: LoftLoader
4
  Plugin URI: http://www.loftocean.com/
5
  Description: An easy to use plugin to add an animated preloader to your website with fully customisations.
6
+ Version: 2.1.8
7
  Author: Loft Ocean
8
  Author URI: http://www.loftocean.com/
9
  Text Domain: loftloader
14
 
15
  /**
16
  * LoftLoader main file
17
+ *
18
  * @package LoftLoader
19
  * @link http://www.loftocean.com/
20
  * @author Suihai Huang from Loft Ocean Team
32
  define( 'LOFTLOADER_ROOT', dirname( __FILE__ ) . '/' );
33
  define( 'LOFTLOADER_NAME', plugin_basename( __FILE__ ) );
34
  define( 'LOFTLOADER_URI', plugin_dir_url( __FILE__ ) );
35
+ define( 'LOFTLOADER_ASSET_VERSION', '2019063001' );
36
 
37
  class LoftLoader {
38
  public function __construct() {
132
  *
133
  * @return boolean
134
  */
135
+ function loftloader_is_customize() {
136
  global $wp_customize;
137
  return ( isset($_GET['plugin'] ) && ( $_GET['plugin'] === 'loftloader-lite') ) || ( isset( $wp_customize ) && $wp_customize->is_preview() && ! is_admin() ) || defined( 'DOING_AJAX' );
138
  }
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === LoftLoader ===
2
  Contributors: loftocean
3
  Tags: loader, load, preloader, page preloader, prelader spinner, preloader with custom logo, animated preloader, CSS3 preloader, customize
4
- Donate link:
5
  Requires at least: 4.3
6
  Tested up to: 5.2
7
- Stable tag: 2.1.7
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -53,7 +53,7 @@ LoftLoader Pro is available. [Upgrade to pro version](https://codecanyon.net/ite
53
  * Option to display the preloader once per visitor session.
54
  * Support gradient background color, full background image, and repeating background pattern.
55
  * More ending animations.
56
- * Loader - 19 types of animations to choose. 6 of them support custom images.
57
  * Looping - Animation can be set to loop forever, and some animations can be set to run just once (ends after page has loaded).
58
  * Progress - Progress bar, counting percentage, or both. Any color. Position, size & font control.
59
  * Message - Enter your custom welcome or loading message to display. Control color, position & font. And supports Random Message feature.
@@ -63,10 +63,10 @@ LoftLoader Pro is available. [Upgrade to pro version](https://codecanyon.net/ite
63
  * Choose to save customize styles as inline styles in &lt;head&gt; or as an external .css file.
64
  * Option to disable page scrolling while loading.
65
  * Can add different loaders for different Pages, Posts and custom post types (such as portfolios, products, etc.) on one site.
66
- * Users can choose which elements to detect during the loading process (All elements / Images / Videos / Images & Videos).
67
  * Purchase once, free lifetime update with new features.
68
 
69
- Check some [examples](http://www.loftocean.com/loftloader/example-13/) created by pro version.
70
 
71
  == Installation ==
72
 
@@ -94,6 +94,9 @@ Check some [examples](http://www.loftocean.com/loftloader/example-13/) created b
94
  8. Pro version: Load Time, Device Control & Smooth Page Transition
95
 
96
  == Changelog ==
 
 
 
97
  = 2.1.7 =
98
  * New: Option to choose how to load LoftLoader’s JavaScript (External or Inline)
99
  * Fixed: Gutenberg “Update” button was not clickable after making changes only to Any Page Extension options
@@ -121,14 +124,14 @@ Check some [examples](http://www.loftocean.com/loftloader/example-13/) created b
121
 
122
  = 2.1.0 =
123
  * Improved: LoftLoader Customizer panel independence (so it won’t be affected by theme or other plugins’ code)
124
- * New: Loader Section - New Loader Animation: Beating
125
  * Fixed: Minor CSS issues
126
 
127
  = 2.0.0 =
128
  * Changed: Rewrite the framework, move all settings to wp customize
129
  * Added: Any page extension
130
 
131
- = 1.0.2 =
132
  * Fixed: Load before anything bug
133
  * Fixed: Wave animation minor bug
134
  * Added: Pro version link on settings page
@@ -142,4 +145,4 @@ Check some [examples](http://www.loftocean.com/loftloader/example-13/) created b
142
  == Upgrade Notice ==
143
 
144
  = 1.0.0 =
145
- * Initial Public Release
1
  === LoftLoader ===
2
  Contributors: loftocean
3
  Tags: loader, load, preloader, page preloader, prelader spinner, preloader with custom logo, animated preloader, CSS3 preloader, customize
4
+ Donate link:
5
  Requires at least: 4.3
6
  Tested up to: 5.2
7
+ Stable tag: 2.1.8
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
53
  * Option to display the preloader once per visitor session.
54
  * Support gradient background color, full background image, and repeating background pattern.
55
  * More ending animations.
56
+ * Loader - 19 types of animations to choose. 6 of them support custom images.
57
  * Looping - Animation can be set to loop forever, and some animations can be set to run just once (ends after page has loaded).
58
  * Progress - Progress bar, counting percentage, or both. Any color. Position, size & font control.
59
  * Message - Enter your custom welcome or loading message to display. Control color, position & font. And supports Random Message feature.
63
  * Choose to save customize styles as inline styles in &lt;head&gt; or as an external .css file.
64
  * Option to disable page scrolling while loading.
65
  * Can add different loaders for different Pages, Posts and custom post types (such as portfolios, products, etc.) on one site.
66
+ * Users can choose which elements to detect during the loading process (All elements / Images / Videos / Images & Videos).
67
  * Purchase once, free lifetime update with new features.
68
 
69
+ Check some [examples](http://www.loftocean.com/loftloader/example-13/) created by pro version.
70
 
71
  == Installation ==
72
 
94
  8. Pro version: Load Time, Device Control & Smooth Page Transition
95
 
96
  == Changelog ==
97
+ = 2.1.8 =
98
+ * Fixed: Compatibility issue with maintenance/coming soon plugins
99
+
100
  = 2.1.7 =
101
  * New: Option to choose how to load LoftLoader’s JavaScript (External or Inline)
102
  * Fixed: Gutenberg “Update” button was not clickable after making changes only to Any Page Extension options
124
 
125
  = 2.1.0 =
126
  * Improved: LoftLoader Customizer panel independence (so it won’t be affected by theme or other plugins’ code)
127
+ * New: Loader Section - New Loader Animation: Beating
128
  * Fixed: Minor CSS issues
129
 
130
  = 2.0.0 =
131
  * Changed: Rewrite the framework, move all settings to wp customize
132
  * Added: Any page extension
133
 
134
+ = 1.0.2 =
135
  * Fixed: Load before anything bug
136
  * Fixed: Wave animation minor bug
137
  * Added: Pro version link on settings page
145
  == Upgrade Notice ==
146
 
147
  = 1.0.0 =
148
+ * Initial Public Release