আপনি আপনার টেবিলটি ওভারলেল করে নিখুঁত অবস্থানের জন্য একটি এসভিজি উপাদান এবং CSS স্টাইল ব্যবহার করতে পারেন। এবং জাভাস্ক্রিপ্ট DOM API এর মত সূচনা এবং শেষ পয়েন্ট পানgetBoundingClientRect()
এখানে একটি ডেমো রয়েছে। (কৌণিক দিয়ে তৈরি, তবে আপনি এটি যে কোনও জায়গায় ব্যবহার করতে পারেন P খাঁটি জাভাস্ক্রিপ্ট উদাহরণ নীচে দেখুন))
const startElement = document.querySelector('#start');
const endElement = document.querySelector('#end');
const startRect = startElement.getBoundingClientRect();
const endRect = endElement.getBoundingClientRect();
const startX = startRect.right;
const startY = startRect.top;
const endX = endRect.left;
const endY = endRect.bottom;
আপনি শুরু এবং পরিবর্তনটি গতিময়ভাবে করতে পারেন। অবস্থানগুলি পাওয়ার জন্য আপনাকে কেবল পদ্ধতিটি প্রত্যাহার করতে হবে। নোট করুন যে আমি তীরটির তীরটি রাখার জন্য বাম, শীর্ষ, ডান, বোতামটি ব্যবহার করি। আপনি উভয় অবস্থানের তুলনা করে কেন্দ্র বিন্দু বা প্রান্তটি গণনা করতে পারেন।
এবং আপনাকে টেবিলের উপরে এসভিজি রাখতে হবে। আপনি সেট সিএসএস করে এটি করতে পারেন position: absolute; left: 0; top: 0
। তবে মনে রাখবেন যে আপনার পিতামাতারও সেই বৈশিষ্টটি থাকা উচিত position
। যেমন position: relative
।
আপডেট: এখানে একটি খাঁটি জাভাস্ক্রিপ্ট ডেমো রয়েছে। সমস্ত ফাইল দেখতে বামে ক্লিক করুন এবং জেএস স্টাফগুলি দেখতে index.js নির্বাচন করুন। (ভিএস কোডের মতো)
সম্পূর্ণ কোড:
<table style="position: absolute; left: 0; top: 0;">
<tr>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td id="end">9</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
<tr>
<td id="start">0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
<svg style="position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: 1">
<defs>
<marker id="arrow" markerWidth="10" markerHeight="10" refX="5" refY="3" orient="auto"
markerUnits="strokeWidth" viewBox="0 0 20 20">
<path d="M0,0 L0,6 L9,3 z" fill="#f00" />
</marker>
</defs>
<line id="svg-line" stroke="#f00" stroke-width="5"
marker-end="url(#arrow)" />
</svg>
</table>
<script>
const svgLine = document.querySelector('#svg-line');
const startElement = document.querySelector("#start");
const endElement = document.querySelector("#end");
const startRect = startElement.getBoundingClientRect();
const endRect = endElement.getBoundingClientRect();
const startX = startRect.right;
const startY = startRect.top;
const endX = endRect.left;
const endY = endRect.bottom;
svgLine.setAttribute('x1', startX);
svgLine.setAttribute('y1', startY);
svgLine.setAttribute('x2', endX);
svgLine.setAttribute('y2', endY);
</script>
কেবলমাত্র একটি নতুন খালি এইচটিএমএল ফাইলের উপরের কোডটি অনুলিপি করুন এবং এটি আপনার ব্রাউজারে চালান।
BTW। আপনি এটি একটি ক্যানভাস দিয়েও করতে পারেন। (এসভিজির বিকল্প)