An experiment with parallax scrolling in Jekyll posts
A brief experiment with how to add a simple view within a scrolling Jekyll collection post onto a fixed image ‘behind’ it. NB, nothing particular to do with collections, will work in a standard post.
The key phrases are:
- CSS background-attachment
- which won’t work on mobile browsers
- parallax scrolling
- hard to include markdown code rendered within markdown without creating a plugin/gem to do it (ugh)
- Attribute List Definitions
- or, modifying the css properties of an html element within markdown (in this case, a <p> tag)
Create a file, _includes/porthole.html
<style>
.porthole {
width: 100%;
height: 100px;
background-attachment: fixed;
background-repeat: no-repeat;
position: relative;
background-size: cover;
background-image: url({{ site.default_background_image_url }});
{% assign background_image_url = site.default_background_image_url %}
{% if page.collection %}
{% assign collection = site.collections | where:"label", page.collection | first %}
{% if collection.background_image_url %}
{% assign background_image_url = collection.background_image_url %}
{% endif %}
{% endif %}
{% if page.background_image_url %}
{% assign background_image_url = page.background_image_url %}
{% endif %}
{% if background_image_url %}
background-image: url({{ background_image_url }});
{% endif %}
}
</style>
and include it in _includes/default.html
<!DOCTYPE html>
<html lang="{{ page.lang | default: site.lang | default: "en" }}">
{% include head.html %}
{% include porthole.html %}
<body>
...
add a background_image_url
to your collection spec in _config.yml
referencing an image in your /assets
folder, e.g.
jekyll_notes:
output: true
title: Jekyll Notes
title_singular: A Jekyll Note
description: a collection of notes and observations from and aide-memoires for using Jekyll for the first time.
sequence: 100
background_image_url: /assets/img/jekyll-notes/JekyllAndHydeWikipedia.jpg
or specify something like site.default_background_image_url
or even site.flumpf
in _config.yml
, or include background_image_url: /assets/....jpg
in the front matter of an individual post, as long as you refer to it correctly in the porthole.html file.
Then, include the porthole as <p/>{: .porthole}
in any posts (markdown or html) as often as you like, e.g.
The key phrases are:
* CSS background-attachment
* which won't work on mobile browsers
* parallax scrolling
* hard to include markdown code rendered within markdown without creating a plugin/gem (ugh)
* [Attribute List Definitions](https://kramdown.gettalong.org/syntax.html#attribute-list-definitions)
* or, modifying the css properties of an html element within markdown (in this case, a <p> tag)
<p/>{: .porthole}
Create a file, `_includes/porthole.html`
You can adjust the size of the porthole by changing the default css width and height in _includes/porthole.html
, or on a case by case basis by overriding the css style,
e.g. <p/>{:.porthole style="width:50%;height:200px;"}
With thanks to Wikipedia for the demo image.
...
<<PREV NEXT>>
...
An experiment with parallax scrolling in Jekyll posts
(from Jekyll Notes)
by Chris Gathercole
http://stories.upthebuzzard.com, RSS
published: 19 February 2017
...
This work is licensed under a
Creative Commons, ATTRIBUTION-NONCOMMERCIAL-SHAREALIKE 4.0 INTERNATIONAL License (CC BY-NC-SA 4.0).
...
mashup (... er, what?)
...
Credits
Background image from Wikipedia