🔥 EコマースウェブサイトをHTML、CSSとJSだけで作る方法
38665 ワード
場合は、初心者やプロです.この記事は、彼/彼女のCSSアニメーションを優れたレベルにしたい人のためです.あなたのCSSスキルで人々を驚かせたいならば、あなたはこの記事を読まなければなりません.これでは、製品リストをナビゲートする滑らかなアニメーションを作成することを学びます.最初にFlex Boxを使用してデザインを作成し、別のクラスを使用して要素にアニメーションを追加します.また、これを作る際にJSを使用します.合計では、これは多くの楽しみを作成することでしょう.
それで、より多くの時間を浪費することなく、始めましょう.プロジェクトデモを参照するか、コードのより良い理解のために、以下のチュートリアルを見ることができます.
ビデオチュートリアル
Source Code
コード
ですから、起動する前に、フォルダの構造を知る必要があります.
Download Images ここから.
それで、大丈夫です.コーディングを始めましょう.
左側.
うーん!それで、我々は我々のヘッダーの左側で始まります.その最初のHTML HTMLテンプレートを作成するには、そのリンクと一緒にタイトルを与える
出力
うーん!それは素晴らしい探していません.私は本当にそれが大好き.OK、今すぐ右側に移動しましょう.
右側
ああ!それで、我々は右側を作らなければなりません.うーん!それを作る.このHTMLコード
出力
わかりました.それで、我々はスタイルでされます.そして、私たちは50 %以上が完了したと思います.だから、なぜ時間を無駄に、アニメーションを作成しましょう.
アニメーション
したがって、当社のサイトやセクションでは、我々は3アニメーションがあります. フェードアニメーション-負荷で再生. ブラックdivスライドアニメーション-再生時に再生する製品です. フェードアニメーション-製品を変更するときに再生します. わかりました.非常に上で.これを作成
最後の、フェード効果.再び、我々はこれを使います
アプリ.js
今までのすばらしい作品.さて、JSからすべてのクラスをトグルして、製品を変更しなければなりません.ので、起動する前に、私はあなたが
それでは、最初にJSのすべての要素を選択することから始めましょう.
では、Clickイベントを
それで、それです.偉大な労働者.ヘッダを使用します.
私は、あなたが各々とすべてを理解したことを望みます.あなたが疑いを持っているか、私が何かを逃したならば、私にコメントで知らせさせました.
あなたが役に立つかもしれない記事
あなたが私のYouTubeチャンネルを予約することができるならば、私は本当に感謝します.私は素晴らしいWebコンテンツを作成します.
ところで、2022年1月から、私はCSSフレックスボックス/グリッド/位置と他のすべての概念について教えます私のYouTubeチャンネルのCSSアドバンス話題シリーズを開始しています.私はどのように複雑なWebデザインの内訳を作成することをお教えします.各ビデオの最後に、私はあなた自身もコード1 - 2のWebデザインを与える.そして、あなたは私のInstagramであなたを作成することを提出することができます.私は、シリーズの後、あなたが私のようなどんなウェブ設計でもコード化することができると確信します.それで、あなたが興味があるならば😉
Source Code
読書ありがとう
それで、より多くの時間を浪費することなく、始めましょう.プロジェクトデモを参照するか、コードのより良い理解のために、以下のチュートリアルを見ることができます.
ビデオチュートリアル
I appreciate if you can support me by subscribing my youtube channel.
Source Code
コード
ですから、起動する前に、フォルダの構造を知る必要があります.
Download Images ここから.
それで、大丈夫です.コーディングを始めましょう.
左側.
うーん!それで、我々は我々のヘッダーの左側で始まります.その最初のHTML HTMLテンプレートを作成するには、そのリンクと一緒にタイトルを与える
style.css
and app.js
ファイルを指定します.一度あなたはそれのすべてで行われます.コード内部body
タグ.<div class="left-side">
<span class="logo">fashion</span>
<div class="sm-product">
<h1 class="product-index">01</h1>
<div class="sm-product-img-container">
<img src="img/img1.jpg" class="sm-product-img" alt="">
</div>
<p class="sm-product-des">Lorem ipsum dolor sit amet consectetur adipisicing elit. Aut mollitia adipisci aspernatur</p>
</div>
<div class="social-link">
<img src="img/facebook.png" class="social-link-img" alt="">
<img src="img/instagram.png" class="social-link-img" alt="">
</div>
</div>
さて、私たちはこの広告をゴードデザインのようにするためにいくつかのCSSを使用しなければなりません.だから、スタイルをしましょう.*{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'roboto', sans-serif;
}
body{
width: 100%;
height: 100vh;
position: relative;
display: flex;
}
.left-side{
width: 15vw;
height: 100%;
border-right: 1px solid rgba(0, 0, 0, 0.1);
position: relative;
display: flex;
align-items: center;
}
.logo{
text-transform: uppercase;
font-weight: 700;
font-size: 2vw;
position: absolute;
top: 4vw;
left: -1.5vw;
transform: rotate(-90deg);
user-select: none;
}
.sm-product{
width: 100%;
height: auto;
}
.product-index{
font-size: 2vw;
text-align: center;
}
.sm-product-img-container{
position: relative;
margin: .5vw 0;
height: 15vw;
overflow: hidden;
}
.sm-product-img{
width: 100%;
height: 15vw;
object-fit: cover;
}
.sm-product-des{
text-align: right;
padding: 0 .5vw;
line-height: 1.5vw;
font-size: 1vw;
color: rgba(0, 0, 0, 0.5);
}
.social-link{
position: absolute;
bottom: 30px;
left: 50%;
transform: translateX(-50%);
}
.social-link-img{
width: 1.6vw;
height: 1.6vw;
margin: .5vw;
cursor: pointer;
}
出力
うーん!それは素晴らしい探していません.私は本当にそれが大好き.OK、今すぐ右側に移動しましょう.
右側
ああ!それで、我々は右側を作らなければなりません.うーん!それを作る.このHTMLコード
left-side
要素.より良い説明のためにビデオチュートリアルを見てください<div class="right-side">
<img src="img/img1.jpg" class="backdrop-img" alt="">
<div class="content">
<div class="product-detail">
<h1 class="product-name">yellow tracksuit</h1>
<p class="product-des">Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolore sunt assumenda doloribus, fugiat provident nemo.</p>
<a href="#" class="buy-btn">buy now</a>
<button class="nxt-btn"><img src="img/arrow.png" alt=""></button>
</div>
<div class="product-img-container">
<img src="img/img1.jpg" class="product-img" alt="">
</div>
</div>
</div>
もう一度スタイルを持っていますが、その前にRoboto
and Sirin Stencil
グーグルフォントhead
タグ.<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&family=Sirin+Stencil&display=swap" rel="stylesheet">
オーケー、我々はスタイルright-side
..right-side{
width: 85vw;
height: 100vh;
position: relative;
display: flex;
align-items: center;
justify-content: center;
}
.backdrop-img{
width: 25vw;
height: 100%;
position: absolute;
top: 0;
right: 0;
object-fit: cover;
filter: blur(.5vw);
user-select: none;
}
.content{
width: 80%;
display: flex;
align-items: center;
position: relative;
}
.product-detail{
width: 60%;
}
.product-name{
font-size: 8vw;
text-transform: capitalize;
font-family: 'Roboto', sans-serif;
font-family: 'Sirin Stencil', cursive;
font-weight: 300;
line-height: 9vw;
}
.product-des{
margin: 4vw 0;
width: 90%;
font-size: 1.2vw;
line-height: 2vw;
color: rgba(0, 0, 0, 0.5);
}
.buy-btn{
text-decoration: none;
color: #000;
text-transform: capitalize;
font-size: 1.2vw;
}
.nxt-btn{
border: none;
background: none;
display: flex;
margin-left: auto;
margin-top: -1.2vw;
margin-right: 1vw;
cursor: pointer;
justify-content: center;
user-select: none;
}
.nxt-btn img{
width: 60%;
}
.product-img-container{
width: 40%;
height: 40vw;
position: relative;
overflow: hidden;
}
.product-img{
width: 100%;
height: 100%;
object-fit: cover;
}
出力
わかりました.それで、我々はスタイルでされます.そして、私たちは50 %以上が完了したと思います.だから、なぜ時間を無駄に、アニメーションを作成しましょう.
アニメーション
したがって、当社のサイトやセクションでは、我々は3アニメーションがあります.
overlay
要素.<div class="overlay"></div>
このオーバーレイ要素は、「白い」背景を持つすべての要素の上にあります.そして、ゆっくりとロードにフェードアウト..overlay{
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: #fff;
opacity: 1;
z-index: 9;
animation: fade-out 2s forwards 1;
pointer-events: none;
}
@keyframes fade-out{
to{ opacity: 0 }
}
これがうまくいくことを願っています.FIRブラックdivスライドアニメーションslide
クラス.このクラスをjsからトグルします.だから、このクラスを使用して::before
要素..slide::before{
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: #000;
animation: slide-left 1s linear 1;
}
@keyframes slide-left{
to{ left: 100% }
}
それで、これはそのアニメーションを作ります、しかし、重要です、我々はこれらの2つの要素にこのスライド・クラスを加えなければならないだけです.<div class="sm-product-img-container slide">
///
<div class="product-img-container slide">
今すぐ手動で追加するだけでアニメーションをチェックすることができますslide
上記の要素へのクラス.しかし、チェックを行った後、slide
クラス.最後の、フェード効果.再び、我々はこれを使います
fade
クラスでこれをトグルします.fade{
pointer-events: none;
animation: fade 1s forwards 1;
}
@keyframes fade{
0%, 100% { opacity: 1 }
45%, 60% { opacity: 0 }
}
我々はアニメーションを少し休憩しているので、テキストを変更するいくつかの時間がかかりますし、変更プロセスを見たくない.アプリ.js
今までのすばらしい作品.さて、JSからすべてのクラスをトグルして、製品を変更しなければなりません.ので、起動する前に、私はあなたが
app.js
上記からdownload images
リンク.そのファイルではproductData
配列.この配列には、製品に関連するデータが含まれます.それでは、最初にJSのすべての要素を選択することから始めましょう.
const nxtBtn = document.querySelector('.nxt-btn');
let smImgContainer = document.querySelector('.sm-product-img-container');
let smImg = document.querySelector('.sm-product-img');
let productIndex = document.querySelector('.product-index');
let smProductDes = document.querySelector('.sm-product-des');
let productImgContainer = document.querySelector('.product-img-container');
let productImg = document.querySelector('.product-img');
let backdropImg = document.querySelector('.backdrop-img');
let productDetail = document.querySelector('.product-detail');
let productName = document.querySelector('.product-name');
let productDes = document.querySelector('.product-des');
let currentProduct = 0;
Thats多くの要素.じゃない.currentProduct
変数を使用すると、それらをナビゲートしながら、現在の製品を追跡します.では、Clickイベントを
nxtBtn
nxtBtn.addEventListener('click', () => {
if(currentProduct >= productData.length - 1){
currentProduct = 0;
} else{
currentProduct++;
}
productIndex.innerHTML = productData[currentProduct].index;
smProductDes.innerHTML = productData[currentProduct].des.slice(0, 80);
smImgContainer.classList.add('slide');
productImgContainer.classList.add('slide');
backdropImg.classList.add('fade');
productDetail.classList.add('fade');
setTimeout(() => { // in the mid of animation, changing the contents
productName.innerHTML = productData[currentProduct].name;
productDes.innerHTML = productData[currentProduct].des;
smImg.src = productImg.src = backdropImg.src = `img/${productData[currentProduct].image}`;
}, 500);
setTimeout(() => { // removing all animation classes
smImgContainer.classList.remove('slide');
productImgContainer.classList.remove('slide');
backdropImg.classList.remove('fade');
productDetail.classList.remove('fade');
}, 1000);
})
上記のコードは非常に簡単ですif/else
コンディションチェックcurrentProduct
値を変更する.その後、要素のinnerhtmlを設定し、アニメーションクラスを追加します.使用によってsetTimeout
後は内容を変える500ms
アニメーションクラスの削除1000ms
.それで、それです.偉大な労働者.ヘッダを使用します.
私は、あなたが各々とすべてを理解したことを望みます.あなたが疑いを持っているか、私が何かを逃したならば、私にコメントで知らせさせました.
あなたが役に立つかもしれない記事
ところで、2022年1月から、私はCSSフレックスボックス/グリッド/位置と他のすべての概念について教えます私のYouTubeチャンネルのCSSアドバンス話題シリーズを開始しています.私はどのように複雑なWebデザインの内訳を作成することをお教えします.各ビデオの最後に、私はあなた自身もコード1 - 2のWebデザインを与える.そして、あなたは私のInstagramであなたを作成することを提出することができます.私は、シリーズの後、あなたが私のようなどんなウェブ設計でもコード化することができると確信します.それで、あなたが興味があるならば😉
Source Code
読書ありがとう
Reference
この問題について(🔥 EコマースウェブサイトをHTML、CSSとJSだけで作る方法), 我々は、より多くの情報をここで見つけました https://dev.to/kunaal438/make-modern-e-commerce-header-with-html-css-js-only-1e73テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol