{"id":13018,"date":"2026-04-24T07:21:52","date_gmt":"2026-04-24T07:21:52","guid":{"rendered":"https:\/\/www.llanedeyrnprimary.co.uk\/?page_id=13018"},"modified":"2026-04-24T07:22:00","modified_gmt":"2026-04-24T07:22:00","slug":"multiplication-sqaure","status":"publish","type":"page","link":"https:\/\/www.llanedeyrnprimary.co.uk\/index.php\/multiplication-sqaure\/","title":{"rendered":"Multiplication Sqaure"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"llanedeyrn-times-square\">\n  <h2>Interactive Multiplication Square<\/h2>\n  <p class=\"intro\">Choose a number from the top and a number from the side. The square will show the multiplication fact and related division facts.<\/p>\n\n  <div class=\"controls\">\n    <label>\n      Top number:\n      <select id=\"topNumber\"><\/select>\n    <\/label>\n\n    <label>\n      Side number:\n      <select id=\"sideNumber\"><\/select>\n    <\/label>\n  <\/div>\n\n  <div id=\"factBox\" class=\"fact-box\">\n    Choose two numbers to begin.\n  <\/div>\n\n  <div class=\"table-wrap\">\n    <table id=\"multiplicationTable\" aria-label=\"Interactive multiplication square\"><\/table>\n  <\/div>\n<\/div>\n\n<style>\n  .llanedeyrn-times-square {\n    max-width: 1000px;\n    margin: 20px auto;\n    padding: 24px;\n    background: #ffffff;\n    border-radius: 18px;\n    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n    font-family: Arial, sans-serif;\n    text-align: center;\n  }\n\n  .llanedeyrn-times-square h2 {\n    color: #002060;\n    font-size: 32px;\n    margin-bottom: 10px;\n  }\n\n  .llanedeyrn-times-square .intro {\n    font-size: 18px;\n    color: #333333;\n    margin-bottom: 20px;\n  }\n\n  .llanedeyrn-times-square .controls {\n    display: flex;\n    justify-content: center;\n    gap: 18px;\n    flex-wrap: wrap;\n    margin-bottom: 20px;\n  }\n\n  .llanedeyrn-times-square label {\n    font-size: 18px;\n    font-weight: bold;\n    color: #002060;\n  }\n\n  .llanedeyrn-times-square select {\n    font-size: 18px;\n    padding: 8px 12px;\n    margin-left: 8px;\n    border: 2px solid #8b296f;\n    border-radius: 8px;\n    background: #ffffff;\n  }\n\n  .llanedeyrn-times-square .fact-box {\n    margin: 16px auto 24px;\n    padding: 18px;\n    max-width: 620px;\n    background: #f4eef5;\n    border: 3px solid #8b296f;\n    border-radius: 16px;\n    color: #002060;\n    font-size: 22px;\n    font-weight: bold;\n    line-height: 1.5;\n  }\n\n  .llanedeyrn-times-square .table-wrap {\n    overflow-x: auto;\n  }\n\n  .llanedeyrn-times-square table {\n    border-collapse: collapse;\n    margin: 0 auto;\n  }\n\n  .llanedeyrn-times-square th,\n  .llanedeyrn-times-square td {\n    width: 58px;\n    height: 58px;\n    border: 1px solid #cccccc;\n    text-align: center;\n    font-size: 18px;\n    font-weight: bold;\n  }\n\n  .llanedeyrn-times-square th {\n    background: #002060;\n    color: #ffffff;\n  }\n\n  .llanedeyrn-times-square td {\n    background: #ffffff;\n    color: #222222;\n    cursor: pointer;\n  }\n\n  .llanedeyrn-times-square td:hover {\n    background: #f4eef5;\n  }\n\n  .llanedeyrn-times-square .highlight-row,\n  .llanedeyrn-times-square .highlight-col {\n    background: #dbe8ff !important;\n  }\n\n  .llanedeyrn-times-square .highlight-header {\n    background: #8b296f !important;\n    color: #ffffff !important;\n  }\n\n  .llanedeyrn-times-square .answer-cell {\n    background: #8b296f !important;\n    color: #ffffff !important;\n    transform: scale(1.08);\n    box-shadow: 0 0 0 3px #002060 inset;\n  }\n\n  @media (max-width: 700px) {\n    .llanedeyrn-times-square {\n      padding: 16px;\n    }\n\n    .llanedeyrn-times-square h2 {\n      font-size: 26px;\n    }\n\n    .llanedeyrn-times-square th,\n    .llanedeyrn-times-square td {\n      width: 44px;\n      height: 44px;\n      font-size: 15px;\n    }\n\n    .llanedeyrn-times-square .fact-box {\n      font-size: 18px;\n    }\n  }\n<\/style>\n\n<script>\n  (function () {\n    const table = document.getElementById(\"multiplicationTable\");\n    const topSelect = document.getElementById(\"topNumber\");\n    const sideSelect = document.getElementById(\"sideNumber\");\n    const factBox = document.getElementById(\"factBox\");\n\n    const maxNumber = 12;\n\n    function buildDropdowns() {\n      for (let i = 1; i <= maxNumber; i++) {\n        const topOption = document.createElement(\"option\");\n        topOption.value = i;\n        topOption.textContent = i;\n        topSelect.appendChild(topOption);\n\n        const sideOption = document.createElement(\"option\");\n        sideOption.value = i;\n        sideOption.textContent = i;\n        sideSelect.appendChild(sideOption);\n      }\n    }\n\n    function buildTable() {\n      table.innerHTML = \"\";\n\n      const headerRow = document.createElement(\"tr\");\n      const corner = document.createElement(\"th\");\n      corner.textContent = \"\u00d7\";\n      headerRow.appendChild(corner);\n\n      for (let col = 1; col <= maxNumber; col++) {\n        const th = document.createElement(\"th\");\n        th.textContent = col;\n        th.dataset.col = col;\n        headerRow.appendChild(th);\n      }\n\n      table.appendChild(headerRow);\n\n      for (let row = 1; row <= maxNumber; row++) {\n        const tr = document.createElement(\"tr\");\n\n        const rowHeader = document.createElement(\"th\");\n        rowHeader.textContent = row;\n        rowHeader.dataset.row = row;\n        tr.appendChild(rowHeader);\n\n        for (let col = 1; col <= maxNumber; col++) {\n          const td = document.createElement(\"td\");\n          td.textContent = row * col;\n          td.dataset.row = row;\n          td.dataset.col = col;\n\n          td.addEventListener(\"click\", function () {\n            topSelect.value = col;\n            sideSelect.value = row;\n            updateHighlight();\n          });\n\n          tr.appendChild(td);\n        }\n\n        table.appendChild(tr);\n      }\n    }\n\n    function updateHighlight() {\n      const selectedCol = Number(topSelect.value);\n      const selectedRow = Number(sideSelect.value);\n      const answer = selectedCol * selectedRow;\n\n      const allCells = table.querySelectorAll(\"td, th\");\n      allCells.forEach(cell => {\n        cell.classList.remove(\"highlight-row\", \"highlight-col\", \"answer-cell\", \"highlight-header\");\n      });\n\n      table.querySelectorAll(\"td\").forEach(cell => {\n        const row = Number(cell.dataset.row);\n        const col = Number(cell.dataset.col);\n\n        if (row === selectedRow) {\n          cell.classList.add(\"highlight-row\");\n        }\n\n        if (col === selectedCol) {\n          cell.classList.add(\"highlight-col\");\n        }\n\n        if (row === selectedRow && col === selectedCol) {\n          cell.classList.add(\"answer-cell\");\n        }\n      });\n\n      table.querySelectorAll(\"th\").forEach(header => {\n        if (Number(header.dataset.row) === selectedRow || Number(header.dataset.col) === selectedCol) {\n          header.classList.add(\"highlight-header\");\n        }\n      });\n\n      factBox.innerHTML = `\n        ${selectedRow} \u00d7 ${selectedCol} = ${answer}<br>\n        ${selectedCol} \u00d7 ${selectedRow} = ${answer}<br>\n        ${answer} \u00f7 ${selectedRow} = ${selectedCol}<br>\n        ${answer} \u00f7 ${selectedCol} = ${selectedRow}\n      `;\n    }\n\n    buildDropdowns();\n    buildTable();\n\n    topSelect.value = 1;\n    sideSelect.value = 1;\n    updateHighlight();\n\n    topSelect.addEventListener(\"change\", updateHighlight);\n    sideSelect.addEventListener(\"change\", updateHighlight);\n  })();\n<\/script><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"100-width.php","meta":{"footnotes":""},"class_list":["post-13018","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.llanedeyrnprimary.co.uk\/index.php\/wp-json\/wp\/v2\/pages\/13018","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.llanedeyrnprimary.co.uk\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.llanedeyrnprimary.co.uk\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.llanedeyrnprimary.co.uk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.llanedeyrnprimary.co.uk\/index.php\/wp-json\/wp\/v2\/comments?post=13018"}],"version-history":[{"count":2,"href":"https:\/\/www.llanedeyrnprimary.co.uk\/index.php\/wp-json\/wp\/v2\/pages\/13018\/revisions"}],"predecessor-version":[{"id":13020,"href":"https:\/\/www.llanedeyrnprimary.co.uk\/index.php\/wp-json\/wp\/v2\/pages\/13018\/revisions\/13020"}],"wp:attachment":[{"href":"https:\/\/www.llanedeyrnprimary.co.uk\/index.php\/wp-json\/wp\/v2\/media?parent=13018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}