project page title scale down on scroll
This commit is contained in:
+6
-6
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
@@ -41,13 +41,17 @@ gsap.registerPlugin(ScrollTrigger);
|
|||||||
const _is_front = drupalSettings.path.isFront
|
const _is_front = drupalSettings.path.isFront
|
||||||
console.log('drupalSettings', drupalSettings)
|
console.log('drupalSettings', drupalSettings)
|
||||||
|
|
||||||
|
const scroller = document.querySelector('main[role="main"]');
|
||||||
|
const gsap_mm = gsap.matchMedia();
|
||||||
|
console.log('gsap_mm', gsap_mm);
|
||||||
|
|
||||||
// ___ _ _
|
// ___ _ _
|
||||||
// |_ _|_ _ (_) |_
|
// |_ _|_ _ (_) |_
|
||||||
// | || ' \| | _|
|
// | || ' \| | _|
|
||||||
// |___|_||_|_|\__|
|
// |___|_||_|_|\__|
|
||||||
function init () {
|
function init () {
|
||||||
console.log('LeShedTheme init()')
|
console.log('LeShedTheme init()');
|
||||||
|
|
||||||
initTitles();
|
initTitles();
|
||||||
initBurgerMenu();
|
initBurgerMenu();
|
||||||
initSmoothScroll();
|
initSmoothScroll();
|
||||||
@@ -95,6 +99,44 @@ gsap.registerPlugin(ScrollTrigger);
|
|||||||
hyphenateWord(chars);
|
hyphenateWord(chars);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const pageTitle = document.querySelector('article.node-type-projet.view-mode-full h2.node-title');
|
||||||
|
console.log('pageTitle', pageTitle);
|
||||||
|
|
||||||
|
|
||||||
|
if (pageTitle) {
|
||||||
|
// needs requestAnimationFrame to get the real titleHeight after splitting
|
||||||
|
requestAnimationFrame(() => {
|
||||||
|
requestAnimationFrame(() => {
|
||||||
|
|
||||||
|
const initTitleH = pageTitle.offsetHeight;
|
||||||
|
// console.log(`initTitleH: ${initTitleH}`);
|
||||||
|
const titleScaleTarget = 0.4;
|
||||||
|
const end = initTitleH - initTitleH * titleScaleTarget;
|
||||||
|
// console.log(`end: ${end}`);
|
||||||
|
|
||||||
|
gsap_mm.add('(min-width: 768px)', () => {
|
||||||
|
gsap.to(pageTitle, {
|
||||||
|
scale: titleScaleTarget,
|
||||||
|
y: end,
|
||||||
|
ease: 'none',
|
||||||
|
scrollTrigger: {
|
||||||
|
scroller: scroller,
|
||||||
|
start: 0,
|
||||||
|
end: end, // scroll maximum du conteneur (robuste au resize)
|
||||||
|
scrub: true,
|
||||||
|
invalidateOnRefresh: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
})
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -262,18 +304,14 @@ gsap.registerPlugin(ScrollTrigger);
|
|||||||
function initColumnScrollSync() {
|
function initColumnScrollSync() {
|
||||||
console.log('initColumnScrollSync');
|
console.log('initColumnScrollSync');
|
||||||
|
|
||||||
const scroller = document.querySelector('main[role="main"]');
|
|
||||||
const firstColumn = document.querySelector('.layout--twocol-section--50-50 .layout__region--first');
|
const firstColumn = document.querySelector('.layout--twocol-section--50-50 .layout__region--first');
|
||||||
const secondColumn = document.querySelector('.layout--twocol-section--50-50 .layout__region--second');
|
const secondColumn = document.querySelector('.layout--twocol-section--50-50 .layout__region--second');
|
||||||
console.log(scroller, firstColumn, secondColumn);
|
console.log(scroller, firstColumn, secondColumn);
|
||||||
|
|
||||||
if (!scroller || !firstColumn || !secondColumn) return;
|
if (!scroller || !firstColumn || !secondColumn) return;
|
||||||
|
|
||||||
const mm = gsap.matchMedia();
|
|
||||||
console.log(mm);
|
|
||||||
|
|
||||||
|
gsap_mm.add('(min-width: 768px)', () => {
|
||||||
mm.add('(min-width: 768px)', () => {
|
|
||||||
[firstColumn, secondColumn].forEach((column) => {
|
[firstColumn, secondColumn].forEach((column) => {
|
||||||
gsap.to(column, {
|
gsap.to(column, {
|
||||||
// Distance à parcourir pour que le bas de la colonne arrive en
|
// Distance à parcourir pour que le bas de la colonne arrive en
|
||||||
@@ -309,7 +347,7 @@ gsap.registerPlugin(ScrollTrigger);
|
|||||||
function initFsLightbox(){
|
function initFsLightbox(){
|
||||||
console.log('initFsLightbox');
|
console.log('initFsLightbox');
|
||||||
// console.log(window.FsLightbox);
|
// console.log(window.FsLightbox);
|
||||||
let imgs_links = document.querySelectorAll('.field_images.multiple .field-item a');
|
let imgs_links = document.querySelectorAll('article.node-type-projet.view-mode-full .field_images.multiple .field-item a');
|
||||||
for (const link of imgs_links) {
|
for (const link of imgs_links) {
|
||||||
link.setAttribute("data-fslightbox", "gallery")
|
link.setAttribute("data-fslightbox", "gallery")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,13 +46,16 @@ div.layout-container{
|
|||||||
max-width:1080px;
|
max-width:1080px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
header[role="banner"]{
|
header[role="banner"]{
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
padding: 0.5em 0;
|
padding: 0.5em 0;
|
||||||
flex: 0 1 content;
|
flex: 1 1 $header_height;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
// position: fixed;
|
// position: fixed;
|
||||||
// top:0;
|
// top:0;
|
||||||
// width: 100%;
|
// width: 100%;
|
||||||
height: $header_height;
|
height: $header_height;
|
||||||
|
min-height: $header_height;
|
||||||
}
|
}
|
||||||
main[role="main"]{
|
main[role="main"]{
|
||||||
flex: 1 1 auto;
|
flex: 1 1 auto;
|
||||||
@@ -95,7 +98,7 @@ header[role="banner"]{
|
|||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
font-size: 2em;
|
font-size: 2em;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
|
margin-right: 0.5em;
|
||||||
// &:hover{
|
// &:hover{
|
||||||
// color: $rose;
|
// color: $rose;
|
||||||
// }
|
// }
|
||||||
@@ -116,7 +119,7 @@ header[role="banner"]{
|
|||||||
&, &::before, &::after{
|
&, &::before, &::after{
|
||||||
// position: absolute;
|
// position: absolute;
|
||||||
width:20px; height:3px;
|
width:20px; height:3px;
|
||||||
background-color: red;
|
background-color: #000;
|
||||||
|
|
||||||
}
|
}
|
||||||
&:hover{
|
&:hover{
|
||||||
@@ -279,12 +282,17 @@ article.node-type-projet.view-mode-full{
|
|||||||
// column-gap: 2em;
|
// column-gap: 2em;
|
||||||
div.col{
|
div.col{
|
||||||
flex:0 0 calc(50% - $colsgap / 2);
|
flex:0 0 calc(50% - $colsgap / 2);
|
||||||
// max-width: 48%;
|
max-width: calc(50% - $colsgap / 2);
|
||||||
|
|
||||||
&.left{
|
&.left{
|
||||||
>h2{
|
>h2.node-title{
|
||||||
|
position: relative;
|
||||||
font-size: 12em;
|
font-size: 12em;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
z-index: 100;
|
||||||
|
width: 205%;//calc(50% - $colsgap / 2);
|
||||||
|
pointer-events: none;
|
||||||
|
transform-origin: 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.field_artiste_s_invite_s{
|
.field_artiste_s_invite_s{
|
||||||
@@ -366,6 +374,7 @@ article.node-type-projet.view-mode-full{
|
|||||||
transition: opacity 0.3s ease-in-out;
|
transition: opacity 0.3s ease-in-out;
|
||||||
}
|
}
|
||||||
&:hover{
|
&:hover{
|
||||||
|
z-index:200;
|
||||||
blockquote.image-field-caption{
|
blockquote.image-field-caption{
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
$default_fwght: 200;
|
$default_fwght: 200;
|
||||||
$header_height: 50px;
|
$header_height: 70px;
|
||||||
$colsgap: 2em;
|
$colsgap: 2em;
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
|
|
||||||
<div class="cols">
|
<div class="cols">
|
||||||
<div class="col left">
|
<div class="col left">
|
||||||
<h2{{ title_attributes }}>
|
<h2{{ title_attributes.addClass('node-title') }}>
|
||||||
{{ label }}
|
{{ label }}
|
||||||
</h2>
|
</h2>
|
||||||
{{ content|without('field_images') }}
|
{{ content|without('field_images') }}
|
||||||
|
|||||||
Reference in New Issue
Block a user