সিএসএস ব্যবহার করে স্বয়ংক্রিয়ভাবে 0 থেকে উচ্চতা পরিবর্তন করা

সিএসএস ব্যবহার করে স্বয়ংক্রিয়ভাবে 0 থেকে উচ্চতা পরিবর্তন করা
সিএসএস ব্যবহার করে স্বয়ংক্রিয়ভাবে 0 থেকে উচ্চতা পরিবর্তন করা

সিএসএস দিয়ে মসৃণ উচ্চতা ট্রানজিশন তৈরি করা

সিএসএস ব্যবহার করে একটি উপাদানের উচ্চতা 0 থেকে অটোতে রূপান্তর করা চ্যালেঞ্জিং হতে পারে কারণ স্বয়ংক্রিয় মানের জন্য একটি সংজ্ঞায়িত শেষ পয়েন্টের অভাব রয়েছে৷ এটি প্রায়শই উপাদানগুলিকে মসৃণ রূপান্তর প্রভাব ছাড়াই আকস্মিকভাবে উপস্থিত হতে দেয়।

এই নিবন্ধে, আমরা কিভাবে একটি মসৃণ স্লাইড-ডাউন প্রভাব অর্জন করতে হবে তা অন্বেষণ করব CSS ট্রানজিশন ব্যবহার করে উপাদান। আমরা সাধারণ সমস্যাগুলি পরীক্ষা করব এবং জাভাস্ক্রিপ্টের উপর নির্ভর না করে একটি নির্বিঘ্ন রূপান্তর তৈরি করতে সমাধান প্রদান করব৷

আদেশ বর্ণনা
overflow: hidden; উপাদানের বাক্সের বাইরে উপচে পড়া যেকোনো বিষয়বস্তু লুকিয়ে রাখে। উচ্চতা পরিবর্তনের সময় বিষয়বস্তু দৃশ্যমানতা পরিচালনা করতে ব্যবহৃত হয়।
transition: height 1s ease; সহজ সময় ফাংশন ব্যবহার করে 1 সেকেন্ডের বেশি উচ্চতা সম্পত্তিতে একটি মসৃণ রূপান্তর প্রভাব প্রয়োগ করে।
scrollHeight দৃশ্যমান নয় এমন ওভারফ্লো সামগ্রী সহ একটি উপাদানের সম্পূর্ণ উচ্চতা প্রদান করে। গতিশীল উচ্চতা গণনা করতে JavaScript ব্যবহার করা হয়।
addEventListener('mouseenter') 'মাউসেন্টার' ইভেন্টে একটি ইভেন্ট হ্যান্ডলার সংযুক্ত করে, যা মাউস পয়েন্টার উপাদানটিতে প্রবেশ করলে ট্রিগার করে। উচ্চতা পরিবর্তন শুরু করতে ব্যবহৃত হয়।
addEventListener('mouseleave') 'mouseleave' ইভেন্টে একটি ইভেন্ট হ্যান্ডলার সংযুক্ত করে, যা মাউস পয়েন্টার উপাদানটি ছেড়ে গেলে ট্রিগার করে। উচ্চতা স্থানান্তর বিপরীত ব্যবহৃত.
style.height জাভাস্ক্রিপ্টে একটি উপাদানের উচ্চতা সরাসরি সেট করে। মসৃণ রূপান্তরের জন্য গতিশীলভাবে উচ্চতা সামঞ্জস্য করতে ব্যবহৃত হয়।
:root CSS সিউডো-ক্লাস যা নথির মূল উপাদানের সাথে মেলে। গ্লোবাল CSS ভেরিয়েবল সংজ্ঞায়িত করতে ব্যবহৃত হয়।
var(--max-height) একটি CSS ভেরিয়েবল উল্লেখ করে। পরিবর্তনের সময় গতিশীলভাবে সর্বোচ্চ উচ্চতা নির্ধারণ করতে ব্যবহৃত হয়।

CSS-এ মসৃণ উচ্চতা পরিবর্তন বোঝা

প্রথম স্ক্রিপ্টটি একটি উপাদানের উচ্চতা 0 থেকে একটি নির্দিষ্ট উচ্চতায় রূপান্তর করার জন্য শুধুমাত্র CSS-এর পদ্ধতি প্রদর্শন করে। ব্যবহার করে overflow: hidden; সম্পত্তি, উপাদানের উচ্চতা অতিক্রম করে প্রসারিত যে কোনো বিষয়বস্তু লুকানো হয়, একটি পরিষ্কার স্থানান্তর নিশ্চিত করে। দ্য transition: height 1s ease; সম্পত্তি 1 সেকেন্ডের বেশি উচ্চতায় একটি মসৃণ রূপান্তর প্রভাব প্রয়োগ করে। যখন প্যারেন্ট এলিমেন্টের উপরে হোভার করা হয়, তখন চাইল্ড এলিমেন্টের উচ্চতা একটি পূর্বনির্ধারিত মানতে পরিবর্তিত হয়, যা নিচে স্লাইডিং এর বিভ্রম তৈরি করে। তবে এই পদ্ধতির জন্য আপনাকে উপাদানটির চূড়ান্ত উচ্চতা আগে থেকেই জানতে হবে।

দ্বিতীয় স্ক্রিপ্টটি একটি উপাদানের উচ্চতা গতিশীলভাবে সামঞ্জস্য করার জন্য জাভাস্ক্রিপ্টকে অন্তর্ভুক্ত করে। যখন প্যারেন্ট এলিমেন্ট ওভার করা হয়, তখন স্ক্রিপ্ট ব্যবহার করে কন্টেন্টের সম্পূর্ণ উচ্চতা গণনা করে scrollHeight এবং এই মান সেট করে style.height শিশু উপাদানের সম্পত্তি। এটি চূড়ান্ত উচ্চতা আগে থেকে না জেনে উচ্চতা 0 থেকে সম্পূর্ণ বিষয়বস্তুর উচ্চতায় একটি মসৃণ রূপান্তর নিশ্চিত করে৷ দ্য addEventListener('mouseenter') এবং addEventListener('mouseleave') মাউস হোভার ইভেন্টগুলি পরিচালনা করার জন্য ফাংশনগুলি ব্যবহার করা হয়, যাতে মাউস মূল উপাদানটি ছেড়ে চলে গেলে উচ্চতা 0-এ ফিরে যায় তা নিশ্চিত করে।

CSS উচ্চতা পরিবর্তনের জন্য উন্নত কৌশল

তৃতীয় স্ক্রিপ্ট উচ্চতা ট্রানজিশন পরিচালনা করতে CSS ভেরিয়েবলের সুবিধা দেয়। একটি বিশ্ব পরিবর্তনশীল সংজ্ঞায়িত করে :root সর্বাধিক উচ্চতার জন্য, আমরা হভার অবস্থার সময় চাইল্ড এলিমেন্টে এই মানটি গতিশীলভাবে বরাদ্দ করতে পারি। পরিবর্তনশীল var(--max-height) উচ্চতা নির্ধারণ করতে CSS-এর মধ্যে ব্যবহার করা হয়, নিশ্চিত করে যে রূপান্তরটি মসৃণ এবং বিষয়বস্তুর পরিবর্তনের সাথে মানিয়ে নেওয়া যায়। এই পদ্ধতিটি গতিশীল মানগুলির নমনীয়তার সাথে CSS-এর সরলতাকে একত্রিত করে, যা প্রয়োজন অনুসারে পরিবর্তনের উচ্চতাগুলি পরিচালনা এবং আপডেট করা সহজ করে তোলে।

এই পদ্ধতিগুলির প্রতিটি একটি উপাদানের উচ্চতা 0 থেকে স্বয়ংক্রিয় রূপান্তর করার সমস্যার জন্য একটি ভিন্ন সমাধান দেয়। বিশুদ্ধ CSS পদ্ধতি সহজবোধ্য কিন্তু একটি পূর্বনির্ধারিত উচ্চতার প্রয়োজন দ্বারা সীমাবদ্ধ। জাভাস্ক্রিপ্ট পদ্ধতিটি আরও নমনীয়তা প্রদান করে, যা গতিশীল উচ্চতা গণনার অনুমতি দেয়, কিন্তু অতিরিক্ত স্ক্রিপ্টিংয়ের প্রয়োজন হয়। CSS ভেরিয়েবল কৌশলটি একটি মধ্যম স্থল অফার করে, যা গতিশীল ক্ষমতার সাথে ব্যবহারের সহজলভ্যতাকে একত্রিত করে। এই কৌশলগুলি বোঝার এবং ব্যবহার করে, বিকাশকারীরা তাদের ওয়েব প্রকল্পগুলিতে মসৃণ, দৃশ্যত আকর্ষণীয় উচ্চতা পরিবর্তন করতে পারে।

সিএসএস ব্যবহার করে স্বয়ংক্রিয়ভাবে 0 থেকে মসৃণ উচ্চতা পরিবর্তন

সিএসএস এবং এইচটিএমএল

<style>
  #child {
    height: 0;
    overflow: hidden;
    background-color: #dedede;
    transition: height 1s ease;
  }
  #parent:hover #child {
    height: 100px; /* Set this to the max height you expect */
  }
</style>
<div id="parent">
  <h1>Hover me</h1>
  <div id="child">
    Some content<br>
    Some content<br>
    Some content<br>
  </div>
</div>

মসৃণ উচ্চতা পরিবর্তনের জন্য জাভাস্ক্রিপ্ট সমাধান

এইচটিএমএল, সিএসএস এবং জাভাস্ক্রিপ্ট

<style>
  #child {
    height: 0;
    overflow: hidden;
    background-color: #dedede;
    transition: height 1s ease;
  }
</style>
<div id="parent">
  <h1>Hover me</h1>
  <div id="child">
    Some content<br>
    Some content<br>
    Some content<br>
  </div>
</div>
<script>
  const parent = document.getElementById('parent');
  const child = document.getElementById('child');
  parent.addEventListener('mouseenter', () => {
    child.style.height = child.scrollHeight + 'px';
  });
  parent.addEventListener('mouseleave', () => {
    child.style.height = '0';
  });
</script>

CSS ভেরিয়েবল ব্যবহার করে মসৃণ উচ্চতা পরিবর্তন

সিএসএস এবং এইচটিএমএল

<style>
  :root {
    --max-height: 100px;
  }
  #child {
    height: 0;
    overflow: hidden;
    background-color: #dedede;
    transition: height 1s ease;
  }
  #parent:hover #child {
    height: var(--max-height);
  }
</style>
<div id="parent">
  <h1>Hover me</h1>
  <div id="child">
    Some content<br>
    Some content<br>
    Some content<br>
  </div>
</div>

মসৃণ ট্রানজিশনের জন্য CSS অ্যানিমেশন অন্বেষণ করা

উচ্চতা পরিবর্তন করার পাশাপাশি, CSS অ্যানিমেশনগুলি মসৃণ ভিজ্যুয়াল এফেক্ট তৈরি করার বহুমুখী উপায় প্রদান করে। CSS অ্যানিমেশন আপনাকে অস্বচ্ছতা, রূপান্তর এবং রঙ সহ উচ্চতার বাইরে বিস্তৃত বৈশিষ্ট্যগুলিকে অ্যানিমেট করতে দেয়। কীফ্রেমগুলি সংজ্ঞায়িত করে, আপনি একটি অ্যানিমেশনের মধ্যবর্তী ধাপগুলি নিয়ন্ত্রণ করতে পারেন, যার ফলে আরও জটিল এবং দৃশ্যত আকর্ষণীয় রূপান্তর হয়৷ উদাহরণস্বরূপ, আপনি আরও গতিশীল এবং আকর্ষক ব্যবহারকারীর অভিজ্ঞতা তৈরি করতে একটি ফেড-ইন প্রভাবের সাথে একটি উচ্চতা পরিবর্তনকে একত্রিত করতে পারেন। CSS-এ কীফ্রেমের নিয়ম আপনাকে অ্যানিমেশনের শুরু এবং শেষ অবস্থা, সেইসাথে মধ্যবর্তী যেকোন সংখ্যক রাজ্য নির্দিষ্ট করতে দেয়, যা আপনাকে অ্যানিমেশন প্রক্রিয়ার উপর সূক্ষ্ম নিয়ন্ত্রণ দেয়।

CSS অ্যানিমেশনের আরেকটি দিক হল অ্যানিমেশন-বিলম্ব বৈশিষ্ট্য ব্যবহার করে একাধিক অ্যানিমেশন সিকোয়েন্স করার ক্ষমতা। এই বৈশিষ্ট্যটি আপনাকে বিভিন্ন অ্যানিমেশনের শুরুর সময়কে স্তম্ভিত করতে দেয়, একটি স্তরযুক্ত প্রভাব তৈরি করে। উদাহরণস্বরূপ, আপনি প্রথমে একটি উপাদানের উচ্চতা পরিবর্তন করতে পারেন, তারপরে একটি রঙ পরিবর্তন এবং তারপরে একটি রূপান্তর ঘূর্ণন। এই অ্যানিমেশনগুলি যত্ন সহকারে অর্কেস্ট্রেট করে, আপনি পরিশীলিত এবং পালিশ ইউজার ইন্টারফেস তৈরি করতে পারেন। অতিরিক্তভাবে, CSS অ্যানিমেশনগুলিকে CSS ট্রানজিশনের সাথে একত্রিত করা যেতে পারে বিচ্ছিন্ন এবং অবিচ্ছিন্ন উভয় অবস্থার পরিবর্তনগুলি পরিচালনা করতে, ইন্টারেক্টিভ ওয়েব অভিজ্ঞতা তৈরির জন্য একটি ব্যাপক টুলকিট সরবরাহ করে।

CSS ট্রানজিশন এবং অ্যানিমেশন সম্পর্কে প্রায়শই জিজ্ঞাসিত প্রশ্ন

  1. কিভাবে আমি সিএসএস ব্যবহার করে উচ্চতা 0 থেকে স্বয়ংক্রিয় রূপান্তর করতে পারি?
  2. এটি অর্জন করতে, আপনি নির্দিষ্ট উচ্চতা এবং একটি সংমিশ্রণ ব্যবহার করতে পারেন JavaScript গতিশীলভাবে উচ্চতা মান সেট করতে। বিশুদ্ধ CSS সমাধান সীমিত কারণ height: auto সরাসরি অ্যানিমেটেবল নয়।
  3. CSS এ ট্রানজিশন এবং অ্যানিমেশনের মধ্যে পার্থক্য কি?
  4. সিএসএস ট্রানজিশনগুলি একটি রাজ্য থেকে অন্য রাজ্যে মসৃণভাবে (একটি নির্দিষ্ট সময়ের মধ্যে) সম্পত্তির মান পরিবর্তন করার একটি উপায় প্রদান করে, সাধারণত হোভারের মতো একটি রাষ্ট্র পরিবর্তনে। CSS অ্যানিমেশনগুলি রাজ্য এবং সময় নির্ধারণের জন্য কীফ্রেম ব্যবহার করে আরও জটিল সিকোয়েন্সের অনুমতি দেয়।
  5. আমি কি গতিশীল উচ্চতার উপাদানগুলির জন্য CSS রূপান্তর ব্যবহার করতে পারি?
  6. হ্যাঁ, কিন্তু একটি মসৃণ রূপান্তরের জন্য গতিশীলভাবে উচ্চতার মান সেট করতে আপনাকে সাধারণত আগে থেকে উচ্চতা গণনা করতে হবে বা JavaScript ব্যবহার করতে হবে।
  7. এর উদ্দেশ্য কি overflow: hidden; সিএসএস ট্রানজিশনে সম্পত্তি?
  8. দ্য overflow: hidden; উপাদানের সীমানা অতিক্রম করে এমন কোনো বিষয়বস্তু লুকানোর জন্য সম্পত্তি ব্যবহার করা হয়, যা উচ্চতা পরিবর্তনের সাথে জড়িত পরিষ্কার পরিবর্তনের জন্য অপরিহার্য।
  9. কীভাবে keyframes CSS অ্যানিমেশনে কাজ করেন?
  10. Keyframes CSS অ্যানিমেশনে আপনাকে অ্যানিমেশনের সময় বিভিন্ন পয়েন্টে একটি উপাদানের অবস্থা সংজ্ঞায়িত করতে দেয়। আপনি জটিল অ্যানিমেশন তৈরি করে প্রতিটি কীফ্রেমে বৈশিষ্ট্য এবং তাদের মান নির্দিষ্ট করতে পারেন।
  11. আমি কি CSS রূপান্তর এবং অ্যানিমেশন একত্রিত করতে পারি?
  12. হ্যাঁ, CSS ট্রানজিশন এবং অ্যানিমেশন একত্রিত করা রাষ্ট্রীয় পরিবর্তন এবং ক্রমাগত অ্যানিমেশন উভয়ই পরিচালনা করে একটি সমৃদ্ধ ব্যবহারকারীর অভিজ্ঞতা প্রদান করতে পারে।
  13. কি scrollHeight জাভাস্ক্রিপ্টে?
  14. scrollHeight ওভারফ্লো হওয়ার কারণে পর্দায় দৃশ্যমান না হওয়া বিষয়বস্তু সহ একটি উপাদানের মোট উচ্চতা প্রদান করে। এটি মসৃণ পরিবর্তনের জন্য গতিশীল উচ্চতা গণনা করার জন্য দরকারী।
  15. কিভাবে করে animation-delay কাজ?
  16. দ্য animation-delay একটি অ্যানিমেশন কখন শুরু করা উচিত তা নির্দিষ্ট করে। এটি আপনাকে একটি স্তরযুক্ত প্রভাবের জন্য একাধিক অ্যানিমেশন সিকোয়েন্স করতে দেয়।
  17. কেন :root CSS এ ব্যবহৃত হয়?
  18. দ্য :root সিউডো-ক্লাস ডকুমেন্টের মূল উপাদানকে লক্ষ্য করে। এটি সাধারণত বিশ্বব্যাপী CSS ভেরিয়েবলগুলিকে সংজ্ঞায়িত করতে ব্যবহৃত হয় যা পুরো স্টাইলশীট জুড়ে পুনরায় ব্যবহার করা যেতে পারে।

মসৃণ উচ্চতা ট্রানজিশন সম্পর্কে চূড়ান্ত চিন্তা

সিএসএস-এ উচ্চতা 0 থেকে স্বয়ংক্রিয়ভাবে মসৃণ রূপান্তর অর্জনের জন্য কৌশলগুলির সমন্বয় প্রয়োজন। যদিও বিশুদ্ধ CSS সরলতা অফার করে, এটি পূর্বনির্ধারিত উচ্চতার প্রয়োজনে সীমাবদ্ধ। জাভাস্ক্রিপ্ট সংহত করে, আপনি গতিশীলভাবে গণনা করতে এবং উচ্চতা সেট করতে পারেন, একটি বিরামবিহীন রূপান্তর প্রদান করে। CSS ভেরিয়েবলগুলি ব্যবহার করে গতিশীল মানগুলি পরিচালনা করার জন্য একটি নমনীয় পদ্ধতির প্রস্তাব দিতে পারে। এই পদ্ধতিগুলি একত্রিত করা ডেভেলপারদের সাধারণত উচ্চতা পরিবর্তনের সাথে যুক্ত আকস্মিক পরিবর্তনগুলি ছাড়াই আরও ইন্টারেক্টিভ এবং আকর্ষক ওয়েব অভিজ্ঞতা তৈরি করতে দেয়।