j1-template 2024.3.19 → 2024.3.21
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.
- checksums.yaml +4 -4
- data/_layouts/page.html +1 -0
- data/assets/data/amplitude_app.html +192 -163
- data/assets/data/swiper_app.2.html +757 -0
- data/assets/data/swiper_app.4.html +769 -0
- data/assets/data/swiper_app.html +171 -27
- data/assets/theme/j1/adapter/js/amplitude.js +1104 -216
- data/assets/theme/j1/adapter/js/swiper.js +63 -15
- data/assets/theme/j1/core/css/themes/bootstrap/bootstrap.css +111 -101
- data/assets/theme/j1/core/css/themes/bootstrap/bootstrap.min.css +1 -1
- data/assets/theme/j1/core/css/themes/unodark/bootstrap.css +111 -101
- data/assets/theme/j1/core/css/themes/unodark/bootstrap.min.css +1 -1
- data/assets/theme/j1/core/css/themes/unolight/bootstrap.css +111 -101
- data/assets/theme/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/amplitude.css +177 -216
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/amplitude.min.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/compact.css +220 -339
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/compact.min.css +1 -2
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.css +324 -491
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.min.css +1 -2
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/mini.css +70 -60
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/mini.min.css +2 -1
- data/assets/theme/j1/modules/amplitudejs/js/tech/ytp.js +2074 -843
- data/assets/theme/j1/modules/amplitudejs/scss/theme/uno/dark/player/large.scss +439 -264
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutBase.css +16 -0
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutBase.min.css +16 -0
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutExpanding.css +24 -24
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutExpanding.min.css +1 -235
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutNeighbor.min.css +2 -2
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutParallax.css +16 -0
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutParallax.min.css +16 -0
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutStacked.css +6 -7
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutStacked.min.css +1 -82
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutThumbs.min.css +2 -29
- data/assets/theme/j1/modules/swiperjs/css/theme/uno.css +29 -12
- data/assets/theme/j1/modules/swiperjs/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutBase.js +25 -0
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutBase.min.js +25 -0
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutExpanding.js +1 -5
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutExpanding.min.js +1 -5
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutNeighbor.js +12 -14
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutNeighbor.min.js +1 -17
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutPanorama.js +0 -1
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutParallax.js +25 -0
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutParallax.min.js +25 -0
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutStacked.0.js +114 -0
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutStacked.1.js +93 -0
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutStacked.js +42 -13
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutStacked.min.js +17 -0
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutThumbs.js +76 -25
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutThumbs.min.js +1 -17
- data/assets/theme/j1/modules/swiperjs/js/swiper-bundle.js +9152 -9131
- data/assets/theme/j1/modules/swiperjs/js/swiper-bundle.min.js +1 -1
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/README.md +5 -5
- data/lib/starter_web/_config.yml +1 -1
- data/lib/starter_web/_data/modules/amplitude_app.yml +206 -23
- data/lib/starter_web/_data/modules/amplitude_playlists.yml +1122 -19
- data/lib/starter_web/_data/modules/defaults/{amplitude_app.yml → amplitude.yml} +73 -26
- data/lib/starter_web/_data/modules/swiper_app.yml +356 -155
- data/lib/starter_web/_data/modules/swiper_playlists.yml +77 -1
- data/lib/starter_web/_data/resources.yml +6 -2
- data/lib/starter_web/_data/templates/feed.xml +1 -1
- data/lib/starter_web/_includes/attributes.asciidoc +5 -4
- data/lib/starter_web/_plugins/filter/filters.rb +1 -11
- data/lib/starter_web/_plugins/index/lunr.rb +1 -1
- data/lib/starter_web/assets/image/icon/bokeh/bokeh-32x32.ico +0 -0
- data/lib/starter_web/assets/image/icon/bokeh/bokeh.ico +0 -0
- data/lib/starter_web/assets/image/icon/bokeh/logo-160x160.png +0 -0
- data/lib/starter_web/assets/image/icon/hyvor-talk/hyvore-talk.ico +0 -0
- data/lib/starter_web/assets/image/icon/hyvor-talk/jpg/hyvor-logo.512x512.jpg +0 -0
- data/lib/starter_web/assets/image/icon/hyvor-talk/png/hyvor-logo.24x24.jpg +0 -0
- data/lib/starter_web/assets/image/icon/hyvor-talk/png/hyvor-logo.24x24.png +0 -0
- data/lib/starter_web/assets/image/icon/hyvor-talk/png/hyvor-logo.512x512.png +0 -0
- data/lib/starter_web/assets/image/icon/hyvor-talk/scalable/hyvor-logo.svg +81 -0
- data/lib/starter_web/assets/image/icon/jupyter/jupyter-32x32.ico +0 -0
- data/lib/starter_web/assets/image/icon/jupyter/jupyter.ico +0 -0
- data/lib/starter_web/assets/image/icon/jupyter/logo.png +0 -0
- data/lib/starter_web/assets/image/icon/mdi/mdi.svg +1 -0
- data/lib/starter_web/assets/image/icon/mdi/mdil.svg +1 -0
- data/lib/starter_web/assets/image/icon/scalable/facebook.svg +34 -0
- data/lib/starter_web/assets/image/icon/scalable/google.svg +35 -0
- data/lib/starter_web/assets/image/icon/scalable/ibm.svg +24 -0
- data/lib/starter_web/assets/image/icon/scalable/microsoft.svg +42 -0
- data/lib/starter_web/assets/image/module/swiper/avatar/avatar-1.png +0 -0
- data/lib/starter_web/assets/image/module/swiper/avatar/avatar-2.png +0 -0
- data/lib/starter_web/assets/image/module/swiper/avatar/avatar-3.png +0 -0
- data/lib/starter_web/assets/image/module/swiper/avatar/avatar-4.png +0 -0
- data/lib/starter_web/assets/image/module/swiper/avatar/avatar-5.png +0 -0
- data/lib/starter_web/assets/image/module/swiper/simple/test/image/diana_krall.jpg +0 -0
- data/lib/starter_web/index.html +3 -3
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/learn/where_to_go.adoc +1 -1
- data/lib/starter_web/pages/public/tools/previewer/preview_amplitudejs.adoc +69 -36
- data/lib/starter_web/pages/public/tools/tester/app_tester_amplitudejs_yt.adoc +65 -18
- data/lib/starter_web/pages/public/tools/tester/app_tester_swiper.adoc +87 -0
- data/lib/starter_web/pages/public/tools/tester/app_tester_swiperjs.adoc +121 -36
- data/lib/starter_web/pages/public/tour/_includes/attributes.asciidoc +3 -3
- data/lib/starter_web/pages/public/tour/{play_audio.adoc → audio_data.adoc} +51 -86
- data/lib/starter_web/pages/public/tour/{present_images.adoc → image_data.adoc} +4 -5
- data/lib/starter_web/pages/public/tour/{play_video.adoc → video_data.adoc} +18 -17
- metadata +52 -17
- data/assets/theme/j1/modules/swiperjs/js/highlightJS.js +0 -13376
- data/assets/theme/j1/modules/swiperjs/js/highlightJS.min.js +0 -1246
- data/assets/theme/j1/modules/swiperjs/js/modules/!readme +0 -3
- /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/!info/!readme +0 -0
- /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/!readme +0 -0
- /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/1.jpg +0 -0
- /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/2.jpg +0 -0
- /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/3.jpg +0 -0
- /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/4.jpg +0 -0
- /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/5.jpg +0 -0
- /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/6.jpg +0 -0
@@ -107,7 +107,29 @@ mobile devices.
|
|
107
107
|
|
108
108
|
|
109
109
|
[role="mt-5"]
|
110
|
-
==
|
110
|
+
== AmplitudeJS
|
111
|
+
|
112
|
+
The J1 Template suports *native audio* files (e.g. mp3) using *custom players*
|
113
|
+
based on *AmplitudeJS* using the the (default) theme Uno. The color scheme
|
114
|
+
used matches the look and feel of the template to preserve the page design.
|
115
|
+
|
116
|
+
Three types of AmplitudeJS players are build-in for the J1 template system:
|
117
|
+
|
118
|
+
* *Mini* Players
|
119
|
+
* *Compact* Players (default payer)
|
120
|
+
* *Large* Players
|
121
|
+
|
122
|
+
[role="mt-4"]
|
123
|
+
[NOTE]
|
124
|
+
====
|
125
|
+
Amplitude players for the J1 Template are mobile-friendly. Instead of
|
126
|
+
clicking on the appropriate elements, touch events are applied to all
|
127
|
+
mobile devices.
|
128
|
+
====
|
129
|
+
|
130
|
+
|
131
|
+
[role="mt-5"]
|
132
|
+
=== Mini Players
|
111
133
|
|
112
134
|
In the context of complex components on a web page, like an audio player,
|
113
135
|
a mini player refers to a minimized version of full players. It typically
|
@@ -119,54 +141,65 @@ background without dedicating the entire screen to the player. They
|
|
119
141
|
are commonly found on music streaming services, podcast platforms, and
|
120
142
|
websites with embedded audio content.
|
121
143
|
|
122
|
-
.Emancipator · Dusk To Dawn
|
123
|
-
amplitude::
|
144
|
+
.Emancipator · From Dusk To Dawn
|
145
|
+
amplitude::emancipator_mini[role="mb-5"]
|
124
146
|
|
125
|
-
.Royalty Free Music · Disco 80th
|
126
|
-
amplitude::free_disco_mini[role="mt-3 mb-5"]
|
127
|
-
|
128
|
-
lorem:sentences[5]
|
129
147
|
|
130
148
|
[role="mt-5"]
|
131
|
-
|
149
|
+
=== Compact Players
|
150
|
+
|
151
|
+
The design of a *Compact player* is an efficient approach that involves
|
152
|
+
condensing the player controls and display elements into a smaller area.
|
153
|
+
It allows the audio player to fit neatly within the web page's layout without
|
154
|
+
overwhelming or dominating the content around it.
|
155
|
+
|
156
|
+
The player aims to balance functionality and space efficiency, ensuring users
|
157
|
+
can easily access and control the audio playback without sacrificing too much
|
158
|
+
screen space or placing multiple players side-by-side.
|
132
159
|
|
133
|
-
|
134
|
-
|
135
|
-
space while maintaining its functionality and usability.
|
160
|
+
.Emancipator · From Dusk To Dawn
|
161
|
+
amplitude::emancipator_compact[role="mb-5"]
|
136
162
|
|
137
|
-
////
|
138
|
-
The *compact design* for an audio player is an efficient approach that
|
139
|
-
involves condensing the player controls and display elements into a smaller
|
140
|
-
area. It uses icons or symbols instead of text labels where possible, and
|
141
|
-
possibly hides less frequently used features behind menus or dropdowns to
|
142
|
-
reduce clutter, thereby instilling confidence in its effectiveness.
|
143
163
|
|
144
|
-
|
145
|
-
|
146
|
-
The design aims to balance functionality and space efficiency, ensuring
|
147
|
-
users can easily access and control the audio playback without sacrificing
|
148
|
-
too much screen space.
|
149
|
-
////
|
164
|
+
[role="mt-5"]
|
165
|
+
=== Large Players
|
150
166
|
|
151
|
-
|
152
|
-
|
167
|
+
A complex component, like an audio player on a web page, typically refers
|
168
|
+
to a design or layout that minimizes the component's space while maintaining
|
169
|
+
its functionality and usability.
|
153
170
|
|
154
|
-
|
155
|
-
|
171
|
+
The large design provides the full functionality of an audio player to ensure
|
172
|
+
users can easily control audio playback. The player behaves similarly to a
|
173
|
+
compact player, but all controls are displayed in a single window; there is
|
174
|
+
no need to open other widgets.
|
156
175
|
|
157
|
-
|
176
|
+
.Emancipator · From Dusk To Dawn
|
177
|
+
amplitude::emancipator_large[role="mb-5"]
|
158
178
|
|
159
179
|
|
160
180
|
[role="mt-5"]
|
161
|
-
==
|
181
|
+
== AmplitudeJS on Youtube
|
162
182
|
|
163
|
-
|
183
|
+
The example demonstrates playing *Audio* track from *YouTube Video* using an
|
184
|
+
AmplitudJS player. The J1 template uses the video *plugin ytp* to extend the
|
185
|
+
native functionality of the AmplitudeJS API to playback YouTube files only for
|
186
|
+
the audio part.
|
164
187
|
|
165
|
-
|
166
|
-
|
188
|
+
[role="mt-4 mb-5"]
|
189
|
+
[CAUTION]
|
190
|
+
====
|
191
|
+
Playing audio tracks is currently supported only for videos from YouTube (YT).
|
192
|
+
The YT plugin *ytp* embeds a YouTube (iframe) player and mimics the AmplitudeJS
|
193
|
+
player buttons and controls to manage a *playlist* of videos the same as known
|
194
|
+
for native audio files.
|
195
|
+
====
|
167
196
|
|
168
|
-
.
|
169
|
-
amplitude::
|
197
|
+
.Bea and her Business · YouTube 2025
|
198
|
+
amplitude::bea_yt_large[role="mb-5"]
|
170
199
|
|
171
|
-
[role="mb-
|
172
|
-
|
200
|
+
[role="mt-4 mb-5"]
|
201
|
+
[NOTE]
|
202
|
+
====
|
203
|
+
AmplitudeJS YT Player can only be used with the J1 Template. Currently, only
|
204
|
+
players of type *large* are supported.
|
205
|
+
====
|
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
title: J1 Amplitude
|
3
|
-
title_extention: YouTube Video
|
4
|
-
tagline: YouTube Video
|
2
|
+
title: J1 Amplitude
|
3
|
+
title_extention: YouTube Video
|
4
|
+
tagline: YouTube Video
|
5
5
|
|
6
6
|
date: 2024-09-21
|
7
7
|
#last_modified: 2024-01-01
|
@@ -158,6 +158,7 @@ endif::[]
|
|
158
158
|
|
159
159
|
|
160
160
|
ifeval::[{ytp--audio-player} == true]
|
161
|
+
|
161
162
|
[role="mt-5"]
|
162
163
|
== Amplitude YouTube Player
|
163
164
|
|
@@ -173,6 +174,7 @@ Find the complete *playlist* for Manon Mélodie on
|
|
173
174
|
link:{manon-melodie--playlist}[YouTube, {browser-window--new}].
|
174
175
|
====
|
175
176
|
|
177
|
+
|
176
178
|
[role="mt-4"]
|
177
179
|
[[manon_melodie]]
|
178
180
|
=== Manon Mélodie
|
@@ -180,24 +182,69 @@ link:{manon-melodie--playlist}[YouTube, {browser-window--new}].
|
|
180
182
|
lorem:sentences[3]
|
181
183
|
|
182
184
|
.Manon Mélodie · YouTube 2025
|
183
|
-
amplitude::manon_melodie_yt_large[role="
|
185
|
+
amplitude::manon_melodie_yt_large[role="mb-5"]
|
186
|
+
|
187
|
+
[role="mt-4"]
|
188
|
+
[[bea]]
|
189
|
+
=== Bea and her Business
|
190
|
+
|
191
|
+
lorem:sentences[3]
|
192
|
+
|
193
|
+
.Bea and her Business · YouTube 2025
|
194
|
+
amplitude::bea_yt_large[role="mb-5"]
|
195
|
+
|
196
|
+
|
197
|
+
[role="mt-4"]
|
198
|
+
=== Diana Krall
|
199
|
+
|
200
|
+
lorem:sentences[3]
|
201
|
+
|
202
|
+
.Diana Krall · YouTube
|
203
|
+
amplitude::diana_krall_yt_large[role="mb-5"]
|
204
|
+
|
205
|
+
|
206
|
+
[role="mt-4"]
|
207
|
+
=== Ephraim Kishon
|
208
|
+
|
209
|
+
lorem:sentences[5]
|
210
|
+
|
211
|
+
[role="mt-4"]
|
212
|
+
==== Beste Familiengeschichten
|
213
|
+
|
214
|
+
lorem:sentences[3]
|
184
215
|
|
185
|
-
|
186
|
-
|
216
|
+
.Ephraim Kishon · Beste Familiengeschichten
|
217
|
+
amplitude::familiengeschichten_yt_large[role="mb-5"]
|
187
218
|
|
188
|
-
// lorem:sentences[3]
|
189
219
|
|
190
|
-
|
191
|
-
|
220
|
+
[role="mt-4"]
|
221
|
+
==== Beste Autofahrergeschichten
|
222
|
+
|
223
|
+
lorem:sentences[3]
|
224
|
+
|
225
|
+
.Ephraim Kishon · Beste Autofahrergeschichten
|
226
|
+
amplitude::autofahrer_geschichten_yt_large[role="mb-5"]
|
192
227
|
|
193
|
-
// [role="mt-4"]
|
194
|
-
// [[faelle_des_bnd]]
|
195
|
-
// === Die größten Fälle des BND
|
196
228
|
|
197
|
-
|
229
|
+
[role="mt-4"]
|
230
|
+
=== Disco 80th
|
231
|
+
|
232
|
+
The large design provides the full functionality of an audio player to ensure
|
233
|
+
users can easily control audio playback. The player behaves similarly to a
|
234
|
+
compact player, but all controls are displayed in a single window; there is
|
235
|
+
no need to open other widgets.
|
236
|
+
|
237
|
+
.Royalty Free Music · Disco 80th
|
238
|
+
amplitude::disco_large[role="mb-5"]
|
239
|
+
|
240
|
+
|
241
|
+
[role="mt-4"]
|
242
|
+
=== Mimi Rutherfurt
|
243
|
+
|
244
|
+
lorem:sentences[3]
|
198
245
|
|
199
|
-
|
200
|
-
|
246
|
+
.Mimi Rutherfurt · Maritim Verlag
|
247
|
+
amplitude::mimi_rutherfurt_yt_large[role="mb-5"]
|
201
248
|
|
202
249
|
endif::[]
|
203
250
|
|
@@ -221,7 +268,7 @@ ifeval::[{ms-slider-video--example} == true]
|
|
221
268
|
lorem:sentences[5]
|
222
269
|
|
223
270
|
.Slider using Video
|
224
|
-
masterslider::ms_00010[role="
|
271
|
+
masterslider::ms_00010[role="mb-5"]
|
225
272
|
|
226
273
|
|
227
274
|
[role="mt-5"]
|
@@ -232,7 +279,7 @@ upload, view, share, and comment on videos. The platform provides services
|
|
232
279
|
for people and organizations to publish various video content.
|
233
280
|
|
234
281
|
.Fortnight (feat. Post Malone, Official Music Video) · Taylor Swift
|
235
|
-
youtube::q3zqJs7JUCQ[poster="//img.youtube.com/vi/q3zqJs7JUCQ/maxresdefault.jpg" role="
|
282
|
+
youtube::q3zqJs7JUCQ[poster="//img.youtube.com/vi/q3zqJs7JUCQ/maxresdefault.jpg" role="mb-5"]
|
236
283
|
|
237
284
|
|
238
285
|
[role="mt-5"]
|
@@ -242,5 +289,5 @@ VideoJS provides a flexible and customizable platform for displaying and
|
|
242
289
|
controlling MPEG 4 video content on websites and web applications.
|
243
290
|
|
244
291
|
.Video over VideoJS
|
245
|
-
gallery::jg_video_html5_videojs[role="
|
292
|
+
gallery::jg_video_html5_videojs[role="mb-5"]
|
246
293
|
endif::[]
|
@@ -0,0 +1,87 @@
|
|
1
|
+
---
|
2
|
+
title: J1 Swiper
|
3
|
+
title_extention: Replacemant for Backstretch
|
4
|
+
tagline: Replacemant for Backstretch
|
5
|
+
date: 2025-05-22
|
6
|
+
#last_modified: 2025-01-01
|
7
|
+
|
8
|
+
description: >
|
9
|
+
SwiperJS is a Javascript API that creates modern
|
10
|
+
slider shows. All sliders use hardware-accelerated
|
11
|
+
features like 3D transitions to perform best on modern
|
12
|
+
devices. SwiperJS-based sliders are intended to be
|
13
|
+
displayed at their best on all types of websites, such
|
14
|
+
as those viewed on desktop computers, tablets, or
|
15
|
+
smartphones.
|
16
|
+
keywords: >
|
17
|
+
open source, free, template, jekyll, jekyllone, web,
|
18
|
+
sites, static, jamstack, bootstrap,
|
19
|
+
html, html5, sliders, carousels, SwiperJS
|
20
|
+
|
21
|
+
categories: [ Tester ]
|
22
|
+
tags: [ SwiperJS ]
|
23
|
+
|
24
|
+
image:
|
25
|
+
path: /assets/image/module/attic/markus-spiske-1920x1280.jpg
|
26
|
+
width: 1920
|
27
|
+
height: 1280
|
28
|
+
|
29
|
+
compress: false
|
30
|
+
regenerate: false
|
31
|
+
personalization: true
|
32
|
+
permalink: /pages/public/tools/tester/swiper/
|
33
|
+
|
34
|
+
resources: [ swiperjs ]
|
35
|
+
resource_options:
|
36
|
+
- toccer:
|
37
|
+
collapseDepth: 3
|
38
|
+
- attic:
|
39
|
+
enabled: false
|
40
|
+
slides:
|
41
|
+
- url: //kj.de/images/media/6078_20579.jpg
|
42
|
+
alt: Diana Krall
|
43
|
+
---
|
44
|
+
|
45
|
+
// Page Initializer
|
46
|
+
// =============================================================================
|
47
|
+
// Enable the Liquid Preprocessor
|
48
|
+
:page-liquid:
|
49
|
+
|
50
|
+
// Attribute settings for section control
|
51
|
+
//
|
52
|
+
:swiper--features: false
|
53
|
+
|
54
|
+
// Set (local) page attributes here
|
55
|
+
// -----------------------------------------------------------------------------
|
56
|
+
// :page--attr: <attr-value>
|
57
|
+
|
58
|
+
// Load Liquid procedures
|
59
|
+
// -----------------------------------------------------------------------------
|
60
|
+
{% capture load_attributes %}themes/{{site.template.name}}/procedures/global/attributes_loader.proc{%endcapture%}
|
61
|
+
|
62
|
+
// Load page attributes
|
63
|
+
// -----------------------------------------------------------------------------
|
64
|
+
{% include {{load_attributes}} scope="global" %}
|
65
|
+
|
66
|
+
// Include sub-documents (if any)
|
67
|
+
// -----------------------------------------------------------------------------
|
68
|
+
|
69
|
+
// Page content
|
70
|
+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
71
|
+
|
72
|
+
swiper::attic_swiper[role="mb-8"]
|
73
|
+
|
74
|
+
// ++++
|
75
|
+
// <!-- Swiper elements (El) -->
|
76
|
+
// <div id="swiper_image_base" class="swiper swiper-container">
|
77
|
+
// <!-- Swiper Wrapper (slides) -->
|
78
|
+
// <ul class="swiper-wrapper">
|
79
|
+
// <!-- flat swiper slide HTML -->
|
80
|
+
// <li class="swiper-slide">
|
81
|
+
// <img src="/assets/image/module/swiper/simple/test/image/diana_krall.jpg" alt="Slide Image diana_krall">
|
82
|
+
// </li>
|
83
|
+
// </ul>
|
84
|
+
// <!-- END Swiper Wrapper (slides) -->
|
85
|
+
// </div>
|
86
|
+
// <!-- END Swiper Container (elements) -->
|
87
|
+
// ++++
|
@@ -75,7 +75,7 @@ all types of websites, such as those viewed on desktop computers, tablets, or
|
|
75
75
|
smartphones.
|
76
76
|
|
77
77
|
|
78
|
-
[role="mt-
|
78
|
+
[role="mt-4"]
|
79
79
|
== What SwiperJS Apps are
|
80
80
|
|
81
81
|
SwiperJS Apps are preconfigured swipers (sliders) that use the SwiperJS API as
|
@@ -120,7 +120,7 @@ A more *emphasized* type of a **text**-based swiper is a *parallax* text
|
|
120
120
|
swiper. If you want to *focus* the meaning, this kind of a swiper may be
|
121
121
|
nteresting. Parallax text sliders can be placed as *banners* on a page.
|
122
122
|
|
123
|
-
.Extended Text Swiper ·
|
123
|
+
.Extended Text Swiper · Parallax
|
124
124
|
swiper::swiper_text_parallax[role="mt-4 mb-5"]
|
125
125
|
|
126
126
|
|
@@ -145,7 +145,7 @@ below the Swiper App indicate how *many* slides (images) the slide show
|
|
145
145
|
*contains* for improved usage experience.
|
146
146
|
|
147
147
|
.Image Swiper · Full-width + Pagination
|
148
|
-
swiper::swiper_image_base_full_width_pagination[role="mt-
|
148
|
+
swiper::swiper_image_base_full_width_pagination[role="mt-3"]
|
149
149
|
|
150
150
|
[role="mt-4"]
|
151
151
|
==== Equal Image Sizes
|
@@ -156,9 +156,10 @@ many facts to know animated for the reader's attention within a single
|
|
156
156
|
line.
|
157
157
|
|
158
158
|
.Equal Image Sizes · Captions + Navigation + Pagination
|
159
|
-
swiper::
|
159
|
+
swiper::swiper_image_base_navigation_pagination[role="mt-3"]
|
160
160
|
|
161
|
-
|
161
|
+
|
162
|
+
[role="mt-4"]
|
162
163
|
==== Mixed Image Sizes
|
163
164
|
|
164
165
|
Pictures you've made are typically *not even in size*. Images may have the
|
@@ -166,7 +167,7 @@ same size (resolution), but some are orientated *landscape*, or others may
|
|
166
167
|
be *portrait*. For that reason, a more powerful swiper is needed to create
|
167
168
|
so-called justified slides.
|
168
169
|
|
169
|
-
.Mixed Image Sizes · Captions +
|
170
|
+
.Mixed Image Sizes · Captions + Lightbox
|
170
171
|
swiper::swiper_image_base_captions[role="mt-4 mb-4"]
|
171
172
|
|
172
173
|
|
@@ -222,7 +223,7 @@ presented *images*.
|
|
222
223
|
++++
|
223
224
|
<div class="swiper-title"> <i class="mdib mdib-view-carousel mdib-24px mr-2"></i> Extendend Swiper · Layout Thumb Right + Captions </div>
|
224
225
|
<div class="container g-0 mb-5">
|
225
|
-
<div class="row gx-1">
|
226
|
+
<div id="thumb_view_row" class="row gx-1">
|
226
227
|
|
227
228
|
<!-- Thumb View (main) -->
|
228
229
|
<div class="col-md-9">
|
@@ -255,7 +256,11 @@ presented *images*.
|
|
255
256
|
<div class="swp-caption-content">Little Bird</div>
|
256
257
|
</li>
|
257
258
|
</ul> <!-- END Swiper wrapper -->
|
258
|
-
|
259
|
+
|
260
|
+
<!-- Outer Pagination -->
|
261
|
+
<div id="thumb_view_row_pagination" class="swiper-pagination-outer"></div>
|
262
|
+
|
263
|
+
</div> <!-- END Swiper container -->
|
259
264
|
</div> <!-- END Thumb View (main) -->
|
260
265
|
|
261
266
|
<!-- Thumb View (thumbs/right) -->
|
@@ -293,6 +298,10 @@ presented *images*.
|
|
293
298
|
</div> <!-- END Thumb View (thumbs/right) -->
|
294
299
|
|
295
300
|
</div> <!-- END BS row -->
|
301
|
+
|
302
|
+
<!-- Outer Pagination -->
|
303
|
+
<!--div class="swiper-pagination-outer"></div -->
|
304
|
+
|
296
305
|
</div> <!-- END BS container -->
|
297
306
|
|
298
307
|
<script>
|
@@ -318,10 +327,14 @@ $(function() {
|
|
318
327
|
}
|
319
328
|
});
|
320
329
|
|
321
|
-
// Initialize Master instance
|
330
|
+
// Initialize Master instance
|
322
331
|
var masterSwiper2 = new Swiper('#master_slider_2', {
|
323
332
|
direction: 'horizontal',
|
324
333
|
grabCursor: true,
|
334
|
+
pagination: {
|
335
|
+
el: '.swiper-pagination-outer',
|
336
|
+
clickable: true,
|
337
|
+
},
|
325
338
|
effect: 'fade',
|
326
339
|
fadeEffect: {
|
327
340
|
crossFade: true
|
@@ -339,6 +352,22 @@ $(function() {
|
|
339
352
|
}
|
340
353
|
});
|
341
354
|
|
355
|
+
// workaround for swiper pagination placed 'outer'
|
356
|
+
// ---------------------------------------------------------------
|
357
|
+
{% assign init_swiper_delay = 500 %}
|
358
|
+
{% assign pagination_enabled = true %}
|
359
|
+
|
360
|
+
{% if pagination_enabled %}
|
361
|
+
setTimeout(() => {
|
362
|
+
const sourceEl = document.getElementById('thumb_view_row_pagination');
|
363
|
+
const targetEl = document.getElementById('thumb_view_row');
|
364
|
+
targetEl.appendChild(sourceEl);
|
365
|
+
|
366
|
+
// logger.debug('\n' + 'pagination elements (outer) moved');
|
367
|
+
}, {{init_swiper_delay}});
|
368
|
+
{% endif %}
|
369
|
+
// ---------------------------------------------------------------
|
370
|
+
|
342
371
|
clearInterval(dependencies_met_page_ready);
|
343
372
|
} // END pageVisible
|
344
373
|
}, 10); // END dependencies_met_page_ready
|
@@ -476,43 +505,49 @@ $(function() {
|
|
476
505
|
|
477
506
|
lorem:sentences[5]
|
478
507
|
|
508
|
+
.Extendend Swiper · Layout Stacked
|
509
|
+
swiper::swiper_image_stacked[role="mt-4 mb-5"]
|
510
|
+
|
511
|
+
////
|
479
512
|
++++
|
480
|
-
<div class="carousel-title"> <i class="mdib mdib-view-carousel mdib-24px mr-2"></i> Extendend Swiper · Layout Stacked</div>
|
481
|
-
<!--
|
513
|
+
<div class="carousel-title"> <i class="mdib mdib-view-carousel mdib-24px mr-2"></i> Extendend Swiper · Layout Stacked (manual)</div>
|
514
|
+
<!-- Stacked slider -->
|
482
515
|
<div id="stacked_slider" class="stacked-slider mt-3">
|
483
|
-
<div class="swiper swiper-container">
|
516
|
+
<div id="stacked_slider_swiper_container" class="swiper swiper-container">
|
484
517
|
|
485
518
|
<ul class="swiper-wrapper">
|
486
519
|
<li class="swiper-slide">
|
487
520
|
<!-- set image parallax scale for nice zoom effect -->
|
488
|
-
<img data-swiper-parallax-scale="1.1" src="/assets/image/module/swiper/extended/
|
521
|
+
<img data-swiper-parallax-scale="1.1" src="/assets/image/module/swiper/extended/stacked/image/1.jpg" alt="">
|
489
522
|
</li>
|
490
523
|
<li class="swiper-slide">
|
491
|
-
<img data-swiper-parallax-scale="1.1" src="/assets/image/module/swiper/extended/
|
524
|
+
<img data-swiper-parallax-scale="1.1" src="/assets/image/module/swiper/extended/stacked/image/2.jpg" alt="">
|
492
525
|
</li>
|
493
526
|
<li class="swiper-slide">
|
494
|
-
<img data-swiper-parallax-scale="1.1" src="/assets/image/module/swiper/extended/
|
527
|
+
<img data-swiper-parallax-scale="1.1" src="/assets/image/module/swiper/extended/stacked/image/3.jpg" alt="">
|
495
528
|
</li>
|
496
529
|
<li class="swiper-slide">
|
497
|
-
<img data-swiper-parallax-scale="1.1" src="/assets/image/module/swiper/extended/
|
530
|
+
<img data-swiper-parallax-scale="1.1" src="/assets/image/module/swiper/extended/stacked/image/4.jpg" alt="">
|
498
531
|
</li>
|
499
532
|
<li class="swiper-slide">
|
500
|
-
<img data-swiper-parallax-scale="1.1" src="/assets/image/module/swiper/extended/
|
533
|
+
<img data-swiper-parallax-scale="1.1" src="/assets/image/module/swiper/extended/stacked/image/5.jpg" alt="">
|
501
534
|
</li>
|
502
535
|
<li class="swiper-slide">
|
503
|
-
<img data-swiper-parallax-scale="1.1" src="/assets/image/module/swiper/extended/
|
536
|
+
<img data-swiper-parallax-scale="1.1" src="/assets/image/module/swiper/extended/stacked/image/6.jpg" alt="">
|
504
537
|
</li>
|
505
|
-
</ul>
|
538
|
+
</ul> <!-- END Swiper Wrapper (slides) -->
|
506
539
|
|
507
|
-
|
508
|
-
|
509
|
-
|
540
|
+
<!-- Pagination -->
|
541
|
+
<!-- div id="stacked_slider_pagination" class="swiper-pagination-outer"></div -->
|
542
|
+
<div id="stacked_slider_pagination" class="swiper-pagination-inner"></div>
|
543
|
+
|
544
|
+
</div> <!-- END Swiper Container (elements) -->
|
545
|
+
</div> <!-- END Swiper stacked_slider -->
|
510
546
|
|
511
|
-
++++
|
512
547
|
<script>
|
513
548
|
$(function() {
|
514
549
|
|
515
|
-
function
|
550
|
+
function LayoutStacked(el) {
|
516
551
|
const swiperEl = el.querySelector('.swiper');
|
517
552
|
|
518
553
|
const calcNextOffset = () => {
|
@@ -524,12 +559,25 @@ $(function() {
|
|
524
559
|
return `${nextOffsetVh}%`;
|
525
560
|
};
|
526
561
|
|
527
|
-
const
|
562
|
+
const onLastSlide = (swiper) => {
|
563
|
+
console.log ('\n' + 'LayoutStacked, Entered event: reachEnd');
|
564
|
+
// swiper.allowTouchMove = false;
|
565
|
+
// swiper.allowSlidePrev = false;
|
566
|
+
// swiper.allowSlideNext = false;
|
567
|
+
};
|
568
|
+
|
569
|
+
const stackedSwiper = new Swiper(swiperEl, {
|
528
570
|
effect: 'creative',
|
529
571
|
speed: 600,
|
530
572
|
resistanceRatio: 0,
|
531
573
|
grabCursor: true,
|
532
574
|
parallax: true,
|
575
|
+
pagination: {
|
576
|
+
//el: '.swiper-pagination-outer',
|
577
|
+
el: '.swiper-pagination-inner',
|
578
|
+
type: 'bullets',
|
579
|
+
clickable: true
|
580
|
+
},
|
533
581
|
creativeEffect: {
|
534
582
|
limitProgress: 3,
|
535
583
|
perspective: true,
|
@@ -543,26 +591,52 @@ $(function() {
|
|
543
591
|
},
|
544
592
|
},
|
545
593
|
on: {
|
546
|
-
init:
|
594
|
+
init: (swiper) => {
|
595
|
+
var slideHeight = 900;
|
596
|
+
swiper.slides.forEach(slide => {
|
597
|
+
slide.style.height = `${slideHeight}px`;
|
598
|
+
});
|
599
|
+
},
|
600
|
+
// reachEnd: (swiper) => {
|
601
|
+
// onLastSlide(swiper);
|
602
|
+
// }
|
547
603
|
}
|
548
604
|
});
|
549
605
|
|
550
606
|
const onResize = () => {
|
551
|
-
if (!
|
607
|
+
if (!stackedSwiper || stackedSwiper.destroyed) return;
|
552
608
|
// prettier-ignore
|
553
|
-
|
609
|
+
stackedSwiper.params.creativeEffect.next.translate = [calcNextOffset(), 0, 0];
|
554
610
|
if (
|
555
|
-
|
611
|
+
stackedSwiper.params.resizeObserver &&
|
556
612
|
typeof window.ResizeObserver !== 'undefined'
|
557
613
|
) {
|
558
|
-
|
614
|
+
stackedSwiper.update();
|
559
615
|
}
|
560
616
|
};
|
561
617
|
window.addEventListener('resize', onResize);
|
562
618
|
|
563
|
-
return postersSwiper;
|
564
619
|
|
565
|
-
|
620
|
+
// workaround for swiper pagination placed 'outer'
|
621
|
+
// -------------------------------------------------------------------------
|
622
|
+
{% assign init_swiper_delay = 500 %}
|
623
|
+
{% assign pagination_el = swiper.module_settings.pagination.el | split: '-' %}
|
624
|
+
{% assign pagination_position = pagination_el[2] %}
|
625
|
+
|
626
|
+
setTimeout(() => {
|
627
|
+
// const sourceEl = document.getElementById('{{swiper.id}}_pagination');
|
628
|
+
// const targetEl = document.getElementById('{{swiper.id}}');
|
629
|
+
const sourceEl = document.getElementById('stacked_slider_pagination');
|
630
|
+
const targetEl = document.getElementById('stacked_slider_swiper_container');
|
631
|
+
// targetEl.appendChild(sourceEl);
|
632
|
+
|
633
|
+
// logger.debug('\n' + 'pagination elements (outer) moved');
|
634
|
+
}, {{init_swiper_delay}});
|
635
|
+
// -------------------------------------------------------------------------
|
636
|
+
|
637
|
+
return stackedSwiper;
|
638
|
+
|
639
|
+
} // END LayoutStacked
|
566
640
|
|
567
641
|
// ---------------------------------------------------------------------------
|
568
642
|
// Swiper initializer
|
@@ -573,7 +647,7 @@ $(function() {
|
|
573
647
|
if (atticFinished) {
|
574
648
|
const sliderEl = document.querySelector('#stacked_slider');
|
575
649
|
|
576
|
-
|
650
|
+
LayoutStacked(sliderEl);
|
577
651
|
|
578
652
|
clearInterval(dependencies_met_page_ready);
|
579
653
|
} // END pageVisible
|
@@ -583,7 +657,7 @@ $(function() {
|
|
583
657
|
}); // END Document READY
|
584
658
|
</script>
|
585
659
|
++++
|
586
|
-
|
660
|
+
////
|
587
661
|
|
588
662
|
[role="mt-5"]
|
589
663
|
==== Layout Expanding
|
@@ -595,7 +669,7 @@ lorem:sentences[3]
|
|
595
669
|
<div id="app" class="extended-app">
|
596
670
|
<!-- Style expanding-slide should wrap the swiper for Effect: Expanding -->
|
597
671
|
<div id="expanding_slides" class="expanding-slide mt-4">
|
598
|
-
<div class="swiper swiper-container">
|
672
|
+
<div id="expanding_slides_swiper_container" class="swiper swiper-container">
|
599
673
|
|
600
674
|
<ul class="swiper-wrapper">
|
601
675
|
<!-- First slide -->
|
@@ -702,6 +776,12 @@ lorem:sentences[3]
|
|
702
776
|
</li>
|
703
777
|
</ul> <!-- END Swiper wrapper -->
|
704
778
|
|
779
|
+
<!-- Inner Pagination -->
|
780
|
+
<!-- div class="swiper-pagination-inner"></div -->
|
781
|
+
|
782
|
+
<!-- Outer pagination, NOT moved by SwiperJS Adapter (workaround) -->
|
783
|
+
<div class="swiper-pagination-outer"></div>
|
784
|
+
|
705
785
|
</div> <!-- END Swiper container -->
|
706
786
|
</div> <!-- END expanding_slides -->
|
707
787
|
</div> <!-- END app -->
|
@@ -771,7 +851,12 @@ $(function() {
|
|
771
851
|
|
772
852
|
const swiper = new Swiper(swiperEl, {
|
773
853
|
speed: 600,
|
774
|
-
|
854
|
+
pagination: {
|
855
|
+
el: '.swiper-pagination-outer',
|
856
|
+
type: 'bullets',
|
857
|
+
clickable: true
|
858
|
+
},
|
859
|
+
resistanceRatio: 0,
|
775
860
|
// slidesPerView: 'auto',
|
776
861
|
// centeredSlides: true,
|
777
862
|
on: {
|