আমি কীভাবে ক্যানভাস আকারে উইন্ডো আকার পরিবর্তন করতে চাইলে গতিময়ভাবে আরও সাধারণ প্রশ্নের উত্তর দেব। গৃহীত উত্তর যথাযথভাবে হ্যান্ডল করে যেখানে প্রস্থ এবং উচ্চতা উভয়ই 100% হওয়ার কথা, যা এর জন্য জিজ্ঞাসা করা হয়েছিল, তবে এটি ক্যানভাসের দিক অনুপাতকেও পরিবর্তন করবে will অনেক ব্যবহারকারী উইন্ডো পুনরায় আকারে ক্যানভাসটিকে পুনরায় আকার দিতে চান তবে দিক অনুপাতটি অচ্ছুত রাখার সময়। এটি সঠিক প্রশ্ন নয়, তবে এটি "ফিট করে", কেবল প্রশ্নটিকে কিছুটা সাধারণ প্রসঙ্গে ফেলেছে।
উইন্ডোতে কিছু দিক অনুপাত (প্রস্থ / উচ্চতা) থাকবে এবং ক্যানভাস অবজেক্টটিও তাই হবে। আপনি কীভাবে এই দুটি দিক অনুপাত একে অপরের সাথে সম্পর্কিত করতে চান তা একটি বিষয় যা আপনার সম্পর্কে পরিষ্কার হতে হবে, সেই প্রশ্নের কোনও "এক আকার সবই মানায় না" - আপনি যা করতে পারেন তার কয়েকটি সাধারণ ক্ষেত্রে আমি যাব চাই।
আপনার সর্বাধিক গুরুত্বপূর্ণ বিষয় সম্পর্কে পরিষ্কার হতে হবে: এইচটিএমএল ক্যানভাস অবজেক্টের একটি প্রস্থের বৈশিষ্ট্য এবং উচ্চতার বৈশিষ্ট্য রয়েছে; এবং তারপরে একই বস্তুর CSS এর প্রস্থ এবং উচ্চতা বিশিষ্টতাও রয়েছে। এই দুটি প্রস্থ এবং উচ্চতা পৃথক, উভয়ই বিভিন্ন জিনিসের জন্য কার্যকর।
প্রস্থ এবং উচ্চতার বৈশিষ্ট্যগুলি পরিবর্তন করা একটি পদ্ধতি যা দিয়ে আপনি সর্বদা আপনার ক্যানভাসের আকার পরিবর্তন করতে পারেন, তবে তারপরে আপনাকে সমস্ত কিছু পুনরায় রঙ করতে হবে, যা সময় লাগবে এবং সর্বদা প্রয়োজনীয় নয়, কারণ কিছু পরিমাণের আকার আপনি পরিবর্তন করতে পারেন CSS বৈশিষ্ট্যগুলির মাধ্যমে, আপনি ক্যানভাস পুনরায় আঁকেন না এমন ক্ষেত্রে।
আমি উইন্ডো পুনরায় আকারে যা ঘটতে চাইবে তার 4 টি মামলা (সম্পূর্ণ পর্দার ক্যানভাস দিয়ে শুরু করা)
1: আপনি প্রস্থটি 100% বজায় রাখতে চান এবং আপনি চান অনুপাতটি যেমন ছিল তেমন থাকে। সেক্ষেত্রে আপনার ক্যানভাস পুনরায় আঁকার দরকার নেই; এমনকি আপনার উইন্ডো রাইজ হ্যান্ডলারের প্রয়োজন নেই। তোমার যা দরকার তা হল
$(ctx.canvas).css("width", "100%");
যেখানে সিটিএক্স হল আপনার ক্যানভাস প্রসঙ্গ context ফিডাল : রিসাইজবাইউইথ
2: আপনি উভয় প্রস্থ এবং উচ্চতা 100% থাকতে চান এবং আপনি দিক অনুপাতের ফলে পরিবর্তিত আকারের প্রসারিত চিত্রের প্রভাব দেখতে চান। এখন, আপনার এখনও ক্যানভাস পুনরায় আঁকার দরকার নেই, তবে আপনার উইন্ডোর পুনরায় আকার হ্যান্ডলারের প্রয়োজন। হ্যান্ডলারে, আপনি করেন
$(ctx.canvas).css("height", window.innerHeight);
ফিডল: জগাখিচির সাথে sp
3: আপনি উভয় প্রস্থ এবং উচ্চতা 100% থাকতে চান তবে দিক অনুপাতের পরিবর্তনের উত্তরটি চিত্রটিকে প্রসারিত করা থেকে আলাদা কিছু। তারপরে আপনাকে পুনরায় ছবি আঁকতে হবে এবং গ্রহণযোগ্য উত্তরে যেভাবে রূপরেখা দেওয়া হয়েছে সেভাবে করুন do
ভাজা: redraw
4: আপনি পৃষ্ঠা লোডে প্রস্থ এবং উচ্চতা 100% হতে চান তবে তারপরে অবিচ্ছিন্ন থাকুন (উইন্ডোর আকার পরিবর্তন করতে কোনও প্রতিক্রিয়া নেই)।
ভাঁজ: স্থির
মোড সেট করা আছে যেখানে লাইন 63 ব্যতীত সমস্ত ফিডলগুলির অভিন্ন কোড রয়েছে। আপনি আপনার স্থানীয় মেশিনে চলার জন্য ফিডল কোডটিও অনুলিপি করতে পারেন, সেক্ষেত্রে আপনি কোয়েরিস্ট্রিং আর্গুমেন্টের মাধ্যমে মোডটি নির্বাচন করতে পারেন, মোড = পুনরায় আঁকুন?