uikit 3.11.2-dev.07abf1392 → 3.11.2-dev.0a73abee2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -2
- package/dist/css/uikit-core-rtl.css +10 -1
- package/dist/css/uikit-core-rtl.min.css +1 -1
- package/dist/css/uikit-core.css +10 -1
- package/dist/css/uikit-core.min.css +1 -1
- package/dist/css/uikit-rtl.css +10 -1
- package/dist/css/uikit-rtl.min.css +1 -1
- package/dist/css/uikit.css +10 -1
- package/dist/css/uikit.min.css +1 -1
- package/dist/js/components/countdown.js +1 -1
- package/dist/js/components/countdown.min.js +1 -1
- package/dist/js/components/filter.js +1 -1
- package/dist/js/components/filter.min.js +1 -1
- package/dist/js/components/lightbox-panel.js +1 -1
- package/dist/js/components/lightbox-panel.min.js +1 -1
- package/dist/js/components/lightbox.js +1 -1
- package/dist/js/components/lightbox.min.js +1 -1
- package/dist/js/components/notification.js +1 -1
- package/dist/js/components/notification.min.js +1 -1
- package/dist/js/components/parallax.js +6 -8
- package/dist/js/components/parallax.min.js +1 -1
- package/dist/js/components/slider-parallax.js +6 -8
- package/dist/js/components/slider-parallax.min.js +1 -1
- package/dist/js/components/slider.js +23 -32
- package/dist/js/components/slider.min.js +1 -1
- package/dist/js/components/slideshow-parallax.js +6 -8
- package/dist/js/components/slideshow-parallax.min.js +1 -1
- package/dist/js/components/slideshow.js +1 -1
- package/dist/js/components/slideshow.min.js +1 -1
- package/dist/js/components/sortable.js +1 -1
- package/dist/js/components/sortable.min.js +1 -1
- package/dist/js/components/tooltip.js +1 -1
- package/dist/js/components/tooltip.min.js +1 -1
- package/dist/js/components/upload.js +1 -1
- package/dist/js/components/upload.min.js +1 -1
- package/dist/js/uikit-core.js +82 -71
- package/dist/js/uikit-core.min.js +1 -1
- package/dist/js/uikit-icons.js +1 -1
- package/dist/js/uikit-icons.min.js +1 -1
- package/dist/js/uikit.js +109 -109
- package/dist/js/uikit.min.js +1 -1
- package/package.json +1 -1
- package/src/js/components/slider.js +22 -33
- package/src/js/core/height-viewport.js +3 -0
- package/src/js/core/img.js +3 -1
- package/src/js/core/sticky.js +50 -56
- package/src/js/core/toggle.js +1 -1
- package/src/js/mixin/parallax.js +6 -8
- package/src/js/util/ajax.js +6 -2
- package/src/js/util/dimensions.js +4 -4
- package/src/js/util/dom.js +15 -6
- package/src/less/components/height.less +3 -0
- package/src/scss/components/height.scss +3 -0
- package/tests/parallax.html +5 -5
- package/tests/sticky-parallax.html +9 -9
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "uikit",
|
|
3
3
|
"title": "UIkit",
|
|
4
4
|
"description": "UIkit is a lightweight and modular front-end framework for developing fast and powerful web interfaces.",
|
|
5
|
-
"version": "3.11.2-dev.
|
|
5
|
+
"version": "3.11.2-dev.0a73abee2",
|
|
6
6
|
"main": "dist/js/uikit.js",
|
|
7
7
|
"style": "dist/css/uikit.css",
|
|
8
8
|
"sideEffects": [
|
|
@@ -12,9 +12,7 @@ import {
|
|
|
12
12
|
dimensions,
|
|
13
13
|
findIndex,
|
|
14
14
|
includes,
|
|
15
|
-
isEmpty,
|
|
16
15
|
last,
|
|
17
|
-
sortBy,
|
|
18
16
|
toFloat,
|
|
19
17
|
toggleClass,
|
|
20
18
|
toNumber,
|
|
@@ -73,48 +71,39 @@ export default {
|
|
|
73
71
|
return ~index ? index : this.length - 1;
|
|
74
72
|
},
|
|
75
73
|
|
|
76
|
-
sets({ sets }) {
|
|
77
|
-
if (!
|
|
74
|
+
sets({ sets: enabled }) {
|
|
75
|
+
if (!enabled) {
|
|
78
76
|
return;
|
|
79
77
|
}
|
|
80
78
|
|
|
81
|
-
const width = dimensions(this.list).width / (this.center ? 2 : 1);
|
|
82
|
-
|
|
83
79
|
let left = 0;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const slideWidth = dimensions(slide).width;
|
|
89
|
-
const slideRight = slideLeft + slideWidth;
|
|
80
|
+
const sets = [];
|
|
81
|
+
const width = dimensions(this.list).width;
|
|
82
|
+
for (let i in this.slides) {
|
|
83
|
+
const slideWidth = dimensions(this.slides[i]).width;
|
|
90
84
|
|
|
91
|
-
if (
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
85
|
+
if (left + slideWidth > width) {
|
|
86
|
+
left = 0;
|
|
87
|
+
}
|
|
95
88
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
leftCenter -= slideWidth;
|
|
104
|
-
} else {
|
|
105
|
-
leftCenter = width;
|
|
106
|
-
sets.push(i);
|
|
107
|
-
left = slideLeft + width + (this.center ? slideWidth / 2 : 0);
|
|
108
|
-
}
|
|
89
|
+
if (this.center) {
|
|
90
|
+
if (
|
|
91
|
+
left < width / 2 &&
|
|
92
|
+
left + slideWidth + dimensions(this.slides[+i + 1]).width / 2 > width / 2
|
|
93
|
+
) {
|
|
94
|
+
sets.push(+i);
|
|
95
|
+
left = width / 2 - slideWidth / 2;
|
|
109
96
|
}
|
|
97
|
+
} else if (left === 0) {
|
|
98
|
+
sets.push(Math.min(+i, this.maxIndex));
|
|
110
99
|
}
|
|
111
100
|
|
|
112
|
-
|
|
101
|
+
left += slideWidth;
|
|
102
|
+
}
|
|
113
103
|
|
|
104
|
+
if (sets.length) {
|
|
114
105
|
return sets;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
return !isEmpty(sets) && sets;
|
|
106
|
+
}
|
|
118
107
|
},
|
|
119
108
|
|
|
120
109
|
transitionOptions() {
|
package/src/js/core/img.js
CHANGED
|
@@ -172,7 +172,9 @@ function getImageFromElement(el, src, sources) {
|
|
|
172
172
|
|
|
173
173
|
wrapInPicture(img, sources);
|
|
174
174
|
setSourceProps(el, img);
|
|
175
|
-
img.onload = () =>
|
|
175
|
+
img.onload = () => {
|
|
176
|
+
setSrcAttrs(el, img.currentSrc);
|
|
177
|
+
};
|
|
176
178
|
attr(img, 'src', src);
|
|
177
179
|
return img;
|
|
178
180
|
}
|
package/src/js/core/sticky.js
CHANGED
|
@@ -10,13 +10,12 @@ import {
|
|
|
10
10
|
dimensions,
|
|
11
11
|
fastdom,
|
|
12
12
|
height as getHeight,
|
|
13
|
+
offset as getOffset,
|
|
13
14
|
getScrollingElement,
|
|
14
15
|
hasClass,
|
|
15
|
-
isNumeric,
|
|
16
16
|
isString,
|
|
17
17
|
isVisible,
|
|
18
18
|
noop,
|
|
19
|
-
offset,
|
|
20
19
|
offsetPosition,
|
|
21
20
|
parent,
|
|
22
21
|
query,
|
|
@@ -29,6 +28,7 @@ import {
|
|
|
29
28
|
toPx,
|
|
30
29
|
trigger,
|
|
31
30
|
within,
|
|
31
|
+
intersectRect,
|
|
32
32
|
} from 'uikit-util';
|
|
33
33
|
|
|
34
34
|
export default {
|
|
@@ -67,21 +67,6 @@ export default {
|
|
|
67
67
|
},
|
|
68
68
|
|
|
69
69
|
computed: {
|
|
70
|
-
position({ position }, $el) {
|
|
71
|
-
return position === 'auto'
|
|
72
|
-
? (this.isFixed ? this.placeholder : $el).offsetHeight > getHeight(window)
|
|
73
|
-
? 'bottom'
|
|
74
|
-
: 'top'
|
|
75
|
-
: position;
|
|
76
|
-
},
|
|
77
|
-
|
|
78
|
-
offset({ offset }, $el) {
|
|
79
|
-
if (this.position === 'bottom') {
|
|
80
|
-
offset += '+100vh-100%';
|
|
81
|
-
}
|
|
82
|
-
return toPx(offset, 'height', $el);
|
|
83
|
-
},
|
|
84
|
-
|
|
85
70
|
selTarget({ selTarget }, $el) {
|
|
86
71
|
return (selTarget && $(selTarget, $el)) || $el;
|
|
87
72
|
},
|
|
@@ -134,34 +119,29 @@ export default {
|
|
|
134
119
|
return window;
|
|
135
120
|
},
|
|
136
121
|
|
|
122
|
+
filter() {
|
|
123
|
+
return this.targetOffset !== false;
|
|
124
|
+
},
|
|
125
|
+
|
|
137
126
|
handler() {
|
|
138
|
-
if (!
|
|
127
|
+
if (!location.hash || scrollTop(window) === 0) {
|
|
139
128
|
return;
|
|
140
129
|
}
|
|
141
130
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
window,
|
|
157
|
-
top -
|
|
158
|
-
elHeight -
|
|
159
|
-
(isNumeric(this.targetOffset) ? this.targetOffset : 0) -
|
|
160
|
-
this.offset
|
|
161
|
-
);
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
}
|
|
131
|
+
fastdom.read(() => {
|
|
132
|
+
const targetOffset = getOffset($(location.hash));
|
|
133
|
+
const elOffset = getOffset(this.$el);
|
|
134
|
+
|
|
135
|
+
if (this.isFixed && intersectRect(targetOffset, elOffset)) {
|
|
136
|
+
scrollTop(
|
|
137
|
+
window,
|
|
138
|
+
targetOffset.top -
|
|
139
|
+
elOffset.height -
|
|
140
|
+
toPx(this.targetOffset, 'height') -
|
|
141
|
+
toPx(this.offset, 'height')
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
165
145
|
},
|
|
166
146
|
},
|
|
167
147
|
],
|
|
@@ -177,35 +157,49 @@ export default {
|
|
|
177
157
|
|
|
178
158
|
const hide = this.isActive && types.has('resize');
|
|
179
159
|
if (hide) {
|
|
160
|
+
css(this.selTarget, 'transition', '0s');
|
|
180
161
|
this.hide();
|
|
181
162
|
}
|
|
182
163
|
|
|
183
164
|
if (!this.isActive) {
|
|
184
|
-
height = this.$el.
|
|
165
|
+
height = getOffset(this.$el).height;
|
|
185
166
|
margin = css(this.$el, 'margin');
|
|
186
167
|
}
|
|
187
168
|
|
|
188
169
|
if (hide) {
|
|
189
170
|
this.show();
|
|
171
|
+
fastdom.write(() => css(this.selTarget, 'transition', ''));
|
|
190
172
|
}
|
|
191
173
|
|
|
192
|
-
const overflow = Math.max(0, height + this.offset - getHeight(window));
|
|
193
|
-
|
|
194
174
|
const referenceElement = this.isFixed ? this.placeholder : this.$el;
|
|
195
|
-
const
|
|
196
|
-
|
|
175
|
+
const windowHeight = getHeight(window);
|
|
176
|
+
|
|
177
|
+
let position = this.position;
|
|
178
|
+
if (position === 'auto' && height > windowHeight) {
|
|
179
|
+
position = 'bottom';
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
let offset = toPx(this.offset, 'height', referenceElement);
|
|
183
|
+
if (position === 'bottom') {
|
|
184
|
+
offset += windowHeight - height;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
const overflow = Math.max(0, height + offset - windowHeight);
|
|
188
|
+
const topOffset = getOffset(referenceElement).top;
|
|
189
|
+
const offsetParentTop = getOffset(referenceElement.offsetParent).top;
|
|
197
190
|
|
|
198
191
|
const top = parseProp(this.top, this.$el, topOffset);
|
|
199
192
|
const bottom = parseProp(this.bottom, this.$el, topOffset + height, true);
|
|
200
193
|
|
|
201
|
-
const start = Math.max(top, topOffset) -
|
|
194
|
+
const start = Math.max(top, topOffset) - offset;
|
|
202
195
|
const end = bottom
|
|
203
|
-
? bottom - this.$el.
|
|
204
|
-
: getScrollingElement(this.$el).scrollHeight -
|
|
196
|
+
? bottom - getOffset(this.$el).height + overflow - offset
|
|
197
|
+
: getScrollingElement(this.$el).scrollHeight - windowHeight;
|
|
205
198
|
|
|
206
199
|
return {
|
|
207
200
|
start,
|
|
208
201
|
end,
|
|
202
|
+
offset,
|
|
209
203
|
overflow,
|
|
210
204
|
topOffset,
|
|
211
205
|
offsetParentTop,
|
|
@@ -322,7 +316,7 @@ export default {
|
|
|
322
316
|
}
|
|
323
317
|
} else if (this.isFixed) {
|
|
324
318
|
this.update();
|
|
325
|
-
} else if (this.animation) {
|
|
319
|
+
} else if (this.animation && scroll > topOffset) {
|
|
326
320
|
Animation.cancel(this.$el);
|
|
327
321
|
this.show();
|
|
328
322
|
Animation.in(this.$el, this.animation).catch(noop);
|
|
@@ -350,33 +344,33 @@ export default {
|
|
|
350
344
|
},
|
|
351
345
|
|
|
352
346
|
update() {
|
|
353
|
-
|
|
347
|
+
let {
|
|
354
348
|
width,
|
|
355
349
|
scroll = 0,
|
|
356
350
|
overflow,
|
|
357
351
|
overflowScroll = 0,
|
|
358
352
|
start,
|
|
359
353
|
end,
|
|
354
|
+
offset,
|
|
360
355
|
topOffset,
|
|
361
356
|
height,
|
|
362
357
|
offsetParentTop,
|
|
363
358
|
} = this._data;
|
|
364
359
|
const active = start !== 0 || scroll > start;
|
|
365
|
-
let top = this.offset;
|
|
366
360
|
let position = 'fixed';
|
|
367
361
|
|
|
368
362
|
if (scroll > end) {
|
|
369
|
-
|
|
363
|
+
offset += end - offsetParentTop;
|
|
370
364
|
position = 'absolute';
|
|
371
365
|
}
|
|
372
366
|
|
|
373
367
|
if (overflow) {
|
|
374
|
-
|
|
368
|
+
offset -= overflowScroll;
|
|
375
369
|
}
|
|
376
370
|
|
|
377
371
|
css(this.$el, {
|
|
378
372
|
position,
|
|
379
|
-
top: `${
|
|
373
|
+
top: `${offset}px`,
|
|
380
374
|
width,
|
|
381
375
|
});
|
|
382
376
|
|
|
@@ -397,7 +391,7 @@ function parseProp(value, el, propOffset, padding) {
|
|
|
397
391
|
} else {
|
|
398
392
|
const refElement = value === true ? parent(el) : query(value, el);
|
|
399
393
|
return (
|
|
400
|
-
|
|
394
|
+
getOffset(refElement).bottom -
|
|
401
395
|
(padding && refElement && within(el, refElement)
|
|
402
396
|
? toFloat(css(refElement, 'paddingBottom'))
|
|
403
397
|
: 0)
|
package/src/js/core/toggle.js
CHANGED
package/src/js/mixin/parallax.js
CHANGED
|
@@ -68,13 +68,11 @@ export default {
|
|
|
68
68
|
},
|
|
69
69
|
|
|
70
70
|
getCss(percent) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
{ transform: '', filter: '' }
|
|
77
|
-
);
|
|
71
|
+
const css = { transform: '', filter: '' };
|
|
72
|
+
for (const prop in this.props) {
|
|
73
|
+
this.props[prop](css, percent);
|
|
74
|
+
}
|
|
75
|
+
return css;
|
|
78
76
|
},
|
|
79
77
|
},
|
|
80
78
|
};
|
|
@@ -328,7 +326,7 @@ function getValue(stops, percent) {
|
|
|
328
326
|
return isNumber(start) ? start + Math.abs(start - end) * p * (start < end ? 1 : -1) : +end;
|
|
329
327
|
}
|
|
330
328
|
|
|
331
|
-
const unitRe =
|
|
329
|
+
const unitRe = /^-?\d+([^\s]*)/;
|
|
332
330
|
function getUnit(stops, defaultUnit) {
|
|
333
331
|
for (const stop of stops) {
|
|
334
332
|
const match = stop.match?.(unitRe);
|
package/src/js/util/ajax.js
CHANGED
|
@@ -60,8 +60,12 @@ export function getImage(src, srcset, sizes) {
|
|
|
60
60
|
return new Promise((resolve, reject) => {
|
|
61
61
|
const img = new Image();
|
|
62
62
|
|
|
63
|
-
img.onerror = (e) =>
|
|
64
|
-
|
|
63
|
+
img.onerror = (e) => {
|
|
64
|
+
reject(e);
|
|
65
|
+
};
|
|
66
|
+
img.onload = () => {
|
|
67
|
+
resolve(img);
|
|
68
|
+
};
|
|
65
69
|
|
|
66
70
|
sizes && (img.sizes = sizes);
|
|
67
71
|
srcset && (img.srcset = srcset);
|
|
@@ -37,8 +37,8 @@ export function offset(element, coordinates) {
|
|
|
37
37
|
const currentOffset = dimensions(element);
|
|
38
38
|
|
|
39
39
|
if (element) {
|
|
40
|
-
const {
|
|
41
|
-
const offsetBy = { height:
|
|
40
|
+
const { scrollY, scrollX } = toWindow(element);
|
|
41
|
+
const offsetBy = { height: scrollY, width: scrollX };
|
|
42
42
|
|
|
43
43
|
for (const dir in dirs) {
|
|
44
44
|
for (const i in dirs[dir]) {
|
|
@@ -104,8 +104,8 @@ export function offsetPosition(element) {
|
|
|
104
104
|
|
|
105
105
|
if (css(element, 'position') === 'fixed') {
|
|
106
106
|
const win = toWindow(element);
|
|
107
|
-
offset[0] += win.
|
|
108
|
-
offset[1] += win.
|
|
107
|
+
offset[0] += win.scrollY;
|
|
108
|
+
offset[1] += win.scrollX;
|
|
109
109
|
return offset;
|
|
110
110
|
}
|
|
111
111
|
} while ((element = element.offsetParent));
|
package/src/js/util/dom.js
CHANGED
|
@@ -73,14 +73,23 @@ export function unwrap(element) {
|
|
|
73
73
|
.forEach((parent) => parent.replaceWith(...parent.childNodes));
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
+
const fragmentRe = /^\s*<(\w+|!)[^>]*>/;
|
|
77
|
+
const singleTagRe = /^<(\w+)\s*\/?>(?:<\/\1>)?$/;
|
|
78
|
+
|
|
76
79
|
export function fragment(html) {
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
const matches = singleTagRe.exec(html);
|
|
81
|
+
if (matches) {
|
|
82
|
+
return document.createElement(matches[1]);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const container = document.createElement('div');
|
|
86
|
+
if (fragmentRe.test(html)) {
|
|
87
|
+
container.insertAdjacentHTML('beforeend', html.trim());
|
|
88
|
+
} else {
|
|
89
|
+
container.textContent = html;
|
|
82
90
|
}
|
|
83
|
-
|
|
91
|
+
|
|
92
|
+
return unwrapSingle(container.childNodes);
|
|
84
93
|
}
|
|
85
94
|
|
|
86
95
|
function unwrapSingle(nodes) {
|
package/tests/parallax.html
CHANGED
|
@@ -55,10 +55,10 @@
|
|
|
55
55
|
|
|
56
56
|
<h2>Stop Positions</h2>
|
|
57
57
|
|
|
58
|
-
<div id="test-stop-positions" class="uk-height-large uk-background-cover uk-margin uk-overflow-hidden uk-light uk-flex" style="background-image: url('images/dark.jpg');" uk-parallax="bgx: 0,200
|
|
58
|
+
<div id="test-stop-positions" class="uk-height-large uk-background-cover uk-margin uk-overflow-hidden uk-light uk-flex" style="background-image: url('images/dark.jpg');" uk-parallax="bgx: 0,50 50%, 200">
|
|
59
59
|
<div class="uk-width-1-2@m uk-text-center uk-margin-auto uk-margin-auto-vertical">
|
|
60
|
-
<h1 uk-parallax="x: -200,200
|
|
61
|
-
<p uk-parallax="x: 200,-200
|
|
60
|
+
<h1 uk-parallax="x: -200,200 20%,-200 80%,200; scale: 1,1 50%,2;">Headline</h1>
|
|
61
|
+
<p uk-parallax="x: 200,-200 20%,200 80%,-200; scale: 1,1 50%,2">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
|
|
62
62
|
</div>
|
|
63
63
|
</div>
|
|
64
64
|
|
|
@@ -77,8 +77,8 @@
|
|
|
77
77
|
<div class="uk-grid uk-margin-auto uk-flex-inline">
|
|
78
78
|
<div><div class="uk-card uk-card-default uk-padding-small" uk-parallax="target: #test-start-end; y: 396; easing: 0;">0 / 0</div></div>
|
|
79
79
|
<div><div class="uk-card uk-card-default uk-padding-small" uk-parallax="target: #test-start-end; start: 100%; end: 100%; y: 396; easing: 0;">100% / 100%</div></div>
|
|
80
|
-
<div><div class="uk-card uk-card-default uk-padding-small" uk-parallax="target: #test-start-end; start:
|
|
81
|
-
<div><div class="uk-card uk-card-default uk-padding-small" uk-parallax="target: #test-start-end; start: 100% +
|
|
80
|
+
<div><div class="uk-card uk-card-default uk-padding-small" uk-parallax="target: #test-start-end; start: 30vh; end: 30vh; y: 396; easing: 0;">30vh / 30vh</div></div>
|
|
81
|
+
<div><div class="uk-card uk-card-default uk-padding-small" uk-parallax="target: #test-start-end; start: 100% + 100; end: 100% + 100; y: 396; easing: 0;">100% + 100 / 100% + 100</div></div>
|
|
82
82
|
</div>
|
|
83
83
|
</div>
|
|
84
84
|
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
<div class="uk-section uk-section-default">
|
|
22
22
|
<div class="uk-container">
|
|
23
23
|
|
|
24
|
-
<div id="js-sticky-parallax-container" class="uk-position-relative uk-background-muted uk-text-center
|
|
25
|
-
<div class="uk-flex uk-flex-center uk-flex-middle
|
|
24
|
+
<div id="js-sticky-parallax-container" class="uk-position-relative uk-background-muted uk-text-center uk-height-viewport-3">
|
|
25
|
+
<div class="uk-flex uk-flex-center uk-flex-middle uk-height-viewport" uk-sticky="bottom: #js-sticky-parallax-container">
|
|
26
26
|
<div>
|
|
27
27
|
|
|
28
28
|
<img class="uk-position-relative uk-position-z-index" src="images/size-v.jpg" width="400" height="800" alt="" style="max-width: 50vw" uk-parallax="target: #js-sticky-parallax-container; y: 0,-250; easing: -1; start: 100vh; end: 100vh;">
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
</div>
|
|
119
119
|
<div>
|
|
120
120
|
|
|
121
|
-
<div class="uk-background-muted uk-text-center
|
|
121
|
+
<div class="uk-background-muted uk-text-center uk-height-viewport" uk-sticky="bottom: #js-sticky-parallax-viewport">
|
|
122
122
|
|
|
123
123
|
<div uk-parallax="target: #js-sticky-parallax-viewport; start: 100vh; end: 100vh; y: 10vh, 80vh; easing: 0">
|
|
124
124
|
|
|
@@ -146,12 +146,12 @@
|
|
|
146
146
|
|
|
147
147
|
<div class="uk-section uk-section-default">
|
|
148
148
|
|
|
149
|
-
<div id="js-sticky-parallax-images" style="height: 250vh" uk-grid>
|
|
149
|
+
<div id="js-sticky-parallax-images" style="min-height: 250vh" uk-grid>
|
|
150
150
|
<div class="uk-width-expand">
|
|
151
151
|
|
|
152
|
-
<div class="uk-background-muted
|
|
152
|
+
<div class="uk-background-muted uk-height-viewport" uk-sticky="bottom: #js-sticky-parallax-images">
|
|
153
153
|
<div uk-parallax="target: #js-sticky-parallax-images; y: 55vh, 45vh;">
|
|
154
|
-
<img class="uk-position-center-left" src="images/photo.jpg" width="1800" height="1200" alt="" uk-parallax="target: #js-sticky-parallax-images; start: 125vh; end: 100% + 100vh - 185vh; opacity: 1,1
|
|
154
|
+
<img class="uk-position-center-left" src="images/photo.jpg" width="1800" height="1200" alt="" uk-parallax="target: #js-sticky-parallax-images; start: 125vh; end: 100% + 100vh - 185vh; opacity: 1,1,0; easing:0">
|
|
155
155
|
<img class="uk-position-center-left" src="images/photo2.jpg" width="1800" height="1200" alt="" uk-parallax="target: #js-sticky-parallax-images; start: 175vh; end: 100% + 100vh - 235vh; opacity: 0,1 16.666%,1 99%,0; easing:0">
|
|
156
156
|
<img class="uk-position-center-left" src="images/photo3.jpg" width="1800" height="1200" alt="" uk-parallax="target: #js-sticky-parallax-images; start: 225vh; end: 100% + 100vh - 275vh; opacity: 0,1 20%,1; easing:0">
|
|
157
157
|
</div>
|
|
@@ -206,10 +206,10 @@
|
|
|
206
206
|
|
|
207
207
|
<div class="uk-section uk-section-default">
|
|
208
208
|
|
|
209
|
-
<div id="js-sticky-parallax-images-all" style="height: 250vh" uk-grid>
|
|
209
|
+
<div id="js-sticky-parallax-images-all" style="min-height: 250vh" uk-grid>
|
|
210
210
|
<div class="uk-width-expand">
|
|
211
211
|
|
|
212
|
-
<div class="uk-background-muted
|
|
212
|
+
<div class="uk-background-muted uk-height-viewport" uk-sticky="bottom: #js-sticky-parallax-images-all">
|
|
213
213
|
<div uk-parallax="target: #js-sticky-parallax-images-all; y: 55vh, 45vh;">
|
|
214
214
|
<img class="uk-position-center-left" src="images/photo.jpg" width="1800" height="1200" alt="" uk-parallax="target: #js-sticky-parallax-images-all; start: 100vh; end: 100% + 100vh - 160vh; opacity: 1,1 99%,0; easing:0">
|
|
215
215
|
<img class="uk-position-center-left" src="images/photo2.jpg" width="1800" height="1200" alt="" uk-parallax="target: #js-sticky-parallax-images-all; start: 150vh; end: 100% + 100vh - 210vh; opacity: 0,1 16.666%,1 99%,0; easing:0">
|
|
@@ -226,7 +226,7 @@
|
|
|
226
226
|
</div>
|
|
227
227
|
<div class="uk-width-expand">
|
|
228
228
|
|
|
229
|
-
<div
|
|
229
|
+
<div class="uk-height-viewport" uk-sticky="bottom: #js-sticky-parallax-images-all">
|
|
230
230
|
<div uk-parallax="target: #js-sticky-parallax-images-all; y: 55vh, 45vh;">
|
|
231
231
|
|
|
232
232
|
<div class="uk-position-center-left" uk-parallax="target: #js-sticky-parallax-images-all; start: 100vh; end: 100% + 100vh - 150vh; opacity: 0,1 20%,1 80%,0">
|