{"id":2806,"date":"2023-10-29T12:10:14","date_gmt":"2023-10-29T04:10:14","guid":{"rendered":"https:\/\/bookmark.tw\/?p=2806"},"modified":"2025-06-25T00:06:43","modified_gmt":"2025-06-24T16:06:43","slug":"jealousy","status":"publish","type":"post","link":"https:\/\/xinliceyan.org\/zh\/jealousy","title":{"rendered":"\u5fcc\u5992\u5fc3\u7406\u7ebf\u4e0a\u514d\u8d39\u6d4b\u9a8c\uff0820\u9898\uff09"},"content":{"rendered":"\n   <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/bootstrap\/5.3.3\/css\/bootstrap.min.css\" rel=\"stylesheet\">\n    <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/bootstrap-icons\/1.11.3\/font\/bootstrap-icons.min.css\" rel=\"stylesheet\">\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/4.4.1\/chart.umd.min.js\"><\/script>\n<!-- \u5f15\u5c0e\u9801 -->\n<section id=\"quizintro9\" data-page=\"intro9\" class=\"container-fluid py-5\">\n    <div class=\"container\" style=\"max-width: 750px;\">\n        <div class=\"row justify-content-center\">\n            <div class=\"col-12\">\n                <!-- \u4e3b\u6a19\u984c\u5340\u57df -->\n                <header class=\"text-center mb-5\">\n                    <h2 class=\"display-4 fw-bold text-primary mb-3\">\n                        <i class=\"bi bi-heart-pulse-fill me-3\"><\/i>\n                        \u5ac9\u5992\u5fc3\u7406\u6e2c\u9a57\n                    <\/h2>\n                    <p class=\"lead text-muted fs-4\">\u63a2\u7d22\u5167\u5fc3\u6df1\u8655\u7684\u7af6\u722d\u617e\u671b\uff0c\u4e86\u89e3\u60a8\u7684\u6210\u529f\u52d5\u6a5f<\/p>\n                <\/header>\n\n                <!-- \u7279\u8272\u5716\u6a19\u5340\u57df -->\n                <div class=\"row g-4 mb-5\">\n                    <div class=\"col-md-4\">\n                        <div class=\"text-center\">\n                            <div class=\"bg-primary bg-opacity-10 rounded-circle d-inline-flex align-items-center justify-content-center mb-3 floating-icon\" style=\"width: 80px; height: 80px;\">\n                                <i class=\"bi bi-graph-up-arrow text-primary fs-1\"><\/i>\n                            <\/div>\n                            <h5 class=\"fw-bold\">\u6210\u529f\u52d5\u6a5f\u5206\u6790<\/h5>\n                            <p class=\"text-muted\">\u6df1\u5ea6\u5256\u6790\u60a8\u7684\u4f01\u5716\u5fc3\u8207\u7af6\u722d\u529b<\/p>\n                        <\/div>\n                    <\/div>\n                    <div class=\"col-md-4\">\n                        <div class=\"text-center\">\n                            <div class=\"bg-success bg-opacity-10 rounded-circle d-inline-flex align-items-center justify-content-center mb-3 floating-icon\" style=\"width: 80px; height: 80px; animation-delay: 0.5s;\">\n                                <i class=\"bi bi-people-fill text-success fs-1\"><\/i>\n                            <\/div>\n                            <h5 class=\"fw-bold\">\u4eba\u969b\u95dc\u4fc2\u6d1e\u5bdf<\/h5>\n                            <p class=\"text-muted\">\u4e86\u89e3\u60a8\u5728\u793e\u4ea4\u4e2d\u7684\u5fc3\u7406\u72c0\u614b<\/p>\n                        <\/div>\n                    <\/div>\n                    <div class=\"col-md-4\">\n                        <div class=\"text-center\">\n                            <div class=\"bg-warning bg-opacity-10 rounded-circle d-inline-flex align-items-center justify-content-center mb-3 floating-icon\" style=\"width: 80px; height: 80px; animation-delay: 1s;\">\n                                <i class=\"bi bi-lightbulb-fill text-warning fs-1\"><\/i>\n                            <\/div>\n                            <h5 class=\"fw-bold\">\u500b\u4eba\u6210\u9577\u5efa\u8b70<\/h5>\n                            <p class=\"text-muted\">\u7372\u5f97\u5c08\u696d\u7684\u5fc3\u7406\u5065\u5eb7\u6307\u5c0e<\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- \u4ecb\u7d39\u6587\u5b57 -->\n                <div class=\"bg-light rounded-4 p-4 p-md-5 mb-5\">\n                    <h4 class=\"fw-bold mb-4 text-center\">\n                        <i class=\"bi bi-info-circle-fill text-info me-2\"><\/i>\n                        \u95dc\u65bc\u9019\u500b\u6e2c\u9a57\n                    <\/h4>\n                    <div class=\"fs-5 lh-lg\">\n                        <p>\u5ac9\u5992\u662f\u4eba\u985e\u7684\u5929\u6027\uff0c\u9069\u5ea6\u7684\u5ac9\u5992\u5fc3\u80fd\u6fc0\u52f5\u6211\u5011\u8ffd\u6c42\u66f4\u597d\u7684\u8868\u73fe\u3002\u4f46\u662f\uff0c\u904e\u5ea6\u7684\u5ac9\u5992\u53ef\u80fd\u6703\u963b\u7919\u500b\u4eba\u6210\u9577\u548c\u4eba\u969b\u95dc\u4fc2\u3002<\/p>\n                        <p>\u9019\u500b\u5c08\u696d\u7684\u5fc3\u7406\u6e2c\u9a57\u5c07\u5e6b\u52a9\u60a8\uff1a<\/p>\n                        <ul class=\"list-unstyled ps-4\">\n                            <li class=\"mb-2\"><i class=\"bi bi-check-circle-fill text-success me-2\"><\/i>\u4e86\u89e3\u81ea\u5df1\u7684\u5ac9\u5992\u7a0b\u5ea6<\/li>\n                            <li class=\"mb-2\"><i class=\"bi bi-check-circle-fill text-success me-2\"><\/i>\u5206\u6790\u7af6\u722d\u52d5\u6a5f\u7684\u4f86\u6e90<\/li>\n                            <li class=\"mb-2\"><i class=\"bi bi-check-circle-fill text-success me-2\"><\/i>\u7372\u5f97\u500b\u4eba\u5316\u7684\u6210\u9577\u5efa\u8b70<\/li>\n                            <li class=\"mb-2\"><i class=\"bi bi-check-circle-fill text-success me-2\"><\/i>\u63d0\u5347\u81ea\u6211\u8a8d\u77e5\u548c\u60c5\u7dd2\u7ba1\u7406<\/li>\n                        <\/ul>\n                    <\/div>\n                <\/div>\n\n                <!-- \u958b\u59cb\u6309\u9215 -->\n                <div class=\"text-center\">\n                    <button \n                        class=\"btn btn-primary btn-lg px-5 py-3 fs-4 fw-bold rounded-pill shadow-lg start-quiz-btn\"\n                        data-action=\"start-quiz\"\n                        style=\"min-width: 250px; background: linear-gradient(45deg, #0d6efd, #6f42c1); border: none;\"\n                    >\n                        <i class=\"bi bi-play-circle-fill me-2\"><\/i>\n                        \u958b\u59cb\u6e2c\u9a57\n                    <\/button>\n                    <p class=\"text-muted mt-3 fs-6\">\n                        <i class=\"bi bi-clock me-1\"><\/i>\n                        \u9810\u8a08\u9700\u8981 5-8 \u5206\u9418\u5b8c\u6210\n                    <\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n<!-- \u6e2c\u9a57\u9801 -->\n<section id=\"quizmain9\" data-page=\"quiz9\" class=\"container-fluid py-5 d-none\">\n    <div class=\"container\" style=\"max-width: 750px;\">\n        <div class=\"row justify-content-center\">\n            <div class=\"col-12\">\n                <!-- \u9032\u5ea6\u689d -->\n                <div class=\"mb-5\">\n                    <div class=\"d-flex justify-content-between align-items-center mb-2\">\n                        <span class=\"text-muted fs-6\">\u6e2c\u9a57\u9032\u5ea6<\/span>\n                        <span class=\"badge bg-primary fs-6\" data-progress-text>\u984c\u76ee 1\/20<\/span>\n                    <\/div>\n                    <div class=\"progress\" style=\"height: 8px;\">\n                        <div class=\"progress-bar bg-gradient\" data-progress-bar style=\"width: 5%\"><\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- \u984c\u76ee\u5340\u57df -->\n                <div class=\"bg-white rounded-4 shadow-sm p-4 p-md-5 mb-4\">\n                    <h3 class=\"fw-bold mb-4 lh-base\" data-question-text style=\"font-size: 22px;\"><\/h3>\n                    \n                    <!-- \u9078\u9805\u5340\u57df -->\n                    <div class=\"d-grid gap-3\" data-options-container><\/div>\n                <\/div>\n\n                <!-- \u5c0e\u822a\u6309\u9215 -->\n                <div class=\"text-center\">\n                    <button \n                        class=\"btn btn-outline-secondary btn-lg px-4 py-2 d-none\" \n                        data-action=\"prev-question\"\n                    >\n                        <i class=\"bi bi-arrow-left me-2\"><\/i>\n                        \u4e0a\u4e00\u984c\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n<!-- \u7d50\u679c\u9801 -->\n<section id=\"quizresult9\" data-page=\"result9\" class=\"container-fluid py-5 d-none\">\n    <div class=\"container\" style=\"max-width: 750px;\">\n        <div class=\"row justify-content-center\">\n            <div class=\"col-12\">\n                <!-- \u7d50\u679c\u6a19\u984c -->\n                <header class=\"text-center mb-5\">\n                    <h2 class=\"display-5 fw-bold text-primary mb-3\">\n                        <i class=\"bi bi-clipboard-data-fill me-3\"><\/i>\n                        \u60a8\u7684\u6e2c\u9a57\u7d50\u679c\n                    <\/h2>\n                    <div class=\"bg-primary bg-opacity-10 rounded-4 p-4 mb-4\">\n                        <div class=\"display-6 fw-bold text-primary mb-2\" data-total-score>85 \u5206<\/div>\n                        <h4 class=\"text-dark mb-0\" data-result-category>\u9069\u5ea6\u5ac9\u5992\u578b<\/h4>\n                    <\/div>\n                <\/header>\n\n                <!-- \u8a55\u5206\u5206\u5e03\u5716\u8868 -->\n                <div class=\"bg-white rounded-4 shadow-sm p-4 mb-4\">\n                    <h5 class=\"fw-bold text-center mb-4\">\n                        <i class=\"bi bi-bar-chart-fill text-info me-2\"><\/i>\n                        \u60a8\u5728\u6574\u9ad4\u8a55\u5206\u4e2d\u7684\u4f4d\u7f6e\n                    <\/h5>\n                    <div class=\"chart-container\">\n                        <canvas id=\"distributionChart\" style=\"max-height: 120px;\"><\/canvas>\n                    <\/div>\n                <\/div>\n\n                <!-- \u591a\u7dad\u5206\u6790\u5716\u8868 -->\n                <div class=\"bg-white rounded-4 shadow-sm p-4 mb-4\">\n                    <h5 class=\"fw-bold text-center mb-4\">\n                        <i class=\"bi bi-radar me-2\"><\/i>\n                        \u591a\u7dad\u5fc3\u7406\u5206\u6790\n                    <\/h5>\n                    <div class=\"d-flex justify-content-center\">\n                        <canvas id=\"resultChart\" style=\"max-width: 400px; max-height: 400px;\"><\/canvas>\n                    <\/div>\n                <\/div>\n\n                <!-- \u500b\u6027\u5316\u5206\u6790 -->\n                <div class=\"bg-light rounded-4 p-4 p-md-5 mb-4\">\n                    <h5 class=\"fw-bold mb-4\">\n                        <i class=\"bi bi-person-check-fill text-success me-2\"><\/i>\n                        \u500b\u4eba\u5316\u5206\u6790\u5831\u544a\n                    <\/h5>\n                    <div class=\"fs-5 lh-lg\" data-detailed-analysis><\/div>\n                <\/div>\n\n                <!-- \u591a\u7dad\u5efa\u8b70 -->\n                <div class=\"bg-white rounded-4 shadow-sm p-4 mb-5\" data-multi-analysis><\/div>\n\n                <!-- \u91cd\u65b0\u6e2c\u8a66\u6309\u9215 -->\n                <div class=\"text-center\">\n                    <button \n                        class=\"btn btn-primary btn-lg px-5 py-3 fs-4 fw-bold rounded-pill shadow restart-quiz-btn\"\n                        data-action=\"restart-quiz\"\n                        style=\"min-width: 250px; background: linear-gradient(45deg, #0d6efd, #6f42c1); border: none;\"\n                    >\n                        <i class=\"bi bi-arrow-clockwise me-2\"><\/i>\n                        \u91cd\u65b0\u6e2c\u8a66\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n<style>\n\/* \u81ea\u5b9a\u7fa9\u6a23\u5f0f *\/\n.start-quiz-btn:hover, .restart-quiz-btn:hover {\n    transform: translateY(-2px);\n    transition: all 0.3s ease;\n}\n\n.progress-bar {\n    transition: width 0.5s ease;\n}\n\n\/* \u9078\u9805\u5361\u7247\u6a23\u5f0f *\/\n.option-card {\n    cursor: pointer;\n    transition: all 0.3s ease;\n    border: 2px solid #e9ecef;\n    min-height: 80px;\n}\n\n.option-card:hover {\n    border-color: #0d6efd;\n    box-shadow: 0 4px 12px rgba(13, 110, 253, 0.15);\n    transform: translateY(-1px);\n}\n\n.option-card.selected {\n    border-color: #0d6efd;\n    background-color: #f8f9ff;\n    box-shadow: 0 4px 12px rgba(13, 110, 253, 0.2);\n}\n\n.option-indicator {\n    width: 24px;\n    height: 24px;\n    border: 2px solid #dee2e6;\n    border-radius: 50%;\n    background-color: white;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition: all 0.3s ease;\n    flex-shrink: 0;\n}\n\n.option-card:hover .option-indicator {\n    border-color: #0d6efd;\n}\n\n.option-card.selected .option-indicator {\n    background-color: #0d6efd;\n    border-color: #0d6efd;\n    color: white;\n}\n\n.option-text {\n    color: #495057;\n    font-size: 18px;\n    line-height: 1.5;\n}\n\n.floating-icon {\n    animation: float 3s ease-in-out infinite;\n}\n\n@keyframes float {\n    0%, 100% { transform: translateY(0px); }\n    50% { transform: translateY(-10px); }\n}\n\n\/* \u5716\u8868\u5bb9\u5668 *\/\n.chart-container {\n    position: relative;\n    height: 120px;\n    width: 100%;\n}\n\n@media (max-width: 768px) {\n    .display-4 { font-size: 2rem; }\n    .fs-4 { font-size: 1.1rem !important; }\n    .btn-lg { padding: 0.75rem 2rem; }\n    .option-text { font-size: 16px; }\n    .chart-container { height: 140px; }\n}\n<\/style>\n\n<script>\n(function() {\n    'use strict';\n\n    \/\/ \u6e2c\u9a57\u6578\u64da\n    const quizData = {\n        questions: [\n            \"\u4f60\u7684\u670b\u53cb\u60f3\u79df\u623f\u5b50\uff0c\u4f60\u7d66\u4ed6\u5efa\u8b70\uff0c\u4e26\u63d0\u9192\u4ed6\u627e\u623f\u5b50\u4e26\u4e0d\u5bb9\u6613\uff0c\u96e3\u627e\u4e5f\u4e0d\u8981\u6c23\u9912\uff0c\u7d50\u679c\u4ed6\u7b2c\u4e00\u5929\u5c31\u627e\u5230\u6bd4\u4f60\u66f4\u597d\u7684\u623f\u5b50\uff0c\u79df\u91d1\u4e5f\u6bd4\u8f03\u4fbf\u5b9c\u3002\",\n            \"\u4f60\u7684\u8001\u95c6\u51fa\u570b\u5ea6\u5047\u5169\u500b\u6708\uff0c\u884c\u7a0b\u5305\u62ec\u4f60\u5922\u5bd0\u4ee5\u6c42\u60f3\u53bb\u73a9\u7684\u65e5\u672c\u3001\u6b50\u6d32\u548c\u6771\u5357\u4e9e\u3002\",\n            \"\u4f60\u7684\u540c\u4e8b\u5a36\u4e86\u4e00\u500b\u6709\u9322\u6709\u5730\u4f4d\u53c8\u5982\u82b1\u4f3c\u7389\u7684\u5b0c\u59bb\uff0c\u4f60\u767c\u89ba\u4f60\u7684\u8001\u95c6\u9080\u8acb\u9019\u4f4d\u540c\u4e8b\u548c\u4ed6\u7684\u65b0\u5a5a\u59bb\u5b50\u5171\u9910\u3001\u6b61\u6558\u3002\",\n            \"\u4f60\u7684\u516c\u53f8\u6709\u5167\u90e8\u9032\u4fee\u8ab2\u7a0b\uff0c\u8001\u95c6\u5728\u6700\u5f8c\u4e00\u5802\u8ab2\u51fa\u73fe\u4e86\uff0c\u4e26\u4e14\u554f\u4e86\u4e00\u500b\u4e0d\u592a\u597d\u7b54\u7684\u554f\u984c\u3002\u4f60\u8209\u624b\u60f3\u56de\u7b54\uff0c\u4f46\u8001\u95c6\u537b\u8b93\u5176\u4ed6\u540c\u4e8b\u56de\u7b54\uff0c\u5c0d\u65b9\u7684\u7b54\u6848\u5e73\u6de1\u7121\u5947\uff0c\u8001\u95c6\u537b\u7a31\u8b9a\u4ed6\u771f\u6b63\u77ad\u89e3\u4e86\u8ab2\u7a0b\u7684\u91cd\u9ede\u3002\",\n            \"\u6709\u4e00\u5929\u4f60\u767c\u73fe\u6709\u4f4d\u80fd\u529b\u9060\u4e0d\u5982\u4f60\u7684\u540c\u4e8b\u6703\u4f7f\u7528\u4e00\u5411\u4ee4\u4f60\u982d\u75db\u7684\u96fb\u8166\u7a0b\u5f0f\u3002\",\n            \"\u4f60\u53c3\u52a0\u67d0\u500b\u6709\u62bd\u734e\u7684\u805a\u6703\uff0c\u4f60\u56e0\u70ba\u5148\u96e2\u5e2d\u800c\u628a\u734e\u5238\u7d66\u4e86\u5225\u4eba\uff0c\u5f8c\u4f86\u9019\u5f35\u734e\u5238\u4e2d\u4e86\u4f60\u4e00\u76f4\u60f3\u8981\u64c1\u6709\u7684\u6700\u65b0\u6b3e\u7b46\u96fb\u3002\",\n            \"\u4f60\u7121\u610f\u4e2d\u807d\u5230\u8001\u95c6\u544a\u8a34\u4e00\u4f4d\u540c\u4e8b\uff0c\u8981\u4ed6\u8ca0\u8cac\u4e00\u500b\u91cd\u8981\u7684\u65b9\u6848\uff0c\u800c\u9019\u500b\u65b9\u6848\u537b\u662f\u4f60\u7b2c\u4e00\u500b\u63d0\u51fa\u4f86\u7684\u3002\",\n            \"\u4f60\u5728\u516c\u53f8\u4e2d\u4e00\u76f4\u6c92\u4ec0\u9ebc\u6210\u5c31\uff0c\u4e00\u4f4d\u60c5\u6cc1\u548c\u4f60\u5dee\u4e0d\u591a\uff0c\u4e5f\u5728\u53d7\u82e6\u53d7\u96e3\u7684\u540c\u4e8b\uff0c\u537b\u7e7c\u627f\u4e86\u4e00\u7b46\u610f\u5916\u4e4b\u8ca1\uff0c\u60f3\u63d0\u524d\u9000\u4f11\u5230\u570b\u5916\u65c5\u904a\u3002\",\n            \"\u4f60\u66fe\u7d93\u8a13\u7df4\u51fa\u4f86\u7684\u4e00\u540d\u540c\u4e8b\u525b\u525b\u965e\u5b98\uff0c\u5c31\u8981\u8b8a\u6210\u4f60\u7684\u4e0a\u53f8\u3002\",\n            \"\u4f60\u63d0\u51fa\u4e86\u4e00\u500b\u8a2d\u8a08\u597d\u3001\u66f4\u7701\u9322\u3001\u529f\u80fd\u9ad8\u7684\u8a08\u756b\uff0c\u4f46\u516c\u53f8\u537b\u6c7a\u5b9a\u63a1\u7528\u53e6\u4e00\u500b\u4e00\u5207\u90fd\u8f03\u905c\u8272\u7684\u8a08\u756b\u3002\",\n            \"\u4f60\u5949\u547d\u70ba\u4e00\u500b\u80fd\u529b\u4e0d\u7b97\u597d\u7684\u540c\u4e8b\u6536\u62fe\u6b98\u5c40\uff0c\u6240\u82b1\u7684\u529f\u592b\u53ef\u80fd\u6bd4\u4e00\u958b\u59cb\u5c31\u8b93\u4f60\u8ca0\u8cac\u66f4\u591a\u3002\u7576\u4f60\u5927\u529f\u544a\u6210\u5f8c\uff0c\u4f60\u7684\u540c\u4e8b\u537b\u6436\u8d70\u4e86\u6240\u6709\u7684\u529f\u52de\u3002\",\n            \"\u4f60\u7684\u9130\u5c45\u5341\u5206\u4e4f\u5473\uff0c\u623f\u5b50\u5e73\u6de1\u7121\u5947\uff0c\u592a\u592a\u770b\u4e86\u4ee4\u4eba\u751f\u53ad\uff0c\u537b\u88ab\u9080\u8acb\u53c3\u52a0\u67d0\u540d\u4eba\u7684\u665a\u5bb4\u3002\",\n            \"\u4f60\u8f9b\u8f9b\u82e6\u82e6\u5de5\u4f5c\u4e86\u5169\u5e74\uff0c\u773c\u770b\u8457\u5c31\u8981\u5347\u5230\u4f60\u4e00\u76f4\u5df4\u671b\u7684\u8077\u52d9\uff0c\u6c92\u60f3\u5230\u4e00\u500b\u525b\u9032\u516c\u53f8\u624d\u534a\u5e74\uff0c\u9817\u6709\u624d\u83ef\u53c8\u7a4d\u6975\u9032\u53d6\u7684\u5c0f\u5925\u5b50\u537b\u6377\u8db3\u5148\u767b\u4e86\u3002\",\n            \"\u4f60\u70ba\u4e86\u67d0\u9805\u9577\u671f\u7814\u7a76\u8a08\u756b\u800c\u63d0\u51fa\u7d93\u8cbb\u88dc\u52a9\u7533\u8acb\uff0c\u4f46\u4e00\u4f4d\u6709\u9322\u7684\u540c\u4e8b\u537b\u5229\u7528\u5bb6\u4e16\u53d6\u5f97\u4e86\u88dc\u52a9\u3002\",\n            \"\u4f60\u53bb\u62dc\u8a2a\u4e00\u4f4d10\u5e74\u672a\u66fe\u8b00\u9762\uff0c\u5e74\u7d00\u6bd4\u4f60\u5927\u7684\u8868\u89aa\uff0c\u7d50\u679c\u767c\u73fe\u5c0d\u65b9\u770b\u8d77\u4f86\u6bd4\u4f60\u5e74\u8f15\uff0c\u8eab\u9ad4\u597d\u50cf\u4e5f\u6bd4\u4f60\u597d\u3002\",\n            \"\u6709\u4e00\u500b\u4f60\u9817\u70ba\u719f\u8b58\u7684\u4eba\u4e0d\u65b7\u5730\u5728\u8df3\u69fd\uff0c\u8077\u52d9\u90fd\u6bd4\u4f60\u597d\uff0c\u56e0\u70ba\u4ed6\u770b\u8d77\u4f86\u80fd\u529b\u5f88\u597d\u3002\u4e8b\u5be6\u4e0a\uff0c\u4f60\u77e5\u9053\u4ed6\u662f\u300c\u91d1\u7389\u5176\u5916\uff0c\u6557\u7d6e\u5176\u4e2d\u300d\u7684\u90a3\u985e\u4eba\u3002\",\n            \"\u5c0d\u65bc\u4f60\u7684\u5de5\u4f5c\uff0c\u4f60\u7684\u80fd\u529b\u7dbd\u7dbd\u6709\u9918\uff0c\u4f46\u6bcf\u6b21\u548c\u4e0a\u53f8\u8ac7\u8a71\u7e3d\u89ba\u5f97\u6709\u58d3\u529b\uff0c\u4e0d\u80fd\u5b8c\u5168\u8868\u9054\u81ea\u5df1\u4e26\u53d6\u6085\u4e0a\u53f8\u3002\u800c\u5176\u4ed6\u80fd\u529b\u5dee\u7684\u540c\u4e8b\uff0c\u537b\u80fd\u7de8\u9020\u597d\u807d\u7684\u6545\u4e8b\uff0c\u8a0e\u597d\u4e26\u535a\u5f97\u4e0a\u53f8\u7684\u6b61\u5fc3\u3002\",\n            \"\u56e0\u70ba\u516c\u53f8\u7d93\u8cbb\u77ed\u7f3a\u800c\u51cd\u7d50\u52a0\u85aa\uff0c\u4f7f\u5f97\u4f60\u7070\u5fc3\u8fad\u8077\u3002\u5f8c\u4f86\u4f60\u5728\u4e00\u500b\u805a\u6703\u4e2d\u78b0\u5230\u4f60\u7684\u7e7c\u4efb\u8005\uff0c\u767c\u73fe\u5c0d\u65b9\u5728\u4e00\u5e74\u4e4b\u5167\u52a0\u85aa\u56db\u6b21\uff0c\u539f\u56e0\u662f\u548c\u8001\u95c6\u5efa\u7acb\u4e86\u67d0\u7a2e\u300c\u7279\u6b8a\u95dc\u4fc2\u300d\u3002\",\n            \"\u4f60\u81ea\u9858\u5728\u9031\u672b\u52a0\u73ed\uff0c\u5e0c\u671b\u5f15\u8d77\u8001\u95c6\u6ce8\u610f\u3002\u5468\u4e00\u4e0a\u73ed\u537b\u767c\u73fe\u5f88\u591a\u540c\u4e8b\u9031\u672b\u5230\u8001\u95c6\u5bb6\u73a9\uff0c\u5c31\u662f\u4f60\u4e0d\u5728\u5834\u3002\",\n            \"\u4f60\u6975\u529b\u60f3\u64fa\u812b\u4e00\u4f4d\u54c1\u884c\u52d5\u4f5c\u53ef\u8b70\u7684\u719f\u4eba\uff0c\u4f46\u537b\u767c\u73fe\u5a92\u9ad4\u5c08\u6b04\u5c0d\u4ed6\u63a8\u5d07\u5099\u81f3\u3002\"\n        ],\n        options: [\n            { text: \"\u771f\u6b63\u70ba\u5225\u4eba\u611f\u5230\u9ad8\u8208\", score: 1 },\n            { text: \"\u5b8c\u5168\u4e0d\u5728\u610f\", score: 2 },\n            { text: \"\u6216\u8a31\u6709\u4e9b\u61ca\u60f1\", score: 3 },\n            { text: \"\u7a0d\u6709\u4e0d\u6085\", score: 4 },\n            { text: \"\u78ba\u5be6\u6703\u5fcc\u5992\", score: 5 },\n            { text: \"\u61a4\u61a4\u4e0d\u5e73\uff0c\u5916\u5e36\u5fcc\u5992\", score: 6 },\n            { text: \"\u9707\u6012\u4e0d\u5df2\", score: 7 }\n        ]\n    };\n\n    \/\/ \u7d50\u679c\u5206\u6790\n    const resultAnalysis = {\n        \"20-47\": {\n            category: \"\u7f3a\u4e4f\u4f01\u5716\u5fc3\u578b\",\n            description: \"\u60a8\u53ef\u80fd\u7f3a\u4e4f\u4f01\u5716\u5fc3\uff0c\u5c0d\u6210\u529f\u50be\u5411\u65bc\u300c\u611b\u6068\u4ea4\u52a0\u300d\u3002\u9019\u53ef\u80fd\u53cd\u6620\u51fa\u5f37\u70c8\u7684\u5bb3\u6015\u5931\u6557\u5fc3\u7406\uff0c\u4f7f\u60a8\u5728\u9762\u5c0d\u76ee\u6a19\u6642\u671b\u800c\u537b\u6b65\u3002\u53e6\u4e00\u65b9\u9762\uff0c\u60a8\u7684\u614b\u5ea6\u4e5f\u53ef\u80fd\u53cd\u6620\u4e00\u7a2e\u6177\u6168\u5bec\u5927\u7684\u4e16\u754c\u89c0\u3002\u4e0d\u904e\uff0c\u5f97\u5206\u9019\u9ebc\u4f4e\u4e26\u4e0d\u662f\u6210\u529f\u8005\u61c9\u6709\u7684\u7279\u8cea\uff0c\u5efa\u8b70\u60a8\u6aa2\u8996\u81ea\u5df1\u7684\u76ee\u6a19\u8a2d\u5b9a\u548c\u6210\u5c31\u52d5\u6a5f\u3002\",\n            advice: \"\u5efa\u8b70\u57f9\u990a\u9069\u5ea6\u7684\u7af6\u722d\u610f\u8b58\uff0c\u8a2d\u5b9a\u53ef\u9054\u6210\u7684\u76ee\u6a19\uff0c\u9010\u6b65\u5efa\u7acb\u81ea\u4fe1\u5fc3\u3002\",\n            color: \"#28a745\"\n        },\n        \"48-59\": {\n            category: \"\u77e5\u8db3\u5e38\u6a02\u578b\", \n            description: \"\u60a8\u901a\u5e38\u6bd4\u8f03\u61c2\u5f97\u77e5\u8db3\uff0c\u9019\u53ef\u80fd\u8207\u5e74\u6b72\u589e\u9577\u6709\u95dc\u3002\u4e0d\u904e\uff0c\u8a31\u591a\u5f97\u5206\u504f\u4f4e\u7684\u4eba\u986f\u793a\u51fa\u5f37\u70c8\u7684\u5bb3\u6015\u6210\u529f\u5fc3\u7406\uff0c\u4e26\u6709\u76f8\u7576\u9ad8\u7a0b\u5ea6\u7684\u8cac\u4efb\u7126\u616e\u3002\u60a8\u53ef\u80fd\u9ad4\u5bdf\u5230\u6210\u529f\u5fc5\u7136\u4f34\u96a8\u8cac\u4efb\uff0c\u56e0\u6b64\u4e0d\u9858\u50cf\u5225\u4eba\u90a3\u6a23\u7a4d\u6975\u8ffd\u6c42\u6210\u529f\u3002\",\n            advice: \"\u5efa\u8b70\u91d0\u6e05\u81ea\u5df1\u4e0d\u592a\u6703\u5ac9\u5992\u662f\u56e0\u70ba\u5b89\u65bc\u73fe\u72c0\uff0c\u9084\u662f\u4e0d\u9858\u9762\u5c0d\u6210\u529f\u53ef\u80fd\u5e36\u4f86\u7684\u8ca0\u9762\u53cd\u61c9\u3002\",\n            color: \"#20c997\"\n        },\n        \"60-82\": {\n            category: \"\u9069\u5ea6\u5ac9\u5992\u578b\",\n            description: \"\u60a8\u901a\u5e38\u6709\u5f37\u70c8\u617e\u671b\u60f3\u6539\u8b8a\u73fe\u72c0\uff0c\u4e26\u8a8d\u70ba\u5ac9\u5992\u662f\u4e00\u7a2e\u8ca0\u9762\u611f\u89ba\u3002\u5c0d\u6210\u529f\u800c\u8a00\uff0c\u9019\u662f\u4e00\u7a2e\u5e73\u8861\u4e14\u4ee4\u4eba\u8212\u9069\u7684\u72c0\u614b\u3002\u96d6\u7136\u60a8\u6c92\u6709\u5f88\u65fa\u76db\u7684\u4f01\u5716\u5fc3\u548c\u7af6\u722d\u6027\uff0c\u4f46\u80fd\u5920\u7a69\u6b65\u524d\u9032\u9054\u5230\u76ee\u6a19\uff0c\u4e0d\u6703\u56e0\u904e\u5ea6\u5ac9\u5992\u800c\u7126\u616e\u3002\",\n            advice: \"\u7dad\u6301\u73fe\u6709\u7684\u5e73\u8861\u72c0\u614b\uff0c\u7e7c\u7e8c\u4ee5\u7a69\u5065\u7684\u6b65\u4f10\u8ffd\u6c42\u76ee\u6a19\uff0c\u9019\u662f\u5f88\u5065\u5eb7\u7684\u5fc3\u7406\u72c0\u614b\u3002\",\n            color: \"#0d6efd\"\n        },\n        \"83-92\": {\n            category: \"\u7af6\u722d\u9032\u53d6\u578b\",\n            description: \"\u60a8\u5bb9\u6613\u5403\u918b\uff0c\u4f01\u5716\u5fc3\u548c\u7af6\u722d\u6027\u90fd\u5f88\u5f37\u3002\u82e5\u80fd\u5c0f\u5fc3\u63a7\u5236\uff0c\u9019\u7a2e\u7279\u8cea\u662f\u76f8\u7576\u5bf6\u8cb4\u7684\u8cc7\u7522\u3002\u4f46\u5982\u679c\u4e0d\u52a0\u63a7\u5236\uff0c\u60a8\u53ef\u80fd\u6703\u70ba\u4e86\u722d\u53d6\u5225\u4eba\u5df2\u7d93\u64c1\u6709\u7684\uff0c\u537b\u5fd8\u4e86\u4ec0\u9ebc\u662f\u91cd\u8981\u800c\u503c\u5f97\u722d\u53d6\u7684\u3002\u7814\u7a76\u986f\u793a\uff0c\u6210\u529f\u5973\u6027\u7684\u5f97\u5206\u5f80\u5f80\u9ad8\u65bc\u7537\u6027\uff0c\u53cd\u6620\u51fa\u5728\u8077\u5834\u7af6\u722d\u4e2d\u300c\u611b\u62fc\u624d\u6703\u8d0f\u300d\u7684\u81ea\u89ba\u3002\",\n            advice: \"\u53ea\u8981\u597d\u597d\u63a7\u5236\u5c0d\u5225\u4eba\u7684\u5ac9\u5992\uff0c\u5c07\u7af6\u722d\u529b\u5c0e\u5411\u6b63\u9762\u76ee\u6a19\uff0c\u60a8\u7684\u6210\u529f\u6307\u65e5\u53ef\u5f85\u3002\",\n            color: \"#fd7e14\"\n        },\n        \"93-140\": {\n            category: \"\u6975\u5ea6\u5ac9\u5992\u578b\",\n            description: \"\u5f9e\u5fc3\u7406\u5b78\u89d2\u5ea6\u4f86\u770b\uff0c\u9019\u500b\u5f97\u5206\u7bc4\u570d\u662f\u5371\u96aa\u7684\u3002\u6975\u7aef\u7684\u5ac9\u5992\u6703\u4f7f\u4eba\u7121\u6cd5\u6b63\u78ba\u8861\u91cf\u81ea\u5df1\u7684\u50f9\u503c\u3002\u5982\u679c\u4e0d\u771f\u6b63\u4e86\u89e3\u81ea\u5df1\u7684\u76ee\u6a19\uff0c\u4eba\u751f\u5c31\u6703\u8b8a\u6210\u4e0d\u65b7\u56de\u61c9\u5225\u4eba\u7684\u4f5c\u70ba\uff0c\u800c\u975e\u4e00\u9023\u4e32\u7684\u81ea\u6211\u5be6\u73fe\u3002\u60a8\u78ba\u5be6\u6709\u65fa\u76db\u7684\u4f01\u5716\u5fc3\u548c\u7af6\u722d\u6027\uff0c\u4f46\u7531\u65bc\u5f97\u5206\u592a\u9ad8\uff0c\u9019\u4e9b\u7279\u8cea\u90fd\u5e36\u6709\u61a4\u6012\u548c\u6575\u610f\uff0c\u53cd\u800c\u7f3a\u4e4f\u6210\u529f\u6240\u9700\u7684\u6210\u719f\u548c\u63a7\u5236\u529b\u3002\",\n            advice: \"\u5efa\u8b70\u5c0b\u6c42\u5c08\u696d\u5fc3\u7406\u8aee\u5546\uff0c\u5b78\u7fd2\u60c5\u7dd2\u7ba1\u7406\u548c\u81ea\u6211\u8a8d\u77e5\u6280\u5de7\uff0c\u5c07\u5ac9\u5992\u8f49\u5316\u70ba\u6b63\u9762\u7684\u6210\u9577\u52d5\u529b\u3002\",\n            color: \"#dc3545\"\n        }\n    };\n\n    \/\/ \u61c9\u7528\u7a0b\u5f0f\u985e\u5225\n    class JealousyQuiz {\n        constructor() {\n            this.currentQuestion = 0;\n            this.answers = [];\n            this.totalScore = 0;\n            this.charts = {};\n            \n            this.initElements();\n            this.bindEvents();\n        }\n\n        initElements() {\n            \/\/ \u5feb\u53d6DOM\u5143\u7d20\n            this.elements = {\n                introSection: document.querySelector('[data-page=\"intro9\"]'),\n                quizSection: document.querySelector('[data-page=\"quiz9\"]'),\n                resultSection: document.querySelector('[data-page=\"result9\"]'),\n                \n                progressText: document.querySelector('[data-progress-text]'),\n                progressBar: document.querySelector('[data-progress-bar]'),\n                questionText: document.querySelector('[data-question-text]'),\n                optionsContainer: document.querySelector('[data-options-container]'),\n                prevBtn: document.querySelector('[data-action=\"prev-question\"]'),\n                \n                totalScore: document.querySelector('[data-total-score]'),\n                resultCategory: document.querySelector('[data-result-category]'),\n                detailedAnalysis: document.querySelector('[data-detailed-analysis]'),\n                multiAnalysis: document.querySelector('[data-multi-analysis]'),\n                \n                startBtn: document.querySelector('[data-action=\"start-quiz\"]'),\n                restartBtn: document.querySelector('[data-action=\"restart-quiz\"]')\n            };\n        }\n\n        bindEvents() {\n            \/\/ \u4f7f\u7528\u4e8b\u4ef6\u59d4\u8a17\u8655\u7406\u6240\u6709\u9ede\u64ca\u4e8b\u4ef6\n            document.addEventListener('click', (e) => {\n                e.preventDefault();\n                \n                const action = e.target.closest('[data-action]')?.dataset.action;\n                const optionIndex = e.target.closest('[data-option-index]')?.dataset.optionIndex;\n                \n                if (action) {\n                    switch(action) {\n                        case 'start-quiz':\n                            this.startQuiz();\n                            break;\n                        case 'prev-question':\n                            this.prevQuestion();\n                            break;\n                        case 'restart-quiz':\n                            this.restartQuiz();\n                            break;\n                    }\n                }\n                \n                if (optionIndex !== undefined) {\n                    this.selectOption(parseInt(optionIndex));\n                }\n            });\n        }\n\n        startQuiz() {\n            this.showSection('quiz9');\n            this.loadQuestion();\n            this.scrollToTop();\n        }\n\n        loadQuestion() {\n            const question = quizData.questions[this.currentQuestion];\n            this.elements.questionText.textContent = question;\n            \n            this.updateProgress();\n            this.renderOptions();\n            this.updateNavigation();\n        }\n\n        renderOptions() {\n            const container = this.elements.optionsContainer;\n            container.innerHTML = '';\n            \n            quizData.options.forEach((option, index) => {\n                const isSelected = this.answers[this.currentQuestion] === index;\n                \n                const optionCard = document.createElement('div');\n                optionCard.className = `card option-card p-3 ${isSelected ? 'selected' : ''}`;\n                optionCard.dataset.optionIndex = index;\n                \/\/ \u91cd\u7f6epointer-events\uff0c\u786e\u4fdd\u65b0\u9898\u76ee\u7684\u9009\u9879\u53ef\u4ee5\u70b9\u51fb\n                optionCard.style.pointerEvents = 'auto';\n                \n                optionCard.innerHTML = `\n                    <div class=\"d-flex align-items-center\">\n                        <div class=\"option-indicator me-3\">\n                            ${isSelected ? '<i class=\"bi bi-check-lg\"><\/i>' : ''}\n                        <\/div>\n                        <div class=\"option-text flex-grow-1\">\n                            <span class=\"fw-bold me-2\">${String.fromCharCode(65 + index)}.<\/span>\n                            ${option.text}\n                        <\/div>\n                    <\/div>\n                `;\n                \n                container.appendChild(optionCard);\n            });\n        }\n\n        selectOption(optionIndex) {\n            \/\/ \u9632\u6b62\u91cd\u590d\u70b9\u51fb - \u5982\u679c\u5df2\u7ecf\u9009\u62e9\u4e86\u7b54\u6848\uff0c\u4e0d\u5141\u8bb8\u91cd\u590d\u9009\u62e9\n            if (this.answers[this.currentQuestion] !== undefined) {\n                return;\n            }\n            \n            this.answers[this.currentQuestion] = optionIndex;\n            \n            \/\/ \u66f4\u65b0\u8996\u89ba\u72c0\u614b\n            const cards = this.elements.optionsContainer.querySelectorAll('.option-card');\n            cards.forEach((card, index) => {\n                const indicator = card.querySelector('.option-indicator');\n                \n                if (index === optionIndex) {\n                    card.classList.add('selected');\n                    indicator.innerHTML = '<i class=\"bi bi-check-lg\"><\/i>';\n                } else {\n                    card.classList.remove('selected');\n                    indicator.innerHTML = '';\n                }\n            });\n            \n            \/\/ \u7981\u7528\u6240\u6709\u9009\u9879\u5361\u7247\uff0c\u9632\u6b62\u91cd\u590d\u70b9\u51fb\n            cards.forEach(card => {\n                card.style.pointerEvents = 'none';\n            });\n            \n            \/\/ \u5224\u65ad\u662f\u5426\u4e3a\u6700\u540e\u4e00\u9898\n            const isLastQuestion = this.currentQuestion === quizData.questions.length - 1;\n            \n            \/\/ \u5ef6\u9072\u9032\u5165\u4e0b\u4e00\u984c\u6216\u7d50\u675f\u6e2c\u9a57\n            setTimeout(() => {\n                if (isLastQuestion) {\n                    this.finishQuiz();\n                } else {\n                    this.nextQuestion();\n                }\n            }, 600);\n        }\n\n        nextQuestion() {\n            this.currentQuestion++;\n            this.loadQuestion();\n        }\n\n        prevQuestion() {\n            if (this.currentQuestion > 0) {\n                this.currentQuestion--;\n                this.loadQuestion();\n            }\n        }\n\n        updateProgress() {\n            const progress = ((this.currentQuestion + 1) \/ quizData.questions.length) * 100;\n            this.elements.progressBar.style.width = `${progress}%`;\n            this.elements.progressText.textContent = `\u984c\u76ee ${this.currentQuestion + 1}\/${quizData.questions.length}`;\n        }\n\n        updateNavigation() {\n            if (this.currentQuestion > 0) {\n                this.elements.prevBtn.classList.remove('d-none');\n            } else {\n                this.elements.prevBtn.classList.add('d-none');\n            }\n        }\n\n        finishQuiz() {\n            this.calculateScore();\n            this.showResults();\n            this.showSection('result9');\n            this.scrollToTop();\n        }\n\n        calculateScore() {\n            this.totalScore = this.answers.reduce((sum, answerIndex) => {\n                return sum + quizData.options[answerIndex].score;\n            }, 0);\n        }\n\n        showResults() {\n            const result = this.getResultCategory();\n            \n            this.elements.totalScore.textContent = `${this.totalScore} \u5206`;\n            this.elements.resultCategory.textContent = result.category;\n            this.elements.detailedAnalysis.innerHTML = `\n                <p class=\"mb-4\">${result.description}<\/p>\n                <div class=\"alert alert-info border-0\">\n                    <h6 class=\"fw-bold mb-2\">\n                        <i class=\"bi bi-lightbulb me-2\"><\/i>\u5c08\u696d\u5efa\u8b70\n                    <\/h6>\n                    <p class=\"mb-0\">${result.advice}<\/p>\n                <\/div>\n            `;\n            \n            this.createDistributionChart();\n            this.createRadarChart();\n            this.generateMultiDimensionalAnalysis();\n        }\n\n        getResultCategory() {\n            const score = this.totalScore;\n            \n            if (score <= 47) return resultAnalysis[\"20-47\"];\n            if (score <= 59) return resultAnalysis[\"48-59\"];\n            if (score <= 82) return resultAnalysis[\"60-82\"];\n            if (score <= 92) return resultAnalysis[\"83-92\"];\n            return resultAnalysis[\"93-140\"];\n        }\n\n        createDistributionChart() {\n            \/\/ \u92b7\u6bc0\u73fe\u6709\u5716\u8868\n            if (this.charts.distribution) {\n                this.charts.distribution.destroy();\n            }\n\n            const ctx = document.getElementById('distributionChart').getContext('2d');\n            \n            \/\/ \u8a55\u5206\u5340\u9593\u6578\u64da\uff08\u6309\u5206\u6578\u7bc4\u570d\uff09\n            const ranges = [\n                { label: '\u7f3a\u4e4f\u4f01\u5716\u5fc3\u578b', min: 20, max: 47, color: '#28a745' },\n                { label: '\u77e5\u8db3\u5e38\u6a02\u578b', min: 48, max: 59, color: '#20c997' },\n                { label: '\u9069\u5ea6\u5ac9\u5992\u578b', min: 60, max: 82, color: '#0d6efd' },\n                { label: '\u7af6\u722d\u9032\u53d6\u578b', min: 83, max: 92, color: '#fd7e14' },\n                { label: '\u6975\u5ea6\u5ac9\u5992\u578b', min: 93, max: 140, color: '#dc3545' }\n            ];\n\n            \/\/ \u70ba\u4e86\u5716\u8868\u986f\u793a\u7f8e\u89c0\uff0c\u4f7f\u7528\u76f8\u7b49\u5bec\u5ea6\u800c\u975e\u5be6\u969b\u5206\u6578\u7bc4\u570d\n            const data = [1, 1, 1, 1, 1]; \/\/ \u6bcf\u500b\u5340\u9593\u7b49\u5bec\n\n            this.charts.distribution = new Chart(ctx, {\n                type: 'bar',\n                data: {\n                    labels: ['\u8a55\u5206\u5206\u5e03'],\n                    datasets: ranges.map((range, index) => ({\n                        label: range.label,\n                        data: [data[index]],\n                        backgroundColor: range.color + 'CC',\n                        borderColor: range.color,\n                        borderWidth: 1\n                    }))\n                },\n                options: {\n                    indexAxis: 'y',\n                    responsive: true,\n                    maintainAspectRatio: false,\n                    plugins: {\n                        legend: {\n                            display: false\n                        },\n                        tooltip: {\n                            callbacks: {\n                                title: () => '',\n                                label: (context) => {\n                                    const range = ranges[context.datasetIndex];\n                                    return `${range.label}: ${range.min}-${range.max}\u5206`;\n                                }\n                            }\n                        }\n                    },\n                    scales: {\n                        x: {\n                            stacked: true,\n                            display: false,\n                            beginAtZero: true\n                        },\n                        y: {\n                            stacked: true,\n                            display: false\n                        }\n                    },\n                    layout: {\n                        padding: {\n                            top: 30,\n                            bottom: 70,\n                            left: 10,\n                            right: 10\n                        }\n                    }\n                },\n                plugins: [{\n                    id: 'scoreMarker',\n                    afterDraw: (chart) => {\n                        this.addScoreMarker(chart, ranges);\n                    }\n                }, {\n                    id: 'legend',\n                    afterDraw: (chart) => {\n                        this.drawCustomLegend(chart, ranges);\n                    }\n                }]\n            });\n        }\n\n        addScoreMarker(chart, ranges) {\n            const ctx = chart.ctx;\n            const chartArea = chart.chartArea;\n            \n            \/\/ \u627e\u51fa\u7528\u6236\u5206\u6578\u6240\u5c6c\u7684\u5340\u9593\n            let targetRangeIndex = -1;\n            for (let i = 0; i < ranges.length; i++) {\n                if (this.totalScore >= ranges[i].min && this.totalScore <= ranges[i].max) {\n                    targetRangeIndex = i;\n                    break;\n                }\n            }\n            \n            if (targetRangeIndex === -1) return;\n            \n            \/\/ \u8a08\u7b97\u6a19\u8a18\u4f4d\u7f6e\uff08\u6bcf\u500b\u5340\u9593\u7b49\u5bec\u4f54\u7528\u5716\u8868\u5bec\u5ea6\u76841\/5\uff09\n            const rangeWidth = chartArea.width \/ ranges.length;\n            const range = ranges[targetRangeIndex];\n            \n            \/\/ \u8a08\u7b97\u5728\u7576\u524d\u5340\u9593\u5167\u7684\u76f8\u5c0d\u4f4d\u7f6e\uff080-1\uff09\n            const relativePosition = (this.totalScore - range.min) \/ (range.max - range.min);\n            \n            \/\/ \u8a08\u7b97\u5be6\u969bX\u5ea7\u6a19\u4f4d\u7f6e\n            const xPos = chartArea.left + (targetRangeIndex * rangeWidth) + (relativePosition * rangeWidth);\n            const yPos = chartArea.top + chartArea.height \/ 2;\n            \n            \/\/ \u78ba\u4fdd\u6a19\u8a18\u4e0d\u6703\u8d85\u51fa\u5716\u8868\u908a\u754c\n            const clampedXPos = Math.max(chartArea.left + 10, Math.min(xPos, chartArea.right - 10));\n            \n            \/\/ \u7e6a\u88fd\u7d05\u8272\u6a19\u8a18\u9ede\n            ctx.save();\n            ctx.fillStyle = '#dc3545';\n            ctx.strokeStyle = '#ffffff';\n            ctx.lineWidth = 3;\n            ctx.beginPath();\n            ctx.arc(clampedXPos, yPos, 8, 0, 2 * Math.PI);\n            ctx.fill();\n            ctx.stroke();\n            \n            \/\/ \u6dfb\u52a0\u5206\u6578\u6a19\u8a18\n            ctx.fillStyle = '#ffffff';\n            ctx.font = 'bold 10px sans-serif';\n            ctx.textAlign = 'center';\n            ctx.fillText(this.totalScore, clampedXPos, yPos + 3);\n            \n            \/\/ \u6dfb\u52a0\u6307\u5411\u7dda\n            ctx.strokeStyle = '#dc3545';\n            ctx.lineWidth = 2;\n            ctx.beginPath();\n            ctx.moveTo(clampedXPos, yPos - 8);\n            ctx.lineTo(clampedXPos, yPos - 25);\n            ctx.stroke();\n            \n            \/\/ \u6dfb\u52a0\u300c\u60a8\u7684\u5206\u6578\u300d\u6a19\u7c64\n            ctx.fillStyle = '#dc3545';\n            ctx.font = 'bold 12px sans-serif';\n            ctx.textAlign = 'center';\n            ctx.fillText(`\u60a8\u7684\u5206\u6578: ${this.totalScore}`, clampedXPos, yPos - 28);\n            \n            ctx.restore();\n        }\n\n        drawCustomLegend(chart, ranges) {\n            const ctx = chart.ctx;\n            const chartArea = chart.chartArea;\n            \n            \/\/ \u5728\u5716\u8868\u5e95\u90e8\u7e6a\u88fd\u5716\u4f8b\n            const legendY = chartArea.bottom + 15;\n            const itemsPerRow = window.innerWidth < 768 ? 2 : 5; \/\/ \u79fb\u52d5\u7aef\u986f\u793a2\u500b\uff0c\u684c\u9762\u986f\u793a5\u500b\n            const rows = Math.ceil(ranges.length \/ itemsPerRow);\n            \n            ctx.save();\n            ctx.font = '11px sans-serif';\n            ctx.textAlign = 'center';\n            \n            ranges.forEach((range, index) => {\n                const row = Math.floor(index \/ itemsPerRow);\n                const col = index % itemsPerRow;\n                const itemWidth = chartArea.width \/ itemsPerRow;\n                \n                const x = chartArea.left + (col + 0.5) * itemWidth;\n                const y = legendY + (row * 35);\n                \n                \/\/ \u7e6a\u88fd\u984f\u8272\u65b9\u584a\n                ctx.fillStyle = range.color;\n                ctx.fillRect(x - 6, y, 12, 8);\n                \n                \/\/ \u7e6a\u88fd\u6a19\u7c64\n                ctx.fillStyle = '#333';\n                ctx.font = '10px sans-serif';\n                ctx.fillText(range.label, x, y + 18);\n                ctx.font = '9px sans-serif';\n                ctx.fillStyle = '#666';\n                ctx.fillText(`${range.min}-${range.max}`, x, y + 30);\n            });\n            \n            ctx.restore();\n        }\n\n        createRadarChart() {\n            \/\/ \u92b7\u6bc0\u73fe\u6709\u5716\u8868\n            if (this.charts.radar) {\n                this.charts.radar.destroy();\n            }\n\n            const ctx = document.getElementById('resultChart').getContext('2d');\n            \n            \/\/ \u8a08\u7b97\u591a\u7dad\u5206\u6578\n            const dimensions = this.calculateDimensions();\n\n            this.charts.radar = new Chart(ctx, {\n                type: 'radar',\n                data: {\n                    labels: ['\u8077\u5834\u5ac9\u5992', '\u500b\u4eba\u5ac9\u5992', '\u7af6\u722d\u6027', '\u81ea\u63a7\u529b', '\u60c5\u7dd2\u7a69\u5b9a'],\n                    datasets: [{\n                        label: '\u60a8\u7684\u5206\u6578',\n                        data: [\n                            dimensions.workplace,\n                            dimensions.personal,\n                            dimensions.competitiveness,\n                            dimensions.selfControl,\n                            dimensions.emotionalStability\n                        ],\n                        backgroundColor: 'rgba(13, 110, 253, 0.2)',\n                        borderColor: 'rgba(13, 110, 253, 1)',\n                        borderWidth: 3,\n                        pointBackgroundColor: 'rgba(13, 110, 253, 1)',\n                        pointBorderColor: '#fff',\n                        pointBorderWidth: 2,\n                        pointRadius: 6\n                    }]\n                },\n                options: {\n                    responsive: true,\n                    maintainAspectRatio: true,\n                    plugins: {\n                        legend: {\n                            display: false\n                        }\n                    },\n                    scales: {\n                        r: {\n                            beginAtZero: true,\n                            max: 100,\n                            ticks: {\n                                stepSize: 20,\n                                font: {\n                                    size: 12\n                                },\n                                callback: function(value) {\n                                    return value + '%';\n                                }\n                            },\n                            pointLabels: {\n                                font: {\n                                    size: 16,\n                                    weight: 'bold'\n                                },\n                                color: '#495057'\n                            },\n                            grid: {\n                                color: 'rgba(0,0,0,0.1)'\n                            }\n                        }\n                    }\n                }\n            });\n        }\n\n        calculateDimensions() {\n            \/\/ \u8077\u5834\u76f8\u95dc\u984c\u76ee (0,2,3,6,9,10,12,13,16,17,18)\n            const workplaceQuestions = [0,2,3,6,9,10,12,13,16,17,18];\n            \/\/ \u500b\u4eba\u76f8\u95dc\u984c\u76ee (1,4,5,7,8,11,14,15,19)\n            const personalQuestions = [1,4,5,7,8,11,14,15,19];\n            \/\/ \u7af6\u722d\u6027\u984c\u76ee (3,4,6,9,10,12,13,16,17)\n            const competitivenessQuestions = [3,4,6,9,10,12,13,16,17];\n            \n            return {\n                workplace: this.calculateDimensionScore(workplaceQuestions),\n                personal: this.calculateDimensionScore(personalQuestions),\n                competitiveness: this.calculateDimensionScore(competitivenessQuestions),\n                selfControl: Math.max(100 - (this.totalScore \/ 140 * 100), 0),\n                emotionalStability: this.calculateEmotionalStability()\n            };\n        }\n\n        calculateDimensionScore(questionIndices) {\n            const relevantAnswers = questionIndices\n                .filter(index => index < this.answers.length)\n                .map(index => this.answers[index]);\n            \n            if (relevantAnswers.length === 0) return 0;\n            \n            const totalScore = relevantAnswers.reduce((sum, answerIndex) => {\n                return sum + quizData.options[answerIndex].score;\n            }, 0);\n            \n            const maxPossibleScore = relevantAnswers.length * 7;\n            return Math.round(totalScore \/ maxPossibleScore * 100);\n        }\n\n        calculateEmotionalStability() {\n            \/\/ \u8a08\u7b97\u9078\u64c7\u6975\u7aef\u9078\u9805\u7684\u983b\u7387\n            const extremeChoices = this.answers.filter(answer => answer === 0 || answer === 6).length;\n            const stabilityScore = Math.max(100 - (extremeChoices \/ this.answers.length * 100), 0);\n            return Math.round(stabilityScore);\n        }\n\n        generateMultiDimensionalAnalysis() {\n            const dimensions = this.calculateDimensions();\n            const analysis = [];\n            \n            \/\/ \u5206\u6790\u5404\u7dad\u5ea6\n            if (dimensions.workplace > 70) {\n                analysis.push({\n                    title: '\u8077\u5834\u5ac9\u5992\u5206\u6790',\n                    content: '\u60a8\u5728\u8077\u5834\u74b0\u5883\u4e2d\u8f03\u5bb9\u6613\u7522\u751f\u5ac9\u5992\u60c5\u7dd2\uff0c\u7279\u5225\u662f\u9762\u5c0d\u540c\u4e8b\u7684\u5347\u9077\u6216\u6210\u5c31\u6642\u3002\u5efa\u8b70\u57f9\u990a\u66f4\u958b\u653e\u7684\u5fc3\u614b\uff0c\u5c07\u4ed6\u4eba\u7684\u6210\u529f\u8996\u70ba\u5b78\u7fd2\u6a5f\u6703\u3002',\n                    icon: 'bi-briefcase-fill',\n                    color: 'warning'\n                });\n            }\n            \n            if (dimensions.personal > 70) {\n                analysis.push({\n                    title: '\u500b\u4eba\u5ac9\u5992\u5206\u6790',\n                    content: '\u60a8\u5c0d\u4ed6\u4eba\u7684\u500b\u4eba\u6210\u5c31\u6216\u5e78\u904b\u4e8b\u4ef6\u8f03\u70ba\u654f\u611f\u3002\u5efa\u8b70\u5c08\u6ce8\u65bc\u81ea\u5df1\u7684\u6210\u9577\u8ecc\u8de1\uff0c\u907f\u514d\u8207\u4ed6\u4eba\u904e\u5ea6\u6bd4\u8f03\u3002',\n                    icon: 'bi-person-heart',\n                    color: 'info'\n                });\n            }\n            \n            if (dimensions.competitiveness > 80) {\n                analysis.push({\n                    title: '\u7af6\u722d\u6027\u5206\u6790',\n                    content: '\u60a8\u64c1\u6709\u5f37\u70c8\u7684\u7af6\u722d\u617e\u671b\uff0c\u9019\u662f\u6210\u529f\u7684\u91cd\u8981\u52d5\u529b\u3002\u95dc\u9375\u662f\u8981\u5c07\u7af6\u722d\u529b\u5c0e\u5411\u5efa\u8a2d\u6027\u7684\u76ee\u6a19\uff0c\u800c\u975e\u60e1\u6027\u7af6\u722d\u3002',\n                    icon: 'bi-trophy-fill',\n                    color: 'success'\n                });\n            }\n            \n            if (dimensions.selfControl < 50) {\n                analysis.push({\n                    title: '\u81ea\u63a7\u529b\u63d0\u5347\u5efa\u8b70',\n                    content: '\u5efa\u8b70\u52a0\u5f37\u60c5\u7dd2\u7ba1\u7406\u6280\u5de7\uff0c\u5b78\u7fd2\u51a5\u60f3\u6216\u6b63\u5ff5\u7df4\u7fd2\uff0c\u63d0\u9ad8\u5c0d\u5ac9\u5992\u60c5\u7dd2\u7684\u89ba\u5bdf\u548c\u63a7\u5236\u80fd\u529b\u3002',\n                    icon: 'bi-shield-check',\n                    color: 'primary'\n                });\n            }\n            \n            if (dimensions.emotionalStability < 60) {\n                analysis.push({\n                    title: '\u60c5\u7dd2\u7a69\u5b9a\u6027',\n                    content: '\u60a8\u7684\u60c5\u7dd2\u53cd\u61c9\u8f03\u70ba\u6975\u7aef\uff0c\u5efa\u8b70\u5c0b\u6c42\u5c08\u696d\u5fc3\u7406\u8aee\u5546\uff0c\u5b78\u7fd2\u66f4\u5e73\u8861\u7684\u60c5\u7dd2\u8655\u7406\u65b9\u5f0f\u3002',\n                    icon: 'bi-heart-pulse',\n                    color: 'danger'\n                });\n            }\n            \n            \/\/ \u5982\u679c\u6c92\u6709\u7279\u5225\u9700\u8981\u95dc\u6ce8\u7684\u7dad\u5ea6\uff0c\u7d66\u4e88\u6b63\u9762\u8a55\u50f9\n            if (analysis.length === 0) {\n                analysis.push({\n                    title: '\u5fc3\u7406\u5065\u5eb7\u72c0\u614b\u826f\u597d',\n                    content: '\u60a8\u5728\u5404\u500b\u7dad\u5ea6\u90fd\u8868\u73fe\u5747\u8861\uff0c\u5177\u6709\u5065\u5eb7\u7684\u7af6\u722d\u5fc3\u614b\u548c\u826f\u597d\u7684\u60c5\u7dd2\u7ba1\u7406\u80fd\u529b\u3002\u7e7c\u7e8c\u4fdd\u6301\u9019\u7a2e\u5e73\u8861\u7684\u5fc3\u7406\u72c0\u614b\u3002',\n                    icon: 'bi-check-circle-fill',\n                    color: 'success'\n                });\n            }\n            \n            \/\/ \u6e32\u67d3\u5206\u6790\u7d50\u679c\n            const container = this.elements.multiAnalysis;\n            container.innerHTML = `\n                <h5 class=\"fw-bold mb-4\">\n                    <i class=\"bi bi-graph-up text-primary me-2\"><\/i>\n                    \u591a\u7dad\u5ea6\u6df1\u5ea6\u5206\u6790\n                <\/h5>\n                <div class=\"row g-3\">\n                    ${analysis.map(item => `\n                        <div class=\"col-12\">\n                            <div class=\"alert alert-${item.color} border-0 mb-0\">\n                                <h6 class=\"fw-bold mb-2\">\n                                    <i class=\"${item.icon} me-2\"><\/i>\n                                    ${item.title}\n                                <\/h6>\n                                <p class=\"mb-0\">${item.content}<\/p>\n                            <\/div>\n                        <\/div>\n                    `).join('')}\n                <\/div>\n            `;\n        }\n\n        showSection(sectionName) {\n            \/\/ \u96b1\u85cf\u6240\u6709\u5340\u6bb5\n            [this.elements.introSection, this.elements.quizSection, this.elements.resultSection]\n                .forEach(section => {\n                    if (section) section.classList.add('d-none');\n                });\n            \n            \/\/ \u986f\u793a\u6307\u5b9a\u5340\u6bb5\n            const targetSection = document.querySelector(`[data-page=\"${sectionName}\"]`);\n            if (targetSection) {\n                targetSection.classList.remove('d-none');\n            }\n        }\n\n        restartQuiz() {\n            \/\/ \u91cd\u7f6e\u6240\u6709\u72c0\u614b\n            this.currentQuestion = 0;\n            this.answers = [];\n            this.totalScore = 0;\n            \n            \/\/ \u92b7\u6bc0\u5716\u8868\n            Object.values(this.charts).forEach(chart => {\n                if (chart) chart.destroy();\n            });\n            this.charts = {};\n            \n            \/\/ \u8fd4\u56de\u5f15\u5c0e\u9801\n            this.showSection('intro9');\n            this.scrollToTop();\n        }\n\n        scrollToTop() {\n            window.scrollTo({\n                top: 0,\n                behavior: 'smooth'\n            });\n        }\n    }\n\n    \/\/ \u521d\u59cb\u5316\u61c9\u7528\u7a0b\u5f0f\n    document.addEventListener('DOMContentLoaded', () => {\n        new JealousyQuiz();\n    });\n\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\u5fc3\u7406\u5b66\u5bb6\u8bbe\u8ba1\u4e86\u4e00\u4e2a\u300c\u5fcc\u5992\u6210\u529f\u91cf\u8868\u300d\uff0c\u53d1\u73b0\u5fcc\u5992\u5fc3\u7684\u5f3a\u5f31\u786e\u5b9e\u4e0e\u4e00\u4e2a\u4eba\u7684\u6210\u5c31\u6709\u5173\u3002\u800c\u5728\u6210\u529f\u7684\u4eba\u5f53\u4e2d\uff0c\u5e74\u7eaa\u5927\u548c\u5e74\u7eaa\u8f7b\u7684\u4eba\u5fcc\u5992\u7684\u7a0b\u5ea6\u6709\u663e\u8457\u7684\u4e0d\u540c\uff0c\u7537\u4eba\u548c\u5973\u4eba\u4e5f\u4e0d\u76f8\u540c<\/p>","protected":false},"author":19,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"normal-width-container","site-content-style":"unboxed","site-sidebar-style":"default","ast-global-header-display":"disabled","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[167,169,160],"tags":[226],"class_list":["post-2806","post","type-post","status-publish","format-standard","hentry","category-personality","category-psychological-symptom-scales","category-attitude-scales","tag-jealousy"],"_links":{"self":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/2806","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/comments?post=2806"}],"version-history":[{"count":1,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/2806\/revisions"}],"predecessor-version":[{"id":10232,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/2806\/revisions\/10232"}],"wp:attachment":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/media?parent=2806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/categories?post=2806"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/tags?post=2806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}