Skip to content

Commit

Permalink
Merge branch 'dev-v2024' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
quentinperou authored Feb 11, 2024
2 parents ba5a33d + 756bd7a commit fcc50b1
Show file tree
Hide file tree
Showing 6 changed files with 312 additions and 9 deletions.
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,27 @@ Version : Février 2024
</div>
<div>
<h3>Mon projet</h3>
<span class="projetAnnee">2024</span>
<p>La desciption</p>
<a href="#" class="bouton" target="_blank">Voir le projet</a>
</div>
</div>
```

### **Structure html des projets vidéo verticaux**

```html
<div class="projetVertical">
<img src="./images/" alt="" />
<div>
<h3>XXXXXXXX</h3>
<p>XXXXXXXXXXX</p>
<a href="XXXXXXXXXXX" class="bouton btInvert" target="_blank">Voir la vidéo</a>
</div>
</div>
```


### **Structure html des photos**

```html
Expand All @@ -41,6 +56,7 @@ Version : Février 2024
```

### **A ajouter dans les iframe Youtube**

```
?showinfo=0&color=white&rel=0
```
116 changes: 112 additions & 4 deletions style.css
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ html {

:root {
--largeur_page: 70vw;
--hauteur_header: 80px;
--color-gray-1: #252627;
--color-gray-1-hover: #3b3b3b;
}
Expand Down Expand Up @@ -117,10 +118,10 @@ header {
display: flex;
align-items: center;
justify-content: center;
height: 80px;
height: var(--hauteur_header);
width: 100%;
background-color: white;
padding: 20px 0;
/* padding: 20px 0; */
z-index: 5;
box-shadow: 0px 5px 10px 0px rgba(64, 64, 64, 0.51);
}
Expand Down Expand Up @@ -294,7 +295,7 @@ main section {
}

main section:first-child {
padding-top: 95px;
padding-top: calc(var(--hauteur_header) + 15px);
}

/*********************************************************/
Expand Down Expand Up @@ -382,6 +383,98 @@ video:fullscreen {
width: 30%;
}

/********************** VIDEO **********************/
.contenuSectionProjetsVertical {
width: 100%;
position: relative;
}

.gallerieVertical-container {
overflow: hidden;
position: relative;
}

.gallerieVertical-item {
/* display: inline-block; */
white-space: nowrap;
transition: transform 200ms ease-in-out;
font-size: 0;
}

.projetVertical {
display: inline-block;
position: relative;
/* height: 100%; */
/* max-width: 300px; */
/* width: calc(100% / 4 - 5px); */
width: calc((100% - 5px * 3) / 4);
aspect-ratio: 9/16;
/* font-size: 1rem; */
}

.projetVertical:not(:last-child) {
margin-right: 5px;
}

.projetVertical img {
height: 100%;
width: 100%;
object-fit: cover;
}

.projetVertical div {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
/* background-color: rgba(0, 0, 0, 0.8); */
background: linear-gradient(to bottom, rgba(0, 0, 0, 0.1), rgb(0, 0, 0));
opacity: 0;
transition: opacity 150ms ease-in-out;
color: white;
display: flex;
flex-direction: column;
justify-content: flex-end;
/* align-items: center; */
/* text-align: center; */
white-space: normal;
overflow: hidden;
/* white-space: nowrap; */
text-overflow: ellipsis;
/* text-transform: capitalize; */
padding: 15px;
font-size: 1rem;
}

.projetVertical div:hover {
opacity: 1;
}

.contenuSectionProjetsVertical .gallerie_nav {
--taille-Bouton: 50px;
width: var(--taille-Bouton);
position: absolute;
top: 50%;
transform: translateY(-50%);
cursor: pointer;
user-select: none;
background-color: var(--color-gray-1);
border-radius: 100px;
}
.contenuSectionProjetsVertical .gallerie_nav:hover {
background-color: var(--color-gray-1-hover);
}
.contenuSectionProjetsVertical .nav_back {
/* left: -25px; */
left: calc(var(--taille-Bouton) / 2 * -1);
transform: rotate(-90deg) translateX(+50%);
}
.contenuSectionProjetsVertical .nav_next {
/* right: -25px; */
right: calc(var(--taille-Bouton) / 2 * -1);
transform: rotate(90deg) translateX(-50%);
}

/*********************************************************/
/* GALLERIE */
Expand Down Expand Up @@ -624,7 +717,7 @@ footer p {

@media screen and (max-width: 1250px) {
:root {
--largeur_page: 95vw;
--largeur_page: calc(95vw - 30px);
}
}

Expand Down Expand Up @@ -724,6 +817,10 @@ footer p {
.projet3d .gallerie video {
width: 100%;
}

.projetVertical {
width: calc((100% - 5px * 2) / 3);
}
}

@media screen and (max-width: 500px) {
Expand All @@ -738,6 +835,7 @@ footer p {
@media screen and (max-width: 430px) {
:root {
--largeur_page: 90vw;
--hauteur_header: 60px;
}
#a-propos {
width: 100%;
Expand All @@ -749,6 +847,16 @@ footer p {
h3 {
font-size: 1.3rem;
}

.projetVertical {
width: 85%;
}
.contenuSectionProjetsVertical .gallerie_nav {
display: none !important;
}
.projetVertical div {
opacity: 1;
}
}
@media screen and (max-width: 350px) {
.contenuSectionApropos div:first-child {
Expand Down
122 changes: 122 additions & 0 deletions video/gallerieVertical.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
const gallerieVertical = document.querySelector('.gallerieVertical-item');
const gallerieVerticalContainer = document.querySelector('.gallerieVertical-container');
const gallerieVerticalItems = document.querySelectorAll('.gallerieVertical-item .projetVertical');
const gallerieVerticalNavBack = document.querySelector('.gallerie_nav.nav_back');
const gallerieVerticalNavNext = document.querySelector('.gallerie_nav.nav_next');
var gallerieVerticalIndex = 0;
var gallerieVerticalItemWidth;
var gallerieVerticalContainerWidth;
var gallerieVerticalItemsLength;
var gallerieVerticalItemsWidth;
var gallerieVerticalItemsWidthMax;

function initVertical() {
gallerieVerticalItemWidth = gallerieVerticalItems[0].getBoundingClientRect().width + 5; //largeur d'un item meusurée + marge
console.log("gallerieVerticalItemWidth", gallerieVerticalItemWidth);
gallerieVerticalContainerWidth = gallerieVerticalContainer.getBoundingClientRect().width; //largeur du container meusurée
console.log("gallerieVerticalContainerWidth", gallerieVerticalContainerWidth);
gallerieVerticalItemsLength = gallerieVerticalItems.length - 1; //nombre d'items
console.log("gallerieVerticalItemsLength", gallerieVerticalItemsLength);
gallerieVerticalItemsWidth = gallerieVerticalItemWidth * gallerieVerticalItemsLength; //largeur totale des items calculée
console.log("gallerieVerticalItemsWidth", gallerieVerticalItemsWidth);
gallerieVerticalItemsWidthMax = gallerieVerticalItemsWidth - gallerieVerticalContainerWidth; // largeur max pour le défilement
console.log("gallerieVerticalItemsWidthMax", gallerieVerticalItemsWidthMax);

gallerieVertical.style.transform = 'translateX(' + (-gallerieVerticalItemWidth * gallerieVerticalIndex) + 'px)';
}
initVertical();

window.addEventListener("resize", initVertical);

gallerieVerticalNavBack.style.display = 'none';
if (gallerieVerticalItemsWidth <= gallerieVerticalContainerWidth) {
gallerieVerticalNavNext.style.display = 'none';
}

gallerieVerticalNavBack.addEventListener('click', gallerieVerticalBack);
gallerieVerticalNavNext.addEventListener('click', gallerieVerticalNext);

function gallerieVerticalBack() {
if (gallerieVerticalIndex > 0) {
gallerieVerticalIndex--;
console.log("gallerieVerticalIndex", gallerieVerticalIndex);
gallerieVertical.style.transform = 'translateX(' + (-gallerieVerticalItemWidth * gallerieVerticalIndex) + 'px)';
if (gallerieVerticalIndex == 0) {
gallerieVerticalNavBack.style.display = 'none';
}
if (gallerieVerticalIndex < gallerieVerticalItemsLength - 1) {
gallerieVerticalNavNext.style.display = 'block';
}
}
}

function gallerieVerticalNext() {
if (gallerieVerticalIndex < gallerieVerticalItemsLength - 1 && gallerieVerticalItemWidth * gallerieVerticalIndex < gallerieVerticalItemsWidthMax) {
gallerieVerticalIndex++;
console.log("gallerieVerticalIndex", gallerieVerticalIndex);
gallerieVertical.style.transform = 'translateX(' + (-gallerieVerticalItemWidth * gallerieVerticalIndex) + 'px)';
// console.log("gallerieVertical.style.transform", gallerieVertical.style.transform);
if (gallerieVerticalIndex > 0) {
gallerieVerticalNavBack.style.display = 'block';
}
if (gallerieVerticalIndex == gallerieVerticalItemsLength - 1 || gallerieVerticalItemWidth * gallerieVerticalIndex > gallerieVerticalItemsWidthMax) {
gallerieVerticalNavNext.style.display = 'none';
}
}
}



/******** GESTION DU SWIPE ********/

let touchstartX = 0
let touchendX = 0
var valeurTranslateX = 0;
let valeurDiffProjetContainer = (gallerieVerticalContainerWidth - gallerieVerticalItemWidth);
console.log("valeurDiffProjetContainer", valeurDiffProjetContainer);
function checkDirection() {
if (Math.abs(touchstartX - touchendX) > 50) {
if (touchendX < touchstartX) {
// console.log('swiped left!');
if (gallerieVerticalIndex < gallerieVerticalItemsLength ) {
gallerieVerticalIndex++;
console.log("gallerieVerticalIndex", gallerieVerticalIndex);
if (gallerieVerticalIndex == 1)
valeurTranslateX = valeurTranslateX - (gallerieVerticalItemWidth - valeurDiffProjetContainer / 2 - 2.5);
else if (gallerieVerticalIndex == gallerieVerticalItemsLength)
valeurTranslateX = valeurTranslateX - gallerieVerticalItemWidth + valeurDiffProjetContainer/2 + 2.5;
else
valeurTranslateX = valeurTranslateX - gallerieVerticalContainerWidth + valeurDiffProjetContainer;

console.log("valeurTranslateX", valeurTranslateX);
gallerieVertical.style.transform = 'translateX(' + valeurTranslateX + 'px)';
}
}
if (touchendX > touchstartX) {
// console.log('swiped right!');
if (gallerieVerticalIndex > 0) {
gallerieVerticalIndex--;
console.log("gallerieVerticalIndex", gallerieVerticalIndex);
if (gallerieVerticalIndex == 0)
valeurTranslateX = valeurTranslateX + (gallerieVerticalItemWidth - valeurDiffProjetContainer / 2 - 2.5);
else if (gallerieVerticalIndex == gallerieVerticalItemsLength - 1)
valeurTranslateX = valeurTranslateX + gallerieVerticalItemWidth - valeurDiffProjetContainer/2 - 2.5;
else
valeurTranslateX = valeurTranslateX + gallerieVerticalContainerWidth - valeurDiffProjetContainer;


console.log("valeurTranslateX", valeurTranslateX);
gallerieVertical.style.transform = 'translateX(' + valeurTranslateX + 'px)';
}
}
}
}

document.querySelector('.gallerieVertical-container').addEventListener('touchstart', e => {
touchstartX = e.changedTouches[0].screenX
});

document.querySelector('.gallerieVertical-container').addEventListener('touchend', e => {
touchendX = e.changedTouches[0].screenX
checkDirection();
});
Binary file added video/images/video canon r7.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added video/images/video sony a6700.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit fcc50b1

Please sign in to comment.