post header bg scroll if safari
This commit is contained in:
parent
90eb10ea7a
commit
25a2c2dfa2
|
@ -13,7 +13,7 @@
|
||||||
"@babel/preset-env": "^7.9.6"
|
"@babel/preset-env": "^7.9.6"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"build": "/usr/local/bin/hugo"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|
|
@ -1,122 +1,136 @@
|
||||||
(function() {
|
(function() {
|
||||||
|
|
||||||
function modifyClass(el, targetClass) {
|
|
||||||
if (isObj(el) && targetClass) {
|
|
||||||
const elClass = el.classList;
|
|
||||||
elClass.contains(targetClass) ? elClass.remove(targetClass) : elClass.add(targetClass);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function containsClass(el, targetClass) {
|
|
||||||
if (isObj(el) && targetClass && el !== document ) {
|
|
||||||
return el.classList.contains(targetClass) ? true : false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function isObj(obj) {
|
|
||||||
return (obj && typeof obj === 'object' && obj !== null) ? true : false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function elem(selector, parent = document){
|
|
||||||
let elem = parent.querySelector(selector);
|
|
||||||
return elem != false ? elem : false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function elems(selector, parent = document) {
|
|
||||||
let elems = parent.querySelectorAll(selector);
|
|
||||||
return elems.length ? elems : false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function pushClass(el, targetClass) {
|
|
||||||
if (isObj(el) && targetClass) {
|
|
||||||
const elClass = el.classList;
|
|
||||||
elClass.contains(targetClass) ? false : elClass.add(targetClass);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// from swift theme: sandwich
|
// from swift theme: sandwich
|
||||||
// ******
|
// ******
|
||||||
(function() {
|
function modifyClass(el, targetClass) {
|
||||||
let bar = 'nav_bar-wrap';
|
if (isObj(el) && targetClass) {
|
||||||
let navBar = elem(`.${bar}`);
|
const elClass = el.classList;
|
||||||
let nav = elem('.nav-body');
|
elClass.contains(targetClass) ? elClass.remove(targetClass) : elClass.add(targetClass);
|
||||||
let open = 'nav-open';
|
|
||||||
let exit = 'nav-exit';
|
|
||||||
let drop = 'nav-drop';
|
|
||||||
let pop = 'nav-pop';
|
|
||||||
let navDrop = elem(`.${drop}`);
|
|
||||||
|
|
||||||
function toggleMenu(){
|
|
||||||
let menuOpen, menuPulled, status;
|
|
||||||
modifyClass(navDrop, pop);
|
|
||||||
modifyClass(navBar, 'hidden');
|
|
||||||
menuOpen = containsClass(nav, open);
|
|
||||||
menuPulled = containsClass(nav, exit);
|
|
||||||
|
|
||||||
status = menuOpen || menuPulled ? true : false;
|
|
||||||
|
|
||||||
status ? modifyClass(nav, exit) : modifyClass(nav, open);
|
|
||||||
status ? modifyClass(nav, open) : modifyClass(nav, exit);
|
|
||||||
}
|
|
||||||
|
|
||||||
navBar.addEventListener('click', function() {
|
|
||||||
toggleMenu();
|
|
||||||
});
|
|
||||||
elem('.nav-close').addEventListener('click', function() {
|
|
||||||
toggleMenu();
|
|
||||||
});
|
|
||||||
|
|
||||||
elem('.nav-drop').addEventListener('click', function(e) {
|
|
||||||
e.target === this ? toggleMenu() : false;
|
|
||||||
});
|
|
||||||
|
|
||||||
})();
|
|
||||||
|
|
||||||
|
|
||||||
(function postsPager(){
|
|
||||||
const pager = elem('.pagination');
|
|
||||||
if (pager) {
|
|
||||||
pushClass(pager, 'pager');
|
|
||||||
const pagerItems = elems('li', pager);
|
|
||||||
const pagerLinks = Array.from(pagerItems).map(function(item){
|
|
||||||
return item.firstElementChild;
|
|
||||||
});
|
|
||||||
|
|
||||||
pagerLinks.forEach(function(link){
|
|
||||||
pushClass(link, 'pager_link')
|
|
||||||
});
|
|
||||||
|
|
||||||
pagerItems.forEach(function(item){
|
|
||||||
pushClass(item, 'pager_item')
|
|
||||||
});
|
|
||||||
}
|
|
||||||
})();
|
|
||||||
|
|
||||||
var fbposts = document.querySelector('#fbposts');
|
|
||||||
function whoops(error) {
|
|
||||||
console.log(error);
|
|
||||||
fbposts.innerHTML = "<li>Er is iets misgelopen bij het ophalen van Facebook posts.</li>";
|
|
||||||
}
|
|
||||||
function parseFeed(response) {
|
|
||||||
if(response && !response.error) {
|
|
||||||
var html = "";
|
|
||||||
|
|
||||||
response.data.forEach(function(elem) {
|
|
||||||
var id = elem.id.substring(elem.id.indexOf('_') + 1, elem.id.length);
|
|
||||||
html += "<li class = 'post_item'><div class='fb-post' data-href='https://www.facebook.com/redzuurdesem/posts/" + id + "'></div></li>";
|
|
||||||
});
|
|
||||||
|
|
||||||
fbposts.innerHTML = html;
|
|
||||||
FB.XFBML.parse(fbposts);
|
|
||||||
} else {
|
|
||||||
whoops(response.error);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getRedZuurdesemFacebookFeed() {
|
function containsClass(el, targetClass) {
|
||||||
try {
|
if (isObj(el) && targetClass && el !== document ) {
|
||||||
FB.api("/redzuurdesem/feed?limit=4&access_token=" + window.fbtoken, parseFeed);
|
return el.classList.contains(targetClass) ? true : false;
|
||||||
} catch(e) {
|
}
|
||||||
whoops(e);
|
}
|
||||||
|
|
||||||
|
function isObj(obj) {
|
||||||
|
return (obj && typeof obj === 'object' && obj !== null) ? true : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function elem(selector, parent = document){
|
||||||
|
let elem = parent.querySelector(selector);
|
||||||
|
return elem != false ? elem : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function elems(selector, parent = document) {
|
||||||
|
let elems = parent.querySelectorAll(selector);
|
||||||
|
return elems.length ? elems : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function pushClass(el, targetClass) {
|
||||||
|
if (isObj(el) && targetClass) {
|
||||||
|
const elClass = el.classList;
|
||||||
|
elClass.contains(targetClass) ? false : elClass.add(targetClass);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
let bar = 'nav_bar-wrap';
|
||||||
|
let navBar = elem(`.${bar}`);
|
||||||
|
let nav = elem('.nav-body');
|
||||||
|
let open = 'nav-open';
|
||||||
|
let exit = 'nav-exit';
|
||||||
|
let drop = 'nav-drop';
|
||||||
|
let pop = 'nav-pop';
|
||||||
|
let navDrop = elem(`.${drop}`);
|
||||||
|
|
||||||
|
function toggleMenu(){
|
||||||
|
let menuOpen, menuPulled, status;
|
||||||
|
modifyClass(navDrop, pop);
|
||||||
|
modifyClass(navBar, 'hidden');
|
||||||
|
menuOpen = containsClass(nav, open);
|
||||||
|
menuPulled = containsClass(nav, exit);
|
||||||
|
|
||||||
|
status = menuOpen || menuPulled ? true : false;
|
||||||
|
|
||||||
|
status ? modifyClass(nav, exit) : modifyClass(nav, open);
|
||||||
|
status ? modifyClass(nav, open) : modifyClass(nav, exit);
|
||||||
|
}
|
||||||
|
|
||||||
|
navBar.addEventListener('click', function() {
|
||||||
|
toggleMenu();
|
||||||
|
});
|
||||||
|
elem('.nav-close').addEventListener('click', function() {
|
||||||
|
toggleMenu();
|
||||||
|
});
|
||||||
|
|
||||||
|
elem('.nav-drop').addEventListener('click', function(e) {
|
||||||
|
e.target === this ? toggleMenu() : false;
|
||||||
|
});
|
||||||
|
|
||||||
|
})();
|
||||||
|
|
||||||
|
(function postsPager(){
|
||||||
|
const pager = elem('.pagination');
|
||||||
|
if (pager) {
|
||||||
|
pushClass(pager, 'pager');
|
||||||
|
const pagerItems = elems('li', pager);
|
||||||
|
const pagerLinks = Array.from(pagerItems).map(function(item){
|
||||||
|
return item.firstElementChild;
|
||||||
|
});
|
||||||
|
|
||||||
|
pagerLinks.forEach(function(link){
|
||||||
|
pushClass(link, 'pager_link')
|
||||||
|
});
|
||||||
|
|
||||||
|
pagerItems.forEach(function(item){
|
||||||
|
pushClass(item, 'pager_item')
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
// ******
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var fbposts = document.querySelector('#fbposts');
|
||||||
|
function whoops(error) {
|
||||||
|
console.log(error);
|
||||||
|
fbposts.innerHTML = "<li>Er is iets misgelopen bij het ophalen van Facebook posts.</li>";
|
||||||
|
}
|
||||||
|
function parseFeed(response) {
|
||||||
|
if(response && !response.error) {
|
||||||
|
var html = "";
|
||||||
|
|
||||||
|
response.data.forEach(function(elem) {
|
||||||
|
var id = elem.id.substring(elem.id.indexOf('_') + 1, elem.id.length);
|
||||||
|
html += "<li class = 'post_item'><div class='fb-post' data-href='https://www.facebook.com/redzuurdesem/posts/" + id + "'></div></li>";
|
||||||
|
});
|
||||||
|
|
||||||
|
fbposts.innerHTML = html;
|
||||||
|
FB.XFBML.parse(fbposts);
|
||||||
|
} else {
|
||||||
|
whoops(response.error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getRedZuurdesemFacebookFeed() {
|
||||||
|
try {
|
||||||
|
FB.api("/redzuurdesem/feed?limit=4&access_token=" + window.fbtoken, parseFeed);
|
||||||
|
} catch(e) {
|
||||||
|
whoops(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(fbposts && window.fbtoken) {
|
||||||
|
window.fbAsyncInit = getRedZuurdesemFacebookFeed;
|
||||||
|
}
|
||||||
|
})()
|
||||||
|
|
||||||
|
function fromFixedToScrollForSafari() {
|
||||||
|
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
||||||
|
const header = document.querySelector('.post_header');
|
||||||
|
if(isSafari) {
|
||||||
|
header.style.backgroundAttachment = 'scroll';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,9 +169,7 @@
|
||||||
elem.innerHTML = '<div class="fb-page" data-width="' + vw + '" data-href="https://www.facebook.com/redzuurdesem" data-hide-cover="false" data-tabs="timeline,messages" data-show-facepile="false"></div>';
|
elem.innerHTML = '<div class="fb-page" data-width="' + vw + '" data-href="https://www.facebook.com/redzuurdesem" data-hide-cover="false" data-tabs="timeline,messages" data-show-facepile="false"></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if(fbposts && window.fbtoken) {
|
|
||||||
window.fbAsyncInit = getRedZuurdesemFacebookFeed;
|
|
||||||
}
|
|
||||||
fbCommunityHeaderify();
|
fbCommunityHeaderify();
|
||||||
fbCommunityContainer();
|
fbCommunityContainer();
|
||||||
|
fromFixedToScrollForSafari();
|
||||||
})()
|
})()
|
||||||
|
|
|
@ -64,9 +64,8 @@
|
||||||
&_header
|
&_header
|
||||||
background-size: cover
|
background-size: cover
|
||||||
background-repeat: no-repeat
|
background-repeat: no-repeat
|
||||||
background-position: center
|
background-position: center
|
||||||
|
background-attachment: fixed
|
||||||
background-attachment: fixed;
|
|
||||||
|
|
||||||
position: relative
|
position: relative
|
||||||
height: 48vh
|
height: 48vh
|
||||||
|
|
Loading…
Reference in New Issue