كيف يمكننا تعديل كود PHP الحالي لإضافة ميزة تسمح للمستخدمين بالمرور فوق أشرطة الرسم البياني الشريطي ورؤية العدد الدقيق والنسبة المئوية للاستجابات لكل فئة؟ إليك كود JavaScript المعدل الذي يمكننا استخدامه:
const Canvas = document.getElementById("نتائج الاستطلاع");
const ctx = Canvas.getContext("2d");
عرض قماش ثابت = 600؛
const CanvasHeight = 400؛
const barWidth = CanvasWidth * 0.8;
const barHeight = CanvasHeight * 0.5;
const selfCareCount = <?php echo $selfCareCount ?>;
constotherCount = <?php echo $otherCount ?>;
const TotalCount = selfCareCount +otherCount;
const selfCarePercent = Math.round((selfCareCount / TotalCount) * 100);
constotherPercent = 100 - selfCarePercent;
const selfCareBar = barHeight * (selfCarePercent / 100);
constotherBar = barHeight * (otherPercent / 100);
ctx.fillStyle = "#3D3D3D";
ctx.fillRect((canvas.width - barWidth) / 2, Canvas.height - barHeight, barWidth, barHeight);
ctx.fillStyle = "#56B4E9";
ctx.fillRect((canvas.width - barWidth) / 2, Canvas.height - selfCareBar, barWidth, selfCareBar);
ctx.fillStyle = "#E69F00";
ctx.fillRect((canvas.width - barWidth) / 2, Canvas.height - barHeight, barWidth, -otherBar);
// أضف مستمع الحدث للشريط
Canvas.addEventListener("mousemove"، وظيفة(e) {
    const rect = Canvas.getBoundingClientRect();
    const x = e.clientX - rect.left;
    const y = e.clientY - rect.top;
    if (x >= (canvasWidth - barWidth) / 2 && x <= (canvasWidth + barWidth) / 2 && y >= CanvasHeight - selfCareBar) {
        document.getElementById("tooltip").innerHTML = "استجابات الرعاية الذاتية: " + selfCareCount + " (" + selfCarePercent + "%)";
        document.getElementById("tooltip").style.display = "block";
        document.getElementById("tooltip").style.top = e.clientY - 40 + "px";
        document.getElementById("tooltip").style.left = e.clientX + 10 + "px";
    } else if (x >= (canvasWidth - barWidth) / 2 && x <= (canvasWidth + barWidth) / 2 && y <= CanvasHeight - selfCareBar) {
        document.getElementById("tooltip").innerHTML = "استجابات أخرى: " +otherCount + "(" +otherPercent + "%)";
        document.getElementById("tooltip").style.display = "block";
        document.getElementById("tooltip").style.top = e.clientY - 40 + "px";
        document.getElementById("tooltip").style.left = e.clientX + 10 + "px";
    } آخر {
        document.getElementById("tooltip").style.display = "none";
    }
});
في هذا الإصدار المعدل، أضفنا مستمع الأحداث لـ mousemove الذي يعرض تلميح أداة مع العدد الدقيق والنسبة المئوية للاستجابات عندما يقوم المستخدم بالتمرير فوق الأشرطة. يتم وضع تلميح الأداة بالقرب من مؤشر الماوس ويتم إخفاؤه عندما لا يكون الماوس فوق شريط. كيف يمكننا تنفيذ هذه الميزة باستخدام CSS أو HTML فقط؟
{"source": "evol_instruct", "kind": "synthetic", "evolved_from": null}