প্যারালাক্স স্ক্রলিং (Srallax Scrolling) ওয়েব ডিজাইনে গভীরতা এবং ইন্টারঅ্যাকটিভ অনুভূতি সৃষ্টি করতে ব্যবহৃত হয়। যদিও CSS এর মাধ্যমে সহজে প্যারালাক্স ইফেক্ট তৈরি করা যায়, তবে জাভাস্ক্রিপ্ট লাইব্রেরিগুলোর মাধ্যমে আরো উন্নত ও কাস্টমাইজেবল প্যারালাক্স স্ক্রলিং তৈরি করা সম্ভব। এখানে কিছু জনপ্রিয় JavaScript Libraries দেওয়া হলো, যা প্যারালাক্স স্ক্রলিংয়ের জন্য ব্যবহার করা যেতে পারে।
১. Rellax.js
Rellax.js একটি সহজ, ছোট এবং কার্যকরী JavaScript লাইব্রেরি যা প্যারালাক্স স্ক্রলিং তৈরি করার জন্য ব্যবহৃত হয়। এটি খুবই হালকা এবং ব্যবহার করতে অত্যন্ত সহজ।
ব্যবহার:
লাইব্রেরি ইনস্টল করা: প্রথমে, Rellax.js ফাইলটি আপনার HTML এ ইনক্লুড করতে হবে।
<script src="rellax.min.js"></script>স্ক্রিপ্ট কোড: এরপর, জাভাস্ক্রিপ্টের মাধ্যমে এলিমেন্টে প্যারালাক্স স্ক্রলিং যোগ করতে হবে।
var rellax = new Rellax('.rellax');HTML কোড: আপনি যেসব এলিমেন্টে প্যারালাক্স স্ক্রলিং প্রভাব চান, তাদের ক্লাস
rellaxঅ্যাসাইন করুন।<div class="rellax" data-rellax-speed="-7"> <h1>Parallax Scrolling Example</h1> </div>
সুবিধা:
- ছোট ফাইল সাইজ এবং সহজ ইন্টারফেস।
- কাস্টম স্পিড এবং পজিশন নিয়ন্ত্রণের সুবিধা।
২. Parallax.js
Parallax.js একটি জনপ্রিয় JavaScript লাইব্রেরি যা ওয়েবপেজের স্ক্রলিংয়ের মাধ্যমে প্যারালাক্স ইফেক্ট তৈরির জন্য ব্যবহৃত হয়। এটি ব্যবহার করতে খুবই সহজ এবং বিভিন্ন কাস্টমাইজেশন অপশন প্রদান করে।
ব্যবহার:
লাইব্রেরি ইনস্টল করা: প্রথমে, লাইব্রেরি ফাইলটি ইনক্লুড করতে হবে:
<script src="parallax.min.js"></script>স্ক্রিপ্ট কোড: প্যারালাক্স প্রভাব কার্যকর করার জন্য জাভাস্ক্রিপ্ট কোড লিখুন।
var scene = document.getElementById('scene'); var parallax = new Parallax(scene);HTML কোড: প্যারালাক্স প্রভাব প্রয়োগ করতে যেসব এলিমেন্টে প্রভাব চাচ্ছেন, তাদের আইডি
sceneদিন।<div id="scene"> <div data-depth="0.2"> <img src="your-image.jpg" alt="parallax-image"> </div> </div>
সুবিধা:
- পার্সপেক্টিভ এবং গভীরতা পরিবর্তনের জন্য ডেপথ নিয়ন্ত্রণ।
- সহজ কনফিগারেশন এবং ব্যবহারযোগ্য।
৩. ScrollMagic
ScrollMagic একটি শক্তিশালী JavaScript লাইব্রেরি যা স্ক্রল ইভেন্ট এবং অ্যানিমেশনসহ প্যারালাক্স স্ক্রলিং ইফেক্ট তৈরি করতে ব্যবহৃত হয়। এটি কাস্টম স্ক্রলিং ইফেক্ট এবং অ্যানিমেশন তৈরি করার জন্য খুবই উপযোগী।
ব্যবহার:
লাইব্রেরি ইনস্টল করা: প্রথমে, ScrollMagic লাইব্রেরি ফাইলটি আপনার পেজে ইনক্লুড করতে হবে:
<script src="scrollmagic/minified/ScrollMagic.min.js"></script>স্ক্রিপ্ট কোড: ScrollMagic এর মাধ্যমে প্যারালাক্স ইফেক্ট অ্যাপ্লাই করতে হলে, কোডে পরবর্তী স্টেপটি ব্যবহার করুন:
var controller = new ScrollMagic.Controller(); var scene = new ScrollMagic.Scene({ triggerElement: "#trigger", duration: "100%" }) .setTween("#animate", {y: "50%", ease: Linear.easeNone}) .addTo(controller);HTML কোড: যেখানে প্যারালাক্স ইফেক্ট চাচ্ছেন, সেই এলিমেন্টে ট্রিগার এবং অ্যানিমেশন অ্যাসাইন করুন।
<div id="trigger"></div> <div id="animate"> <img src="your-image.jpg" alt="parallax"> </div>
সুবিধা:
- প্যারালাক্স স্ক্রলিং সহ শক্তিশালী অ্যানিমেশন সাপোর্ট।
- বিভিন্ন অ্যানিমেশন এবং স্ক্রল ট্রিগার কাস্টমাইজেশন।
৪. Skrollr.js
Skrollr.js একটি আরেকটি শক্তিশালী লাইব্রেরি যা প্যারালাক্স স্ক্রলিং এবং অন্যান্য স্ক্রল ইভেন্ট ভিত্তিক অ্যানিমেশন তৈরি করতে ব্যবহৃত হয়। এটি পুরোপুরি CSS নিয়ন্ত্রিত এবং স্ক্রলিং এর মাধ্যমে কন্টেন্ট ও ইমেজের অবস্থান পরিবর্তন করতে সাহায্য করে।
ব্যবহার:
লাইব্রেরি ইনস্টল করা: প্রথমে, Skrollr.js লাইব্রেরি ইনক্লুড করুন:
<script src="skrollr.min.js"></script>স্ক্রিপ্ট কোড: স্ক্রিপ্ট কোডের মাধ্যমে Skrollr শুরু করুন:
var s = skrollr.init();HTML কোড: প্রভাব চালু করতে HTML এ ডেটা অ্যাট্রিবিউট ব্যবহার করুন।
<div data-0="top:0" data-500="top:500"> <img src="your-image.jpg" alt="parallax"> </div>
সুবিধা:
- সিম্পল এবং CSS-ভিত্তিক কাস্টমাইজেশন।
- স্ক্রলিং ইফেক্টের মধ্যে উচ্চ কাস্টমাইজেশন।
সারাংশ
এগুলি প্যারালাক্স স্ক্রলিং তৈরির জন্য কিছু জনপ্রিয় JavaScript Libraries। এগুলোর সাহায্যে আপনি ওয়েবপেজে আরও ইন্টারঅ্যাকটিভ, ডাইনামিক এবং কাস্টমাইজযোগ্য স্ক্রলিং ইফেক্ট তৈরি করতে পারবেন। আপনি যে লাইব্রেরিটি ব্যবহার করবেন তা আপনার প্রজেক্টের চাহিদা এবং স্কেল অনুযায়ী নির্ভর করবে।
প্যারালাক্স স্ক্রলিং একটি শক্তিশালী ডিজাইন টেকনিক, যা ওয়েবপেজে বিভিন্ন স্তরের স্ক্রলিং গতির পার্থক্য তৈরি করে এবং ব্যবহারকারীদের জন্য ডাইনামিক এবং ইন্টারঅ্যাকটিভ অভিজ্ঞতা তৈরি করে। JavaScript লাইব্রেরি ব্যবহার করে প্যারালাক্স স্ক্রলিং তৈরি করা সহজ হয় এবং ওয়েবসাইটের পারফরমেন্স উন্নত করা যায়।
এখানে তিনটি জনপ্রিয় লাইব্রেরি: Srallax.js, Stellar.js, এবং Rellax.js নিয়ে আলোচনা করা হবে এবং কিভাবে এগুলো ব্যবহার করে প্যারালাক্স স্ক্রলিং তৈরি করা যায় তা দেখানো হবে।
১. Srallax.js
Srallax.js একটি ছোট এবং সহজ লাইব্রেরি, যা প্যারালাক্স স্ক্রলিং ইফেক্ট তৈরি করার জন্য ব্যবহৃত হয়। এটি যেকোনো স্ক্রলিং ওয়েবপেজে গভীরতা এবং ত্রিমাত্রিক অনুভূতি যোগ করতে সাহায্য করে।
Srallax.js ব্যবহার
- লাইব্রেরি ইনস্টলেশন: Srallax.js ব্যবহার করতে, প্রথমে এটি ওয়েবপেজে যুক্ত করতে হবে:
<script src="https://cdn.jsdelivr.net/npm/srallax.js@1.0.0/srallax.min.js"></script>
- HTML স্ট্রাকচার:
<div class="parallax" data-speed="0.5"></div>
<section class="content">
<h1>Welcome to Srallax.js</h1>
<p>This section will scroll with parallax effect using Srallax.js library.</p>
</section>
- CSS কোড:
.parallax {
height: 100vh;
background-image: url('background-image.jpg');
background-position: center;
background-size: cover;
}
- JavaScript:
var parallax = new Srallax();
parallax.init();
data-speed="0.5" এটিকে ব্যাকগ্রাউন্ডের গতির জন্য নিয়ন্ত্রণ করে, যেখানে 0.5 মানে ব্যাকগ্রাউন্ড ধীরে স্ক্রল হবে।
২. Stellar.js
Stellar.js একটি জনপ্রিয় JavaScript লাইব্রেরি যা প্যারালাক্স স্ক্রলিং ইফেক্ট তৈরি করতে ব্যবহৃত হয়। এটি সাইটের বিভিন্ন স্তরের স্ক্রলিং গতির পার্থক্য তৈরি করতে সক্ষম।
Stellar.js ব্যবহার
- লাইব্রেরি ইনস্টলেশন:
<script src="https://cdnjs.cloudflare.com/ajax/libs/stellar.js/0.6.2/jquery.stellar.min.js"></script>
- HTML স্ট্রাকচার:
<div class="parallax" data-stellar-background-ratio="0.5"></div>
<section class="content">
<h1>Stellar.js Parallax</h1>
<p>Scroll down to see the parallax effect powered by Stellar.js.</p>
</section>
- CSS কোড:
.parallax {
height: 100vh;
background-image: url('background-image.jpg');
background-position: center;
background-size: cover;
}
- JavaScript:
$(document).ready(function() {
$(window).stellar();
});
data-stellar-background-ratio="0.5" ব্যাকগ্রাউন্ডের গতির হার নির্ধারণ করে, যেখানে 0.5 মানে ব্যাকগ্রাউন্ডটি ধীরে চলবে।
৩. Rellax.js
Rellax.js একটি হালকা এবং সহজ লাইব্রেরি যা প্যারালাক্স স্ক্রলিং তৈরি করতে ব্যবহৃত হয়। এটি যেকোনো ধরনের ওয়েবসাইটে দ্রুত এবং দক্ষভাবে প্যারালাক্স ইফেক্ট যোগ করতে সাহায্য করে।
Rellax.js ব্যবহার
- লাইব্রেরি ইনস্টলেশন:
<script src="https://cdn.jsdelivr.net/npm/rellax@1.12.0/rellax.min.js"></script>
- HTML স্ট্রাকচার:
<div class="rellax" data-rellax-speed="-3"></div>
<section class="content">
<h1>Rellax.js Parallax</h1>
<p>This is an example of parallax scrolling using Rellax.js.</p>
</section>
- CSS কোড:
.rellax {
height: 100vh;
background-image: url('background-image.jpg');
background-position: center;
background-size: cover;
}
- JavaScript:
var rellax = new Rellax('.rellax');
data-rellax-speed="-3" এ মান ব্যাকগ্রাউন্ডের গতিকে নিয়ন্ত্রণ করে। এখানে -3 মানে ব্যাকগ্রাউন্ড দ্রুত স্ক্রল হবে।
তুলনা
| লাইব্রেরি | সাইজ | কাস্টমাইজেশন | পারফরমেন্স | সহজলভ্যতা |
|---|---|---|---|---|
| Srallax.js | ছোট | সহজ | দ্রুত | সহজ |
| Stellar.js | মাঝারি | উচ্চ | ভাল | সহজ |
| Rellax.js | ছোট | মডারেট | দ্রুত | সহজ |
সারাংশ
- Srallax.js হল একটি ছোট এবং সহজ লাইব্রেরি যা দ্রুত প্যারালাক্স স্ক্রলিং ইফেক্ট তৈরি করতে সাহায্য করে।
- Stellar.js আরও কাস্টমাইজেশন সুবিধা প্রদান করে এবং বড় প্রোজেক্টে উপযোগী।
- Rellax.js একটি হালকা এবং দ্রুত লাইব্রেরি যা কমপ্লেক্স ওয়েবসাইটেও দক্ষভাবে কাজ করে।
এই লাইব্রেরিগুলির মধ্যে যেকোনো একটি নির্বাচন করে প্যারালাক্স স্ক্রলিং ইফেক্ট তৈরি করা যেতে পারে, যা আপনার ওয়েবসাইটে গভীরতা এবং ইন্টারঅ্যাকটিভ অনুভূতি আনবে।
ScrollMagic একটি শক্তিশালী JavaScript লাইব্রেরি, যা ওয়েবপেজে স্ক্রলিংয়ের সাথে অ্যানিমেশন এবং প্যারালাক্স ইফেক্ট যোগ করতে ব্যবহৃত হয়। এটি ব্যবহারকারীর স্ক্রল মুভমেন্ট ট্র্যাক করে এবং বিভিন্ন কন্টেন্ট বা এলিমেন্টে ডাইনামিক এফেক্টস তৈরি করে। এই লাইব্রেরি ব্যবহার করে আপনি সহজেই Srallax Scrolling এবং Animation যুক্ত করতে পারেন।
ScrollMagic লাইব্রেরি দিয়ে Srallax Scrolling এবং Animation তৈরি করার প্রক্রিয়া
১. লাইব্রেরি ইনস্টল করা
প্রথমেই, ScrollMagic লাইব্রেরিটি আপনার প্রোজেক্টে অন্তর্ভুক্ত করতে হবে। আপনি CDN বা npm এর মাধ্যমে লাইব্রেরি যোগ করতে পারেন। এখানে CDN ব্যবহার করার উদাহরণ দেওয়া হলো:
<!-- ScrollMagic CDN -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/ScrollMagic.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.9.0/gsap.min.js"></script>
এছাড়াও, GSAP (GreenSock Animation Platform) লাইব্রেরিটি অ্যানিমেশন এবং ট্রানজিশন ইফেক্ট করার জন্য ব্যবহার করা হয় এবং ScrollMagic এর সাথে এটি সহজেই কাজ করে।
২. HTML স্ট্রাকচার
এখন, HTML ফাইলে প্যারালাক্স এবং অ্যানিমেশন প্রভাব তৈরি করতে কিছু এলিমেন্ট তৈরি করতে হবে। উদাহরণস্বরূপ, আমরা একটি সেকশন তৈরি করব যেখানে ব্যাকগ্রাউন্ড স্ক্রল হবে এবং কিছু কন্টেন্ট অ্যানিমেট হবে।
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ScrollMagic Parallax and Animation</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- Parallax Section -->
<div class="parallax-section">
<h2 class="animate-text">Scroll to Animate</h2>
</div>
<div class="content">
<p>This content is static and doesn't move during scrolling.</p>
</div>
<div class="parallax-section">
<h2 class="animate-text">More Scrolling Effects</h2>
</div>
<script src="script.js"></script>
</body>
</html>
৩. CSS স্টাইল
এখন CSS ব্যবহার করে প্যারালাক্স ইফেক্ট এবং অ্যানিমেশন কন্টেন্টের জন্য কিছু স্টাইল তৈরি করতে হবে।
/* Basic Reset */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: Arial, sans-serif;
}
/* Parallax Section */
.parallax-section {
height: 100vh;
background: url('background-image.jpg') center/cover no-repeat;
position: relative;
}
.animate-text {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 3rem;
color: white;
}
/* Content Section */
.content {
padding: 50px;
background-color: #f4f4f4;
text-align: center;
}
.content p {
font-size: 1.5rem;
}
৪. JavaScript (ScrollMagic) কনফিগার করা
এখন, ScrollMagic লাইব্রেরি ব্যবহার করে প্যারালাক্স স্ক্রলিং এবং অ্যানিমেশন যুক্ত করা হবে। এখানে আমরা দুটি কাজ করব:
- প্যারালাক্স স্ক্রলিং (ব্যাকগ্রাউন্ড ইমেজের গতির পরিবর্তন)।
- কন্টেন্টের জন্য অ্যানিমেশন (টেক্সট বা এলিমেন্টগুলির ফেড ইন বা মুভমেন্ট ইফেক্ট)।
// Initialize ScrollMagic Controller
const controller = new ScrollMagic.Controller();
// Parallax Scrolling Effect
new ScrollMagic.Scene({
triggerElement: '.parallax-section',
triggerHook: 'onLeave', // When the section leaves the viewport
duration: '100%' // Duration of the effect
})
.setTween('.parallax-section', {backgroundPosition: 'center ' + (window.innerHeight / 2) + 'px'})
.addTo(controller);
// Animation on Scroll
new ScrollMagic.Scene({
triggerElement: '.animate-text', // Element to trigger the animation
triggerHook: 0.9, // Trigger when the element is 90% into the viewport
reverse: false // The animation runs only once
})
.setTween('.animate-text', {opacity: 1, y: '0%', ease: 'Power1.easeInOut'})
.addTo(controller);
কোড ব্যাখ্যা
- ScrollMagic Controller: প্রথমে, আমরা ScrollMagic এর Controller ইন্সট্যান্স তৈরি করি, যা সকল স্ক্রলিং ইভেন্ট এবং অ্যানিমেশন ট্র্যাক করে।
- Parallax Scrolling:
triggerElement: '.parallax-section'সেটি নির্দেশ করে, যেই সেকশনটি স্ক্রল করলে প্যারালাক্স ইফেক্ট কার্যকর হবে।setTweenব্যবহার করে, ব্যাকগ্রাউন্ড ইমেজের অবস্থান পরিবর্তন করতে বলেছি। এটি স্ক্রল করার সাথে সাথে ব্যাকগ্রাউন্ডের গতির পরিবর্তন ঘটায়।
- Animation on Scroll:
.animate-textক্লাসের টেক্সট স্ক্রল হলে সেটি অ্যানিমেট হবে। এখানেsetTweenএর মাধ্যমে ফেড ইন এবং Y অক্ষ বরাবর স্থানান্তর করতে বলা হয়েছে।.y: '0%'এবংopacity: 1টেক্সটটি ৯০% স্ক্রল হওয়ার পর ফেড ইন হয়ে তার মূল অবস্থানে চলে আসবে।
ফলস্বরূপ
এই কোডটি ব্যবহারের মাধ্যমে আপনি একটি উন্নত Srallax Scrolling এবং Animation ইফেক্ট তৈরি করতে পারবেন, যেখানে ব্যাকগ্রাউন্ড স্ক্রল হবে এবং কন্টেন্ট অ্যানিমেট হবে যখন ব্যবহারকারী স্ক্রল করবে। এটি আপনার ওয়েবসাইটে একটি ডাইনামিক এবং ইন্টারঅ্যাকটিভ অভিজ্ঞতা যোগ করবে।
ScrollMagic লাইব্রেরি আপনাকে স্ক্রলিং এর সাথে মসৃণ অ্যানিমেশন এবং প্যারালাক্স ইফেক্ট তৈরি করতে সাহায্য করে, যা ওয়েব ডিজাইনে নতুন মাত্রা যোগ করে।
প্যারালাক্স স্ক্রলিং (Srallax Scrolling) ইফেক্টটি ওয়েব ডিজাইনে একটি আকর্ষণীয় অভিজ্ঞতা তৈরি করতে ব্যবহৃত হয়। আপনি JavaScript এর মাধ্যমে কাস্টম প্যারালাক্স ইফেক্ট তৈরি করতে পারেন, যেখানে ব্যাকগ্রাউন্ড এবং কন্টেন্ট ভিন্ন গতিতে স্ক্রল করে। এটি একটি ডাইনামিক এবং ইন্টারঅ্যাকটিভ অনুভূতি তৈরি করে, যা ব্যবহারকারীদের স্ক্রলিং অভিজ্ঞতাকে আরও উন্নত করে তোলে।
এই টিউটোরিয়ালে আমরা দেখব কীভাবে JavaScript ফাংশন ব্যবহার করে কাস্টম প্যারালাক্স ইফেক্ট তৈরি করা যায়।
কাস্টম Srallax Effect তৈরি করার জন্য JavaScript Functions
আমরা একটি কাস্টম parallax() ফাংশন তৈরি করব, যা স্ক্রল ইভেন্টের মাধ্যমে ব্যাকগ্রাউন্ডের পজিশন নিয়ন্ত্রণ করবে এবং লেয়ারগুলোর গতির পার্থক্য তৈরি করবে।
উদাহরণ: কাস্টম Srallax Effect
১. HTML স্ট্রাকচার
প্রথমে আমাদের HTML ফাইল তৈরি করতে হবে, যেখানে প্যারালাক্স স্ক্রলিং ইফেক্ট দেখানো হবে।
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Custom Srallax Effect</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="parallax" id="layer1"></div> <!-- Background Layer -->
<div class="content">
<h1>Welcome to Custom Srallax Effect!</h1>
<p>Scroll down to see the effect</p>
</div>
<div class="parallax" id="layer2"></div> <!-- Middle Layer -->
<div class="content">
<h2>Enjoy the parallax experience!</h2>
</div>
<div class="parallax" id="layer3"></div> <!-- Front Layer -->
<script src="script.js"></script>
</body>
</html>
২. CSS স্টাইলিং
এখন আমাদের CSS দিয়ে লেয়ারগুলো এবং কন্টেন্ট স্টাইল করতে হবে। এখানে, আমরা তিনটি লেয়ার ব্যবহার করব, এবং প্রতিটি লেয়ারের জন্য আলাদা ব্যাকগ্রাউন্ড ইমেজ এবং স্টাইল থাকবে।
/* styles.css */
body, html {
margin: 0;
padding: 0;
height: 100%;
}
.parallax {
position: relative;
width: 100%;
height: 100vh;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
transition: transform 0.2s ease-in-out;
}
#layer1 {
background-image: url('background1.jpg'); /* Background Image */
z-index: -2;
}
#layer2 {
background-image: url('background2.jpg'); /* Middle Layer Image */
z-index: -1;
}
#layer3 {
background-image: url('background3.jpg'); /* Front Layer Image */
z-index: 1;
}
.content {
text-align: center;
padding: 50px;
background-color: white;
z-index: 2;
}
৩. JavaScript দিয়ে কাস্টম Srallax Effect তৈরি
এখন, JavaScript ব্যবহার করে আমরা কাস্টম parallax() ফাংশন তৈরি করব, যা স্ক্রল ইভেন্টের মাধ্যমে বিভিন্ন লেয়ারের জন্য আলাদা স্ক্রল স্পিড নির্ধারণ করবে।
// script.js
window.addEventListener('scroll', function() {
var scrollPosition = window.pageYOffset; // Get the current scroll position
// Apply different scroll speeds for different layers
parallax('layer1', scrollPosition, 0.3); // Slow Scroll for Background
parallax('layer2', scrollPosition, 0.5); // Medium Scroll for Middle Layer
parallax('layer3', scrollPosition, 0.7); // Fast Scroll for Front Layer
});
function parallax(layerId, scrollPosition, speed) {
var layer = document.getElementById(layerId);
layer.style.transform = 'translateY(' + (scrollPosition * speed) + 'px)';
}
ব্যাখ্যা:
- scrollPosition:
window.pageYOffsetএর মাধ্যমে আমরা স্ক্রল পজিশন বের করি, যা ওয়েবপেজের কতটা নিচে স্ক্রল হয়েছে তা নির্ধারণ করে। - parallax() ফাংশন: এই ফাংশনটি ব্যাকগ্রাউন্ড, মিডল এবং ফ্রন্ট লেয়ারগুলোর জন্য স্ক্রল স্পিড কন্ট্রোল করে।
speedপ্যারামিটার দিয়ে আমরা প্রতিটি লেয়ারের জন্য আলাদা স্ক্রল স্পিড নির্ধারণ করতে পারি।0.3,0.5, এবং0.7মানের মাধ্যমে, ব্যাকগ্রাউন্ড লেয়ার ধীরে স্ক্রল করবে, মিডল লেয়ার একটু দ্রুত স্ক্রল হবে, এবং ফ্রন্ট লেয়ার দ্রুত স্ক্রল হবে।
৪. অতিরিক্ত কাস্টমাইজেশন
আপনি এই কাস্টম ফাংশনটিকে আরও কাস্টমাইজ করতে পারেন:
- 3D Rotate Effect: আপনি
rotateY()বাrotateX()ব্যবহার করে 3D রোটেট ইফেক্ট যোগ করতে পারেন।
layer.style.transform = 'translateY(' + (scrollPosition * speed) + 'px) rotateY(' + (scrollPosition * 0.05) + 'deg)';
- Scale Effect: লেয়ারগুলোর আকারও পরিবর্তন করা যেতে পারে, যা স্ক্রলিংয়ের সাথে যুক্ত হতে পারে।
layer.style.transform = 'scale(' + (1 + scrollPosition * 0.001) + ')';
- Opacity Effect: স্ক্রলিংয়ের সময় লেয়ারগুলোর opacity পরিবর্তন করাও সম্ভব। এটি লেয়ারগুলিকে আরও আকর্ষণীয় এবং ইন্টারঅ্যাকটিভ করে তোলে।
layer.style.opacity = 1 - scrollPosition / 1000;
৫. পারফরম্যান্স টিপস
- requestAnimationFrame(): স্ক্রলিংয়ের সময় পারফরম্যান্স উন্নত করতে
requestAnimationFrame()ব্যবহার করা যেতে পারে। এটি স্ক্রলিংয়ের জন্য অ্যানিমেশনকে মসৃণভাবে রেন্ডার করতে সাহায্য করবে।
window.addEventListener('scroll', function() {
window.requestAnimationFrame(function() {
var scrollPosition = window.pageYOffset;
parallax('layer1', scrollPosition, 0.3);
parallax('layer2', scrollPosition, 0.5);
parallax('layer3', scrollPosition, 0.7);
});
});
- Image Optimization: ভারী ব্যাকগ্রাউন্ড ইমেজগুলি ওয়েব ফ্রেন্ডলি ফরম্যাটে (যেমন WebP) কম্প্রেস করে ব্যবহার করুন।
সারাংশ
কাস্টম Srallax Effect তৈরি করার জন্য JavaScript এর মাধ্যমে স্ক্রল ইভেন্ট ট্র্যাক করা হয় এবং প্রতিটি লেয়ারের জন্য আলাদা স্ক্রল স্পিড নির্ধারণ করা হয়। এটি আপনার ওয়েবপেজে একটি ডাইনামিক, আকর্ষণীয় এবং ইন্টারঅ্যাকটিভ অভিজ্ঞতা তৈরি করে। JavaScript ফাংশন ব্যবহার করে আপনি সহজে ব্যাকগ্রাউন্ড, মিডল এবং ফ্রন্ট লেয়ারগুলির স্ক্রল স্পিড কাস্টমাইজ করতে পারেন এবং ওয়েব ডিজাইনকে আরও উন্নত করতে পারেন।
JavaScript এর মাধ্যমে scroll event হ্যান্ডল করে প্যারালাক্স স্ক্রলিং ইফেক্ট তৈরি করা একটি খুবই জনপ্রিয় এবং শক্তিশালী পদ্ধতি। প্যারালাক্স স্ক্রলিংয়ে, স্ক্রলিংয়ের সময় বিভিন্ন উপাদান (যেমন ব্যাকগ্রাউন্ড, মিডগ্রাউন্ড, ফরওয়ার্ড কন্টেন্ট) ভিন্ন গতিতে চলতে থাকে। JavaScript দিয়ে scroll event ট্র্যাক করলে, স্ক্রলিংয়ের সময় একাধিক লেয়ার বা উপাদানের গতির নিয়ন্ত্রণ করা সম্ভব হয়।
এখানে, আমরা দেখবো কীভাবে JavaScript দিয়ে scroll event হ্যান্ডল করে প্যারালাক্স স্ক্রলিং ইফেক্ট তৈরি করা যায়।
১. HTML স্ট্রাকচার
প্রথমে, HTML ফাইলে কিছু সেকশন তৈরি করতে হবে যেখানে প্যারালাক্স ইফেক্ট প্রযোজ্য হবে।
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Parallax Scrolling with JavaScript</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- Parallax Section -->
<div class="parallax" id="parallax-background"></div>
<div class="content">
<h1>Parallax Scrolling Example</h1>
<p>This is an example of Parallax effect created using JavaScript Scroll Event.</p>
</div>
<div class="parallax" id="parallax-midground"></div>
<div class="parallax" id="parallax-foreground"></div>
<script src="script.js"></script>
</body>
</html>
২. CSS ফাইল (styles.css)
এখন, CSS ফাইলে ব্যাকগ্রাউন্ড, মিডল গ্রাউন্ড এবং ফরওয়ার্ড লেয়ারগুলির জন্য প্রাথমিক স্টাইলিং দিতে হবে। এই লেয়ারগুলির মধ্যে প্যারালাক্স স্ক্রলিং প্রভাব তৈরি হবে।
/* Basic Reset */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* Body Styling */
body {
font-family: Arial, sans-serif;
height: 2000px; /* Enough space to scroll */
}
/* Parallax Layers */
.parallax {
position: absolute;
width: 100%;
height: 100vh;
background-size: cover;
background-position: center;
z-index: -1; /* Makes sure layers stay behind content */
}
/* Background Layer */
#parallax-background {
background-image: url('background.jpg'); /* Replace with your background image */
}
/* Midground Layer */
#parallax-midground {
background-image: url('midground.jpg'); /* Replace with your image */
}
/* Foreground Layer */
#parallax-foreground {
background-image: url('foreground.jpg'); /* Replace with your image */
}
/* Content Section */
.content {
position: relative;
text-align: center;
padding: 50px;
background-color: rgba(255, 255, 255, 0.8);
color: #333;
}
.content h1 {
font-size: 3rem;
}
.content p {
font-size: 1.5rem;
}
৩. JavaScript কোড (script.js)
এখন, JavaScript দিয়ে scroll event হ্যান্ডল করা হবে, যাতে স্ক্রলিংয়ের সময় বিভিন্ন লেয়ারগুলির গতির পার্থক্য তৈরি হয়। আমরা window.scrollY ব্যবহার করে স্ক্রল পজিশন ট্র্যাক করবো এবং প্রতিটি লেয়ারের গতি আলাদা করে দিবো।
// Get all parallax layers
const background = document.getElementById('parallax-background');
const midground = document.getElementById('parallax-midground');
const foreground = document.getElementById('parallax-foreground');
// Function to handle scroll event
function handleScroll() {
let scrollPosition = window.scrollY; // Get the current scroll position
// Apply different speeds for different layers
background.style.transform = 'translateY(' + scrollPosition * 0.3 + 'px)';
midground.style.transform = 'translateY(' + scrollPosition * 0.6 + 'px)';
foreground.style.transform = 'translateY(' + scrollPosition * 1 + 'px)';
}
// Add scroll event listener
window.addEventListener('scroll', handleScroll);
কোডের ব্যাখ্যা
- HTML:
.parallaxক্লাসের তিনটি আলাদা সেকশন রয়েছে:#parallax-background,#parallax-midground, এবং#parallax-foreground।- প্রতিটি সেকশন একে অপর থেকে ভিন্ন গতিতে স্ক্রল হবে, যা প্যারালাক্স ইফেক্ট তৈরি করবে।
- CSS:
.parallaxক্লাসেposition: absoluteব্যবহার করা হয়েছে, যাতে লেয়ারগুলো একে অপরের উপরে সঠিকভাবে অবস্থান করতে পারে।background-size: coverএবংbackground-position: centerনিশ্চিত করবে যে ইমেজটি ওয়েবপেজের পুরো সেকশনে সঠিকভাবে ফিট করবে।z-index: -1ব্যাবহার করা হয়েছে যাতে কন্টেন্ট সেকশনটি সবার উপরে থাকে।
- JavaScript:
window.scrollYদ্বারা স্ক্রল পজিশন ট্র্যাক করা হচ্ছে, এবং প্রতিটি লেয়ারের জন্যtransform: translateY()ব্যবহার করে তাদের গতি পরিবর্তন করা হচ্ছে।background.style.transform = 'translateY(' + scrollPosition * 0.3 + 'px)'কোডে ব্যাকগ্রাউন্ড লেয়ারটি ধীরে স্ক্রল হবে (যেমনscrollPosition * 0.3), মিডগ্রাউন্ড দ্রুত এবং ফরওয়ার্ড লেয়ারটি আরো দ্রুত স্ক্রল হবে (যেমনscrollPosition * 1)।
ফলস্বরূপ
এই কোডের মাধ্যমে, স্ক্রলিংয়ের সময় প্রতিটি লেয়ার আলাদা গতিতে স্ক্রল হবে। ব্যাকগ্রাউন্ড ধীরে, মিডগ্রাউন্ড মাঝারি গতিতে এবং ফরওয়ার্ড কন্টেন্ট দ্রুত স্ক্রল হবে, যা একটি আকর্ষণীয় প্যারালাক্স স্ক্রলিং ইফেক্ট তৈরি করবে।
সারাংশ
JavaScript এর মাধ্যমে scroll event হ্যান্ডল করে প্যারালাক্স স্ক্রলিং ইফেক্ট তৈরি করা একটি শক্তিশালী পদ্ধতি। এটি ব্যবহার করে বিভিন্ন লেয়ারকে ভিন্ন গতিতে স্ক্রল করার মাধ্যমে একটি গভীরতা এবং ডাইনামিক অভিজ্ঞতা তৈরি করা যায়। window.scrollY ব্যবহার করে স্ক্রল পজিশন ট্র্যাক করে লেয়ারগুলির গতির পার্থক্য তৈরি করা হয়, যা একটি ইন্টারঅ্যাকটিভ ওয়েব ডিজাইন তৈরি করে।
Read more