{"id":3050,"date":"2025-10-02T11:07:37","date_gmt":"2025-10-02T11:07:37","guid":{"rendered":"https:\/\/takidaki.com\/xao-tron-danh-sach\/"},"modified":"2026-03-20T17:07:45","modified_gmt":"2026-03-20T17:07:45","slug":"xao-tron-danh-sach","status":"publish","type":"page","link":"https:\/\/takidaki.com\/vi\/xao-tron-danh-sach\/","title":{"rendered":"X\u00e1o tr\u1ed9n danh s\u00e1ch"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3050\" class=\"elementor elementor-3050 elementor-655\" data-elementor-post-type=\"page\">\n\t\t\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" data-dce-background-color=\"#FEE4C7\" class=\"elementor-element elementor-element-46c063d e-flex e-con-boxed e-con e-parent\" data-id=\"46c063d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div data-dce-title-color=\"#151413\" class=\"elementor-element elementor-element-0af3668 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"0af3668\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Ch\u1ecdn ng\u1eabu nhi\u00ean t\u1eeb danh s\u00e1ch<\/h1>\t\t\t\t<\/div>\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-d3d101a e-con-full e-flex e-con e-child\" data-id=\"d3d101a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-eb86743 elementor-widget elementor-widget-html\" data-id=\"eb86743\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<link href=\"https:\/\/fonts.googleapis.com\/css2?family=PT+Mono&amp;display=swap\" rel=\"stylesheet\">\n<style>\n  :root {\n    --cols: 1;\n    --win-h: 76px;\n    --name: 18px;\n    --id: 12px;\n    --gap: 15px;\n  }\n\n  @keyframes slideInFromRight {\n    from { transform: translateX(100px); opacity: 0; }\n    to   { transform: translateX(0); opacity: 1; }\n  }\n\n  .randomizer-container {\n    background: white;\n    border-radius: 20px;\n    display: flex;\n    max-width: 1200px;\n    margin: 0 auto;\n    min-height: 600px;\n    font-family: 'PT Mono', monospace;\n    overflow: hidden;\n  }\n\n  .left-panel {\n    flex: 1;\n    padding: 40px;\n    background: #f8f9fa;\n    display: flex;\n    flex-direction: column;\n    gap: 30px;\n  }\n\n  .right-panel {\n    flex: 1;\n    padding: 40px;\n    background: #FFECD6;\n    color: #101010;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n  }\n\n  .title, .label, .results-title {\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    font-weight: bold;\n  }\n\n  .title { font-size: 28px; color: #333; text-align: center; }\n  .label { font-size: 16px; color: #555; }\n  .results-title { font-size: 24px; margin-bottom: 20px; }\n\n  .input-group { display: flex; flex-direction: column; gap: 15px; }\n\n  .participants-textarea {\n    width: 100%; height: 200px; padding: 15px;\n    border: 2px solid #e1e5e9; border-radius: 10px;\n    font-size: 14px; resize: vertical; font-family: inherit;\n  }\n\n  .participants-textarea:focus {\n    outline: none; border-color: #778541;\n  }\n\n  .number-input-container {\n    display: flex; align-items: center;\n    border: 2px solid #e1e5e9; border-radius: 10px;\n    background: white; overflow: hidden;\n  }\n\n  .number-btn {\n    background: #f8f9fa; border: none; padding: 12px 16px;\n    font-size: 18px; font-weight: bold; color: #778541;\n    cursor: pointer; min-width: 50px; text-transform: uppercase;\n  }\n\n  .number-btn:hover { background: #778541; color: white; }\n  .number-btn:disabled { background: #e9ecef; color: #6c757d; }\n\n  .winners-input {\n    flex: 1; border: none; padding: 12px 15px;\n    font-size: 16px; text-align: center; background: white; outline: none;\n  }\n\n  .select-button {\n    background: #778541; color: white; border: none;\n    padding: 15px 30px; border-radius: 10px;\n    font-size: 16px; font-weight: bold;\n    cursor: pointer; text-transform: uppercase;\n    letter-spacing: 0.5px; width: 100%;\n  }\n\n  .select-button:hover { opacity: 0.9; }\n\n  .remove-duplicates-btn {\n    background: #EA806C; color: white;\n    padding: 12px 20px; border: none; border-radius: 10px;\n    font-size: 14px; font-weight: bold;\n    text-transform: uppercase; letter-spacing: 0.5px;\n    cursor: pointer;\n  }\n\n  .winners-container {\n    display: grid;\n    grid-template-columns: repeat(var(--cols), 1fr);\n    gap: var(--gap); width: 100%; overflow: hidden;\n  }\n\n  .winner-card {\n    height: var(--win-h); background: rgba(255, 255, 255, 0.2);\n    backdrop-filter: blur(10px); border-radius: 12px;\n    padding: 12px; text-align: center; font-weight: 600;\n    border: 2px solid rgba(255, 255, 255, 0.3);\n    display: flex; flex-direction: column;\n    justify-content: center; align-items: center;\n    animation: slideInFromRight 0.6s ease-out;\n    animation-fill-mode: both;\n  }\n\n  .winner-number { font-size: var(--id); opacity: 0.85; margin-bottom: 3px; }\n  .winner-name { font-size: var(--name); }\n\n  .empty-state { text-align: center; opacity: 0.7; font-size: 18px; }\n  .stats { margin-top: 12px; text-align: center; font-size: 14px; opacity: 0.8; }\n\n  @media (max-width: 768px) {\n    .randomizer-container { flex-direction: column; }\n    .left-panel, .right-panel { padding: 20px; }\n    .winners-container { --cols: 1; }\n  }\n<\/style>\n\n<div class=\"randomizer-container\">\n  <div class=\"left-panel\">\n    <h3 class=\"title\">Ch\u1ecdn ng\u01b0\u1eddi th\u1eafng tr\u00ean Instagram<\/h3>\n    <div class=\"input-group\">\n      <label class=\"label\" for=\"participants\">Danh s\u00e1ch ng\u01b0\u1eddi tham gia (m\u1ed7i d\u00f2ng m\u1ed9t ng\u01b0\u1eddi):<\/label>\n      <textarea id=\"participants\" class=\"participants-textarea\" placeholder=\"Nh\u1eadp t\u00ean ng\u01b0\u1eddi tham gia, m\u1ed7i d\u00f2ng m\u1ed9t ng\u01b0\u1eddi...\"><\/textarea>\n    <\/div>\n    <div class=\"input-group\">\n      <button id=\"remove-duplicates\" class=\"remove-duplicates-btn\" onclick=\"removeDuplicates()\">X\u00f3a tr\u00f9ng l\u1eb7p<\/button>\n    <\/div>\n    <div class=\"input-group\">\n      <label class=\"label\" for=\"winners-count\">S\u1ed1 l\u01b0\u1ee3ng ng\u01b0\u1eddi th\u1eafng:<\/label>\n      <div class=\"number-input-container\">\n        <button type=\"button\" class=\"number-btn\" onclick=\"changeCount(-1)\">\u2013<\/button>\n<input type=\"number\" id=\"winners-count\" class=\"winners-input\" value=\"1\" min=\"1\">\n<button type=\"button\" class=\"number-btn\" onclick=\"changeCount(1)\">+<\/button>\n      <\/div>\n    <\/div>\n    <button class=\"select-button\" onclick=\"pickWinners()\">Ch\u1ecdn ng\u01b0\u1eddi th\u1eafng<\/button>\n  <\/div>\n\n  <div class=\"right-panel\">\n    <h2 class=\"results-title\">Ng\u01b0\u1eddi th\u1eafng<\/h2>\n    <div id=\"winners-container\" class=\"winners-container\">\n      <div class=\"empty-state\">Nh\u1ea5n n\u00fat \"Ch\u1ecdn ng\u01b0\u1eddi th\u1eafng\" \u0111\u1ec3 b\u1eaft \u0111\u1ea7u<\/div>\n    <\/div>\n    <div class=\"stats\" id=\"stats\"><\/div>\n    <button class=\"select-button\" style=\"margin-top:12px;\" onclick=\"copyWinners()\">Sao ch\u00e9p ng\u01b0\u1eddi th\u1eafng<\/button>\n  <\/div>\n<\/div>\n\n<script>\n  function getParticipants() {\n    return [...new Set(document.getElementById(\"participants\").value\n      .split(\"\\n\").map(p => p.trim()).filter(Boolean))];\n  }\n\n  function changeCount(change) {\n    const input = document.getElementById(\"winners-count\");\n    let value = parseInt(input.value) || 1;\n    value += change;\n    if (value < 1) value = 1;\n    if (value > getParticipants().length) value = getParticipants().length;\n    input.value = value;\n  }\n\n  function pickWinners() {\n    const participants = getParticipants();\n    const count = parseInt(document.getElementById(\"winners-count\").value) || 1;\n    const container = document.getElementById(\"winners-container\");\n    const stats = document.getElementById(\"stats\");\n\n    if (participants.length === 0) {\n      container.innerHTML = \"<div class='empty-state'>Please enter at least one participant.<\/div>\";\n      stats.textContent = \"\";\n      return;\n    }\n\n    if (count > participants.length) {\n      container.innerHTML = \"<div class='empty-state'>Not enough participants.<\/div>\";\n      stats.textContent = \"\";\n      return;\n    }\n\n    const shuffled = participants.sort(() => 0.5 - Math.random());\n    const winners = shuffled.slice(0, count);\n\n    container.innerHTML = winners.map((name, i) => `\n      <div class=\"winner-card\" style=\"animation-delay:${i * 0.05}s\">\n        <div class=\"winner-number\">#${i + 1}<\/div>\n        <div class=\"winner-name\">${name}<\/div>\n      <\/div>\n    `).join(\"\");\n\n    stats.textContent = `Total participants: ${participants.length} | Winners: ${winners.length}`;\n    applyWinnersLayout(winners.length);\n  }\n\n  function copyWinners() {\n    const names = Array.from(document.querySelectorAll(\".winner-name\")).map((el, i) =>\n      `${i + 1}. ${el.textContent}`).join(\"\\n\");\n\n    if (!names) return;\n    navigator.clipboard.writeText(names).then(() => {\n      alert(\"Winners copied!\");\n    });\n  }\n\n  function removeDuplicates() {\n    const textarea = document.getElementById(\"participants\");\n    const unique = getParticipants();\n    textarea.value = unique.join(\"\\n\");\n  }\n\n  function applyWinnersLayout(count = null) {\n    const container = document.getElementById('winners-container');\n    const cards = container.querySelectorAll('.winner-card').length;\n    const n = count ?? cards;\n    if (!n) return;\n\n    let cols = 1;\n    if (n > 32) cols = 8;\n    else if (n > 16) cols = 4;\n    else if (n > 8) cols = 2;\n\n    const h    = (n > 32) ? 36 : (n > 16) ? 48 : (n > 8) ? 60 : 76;\n    const name = (n > 32) ? 10 : (n > 16) ? 13 : (n > 8) ? 16 : 18;\n    const id   = Math.max(10, name - 4);\n\n    container.style.setProperty('--cols', cols);\n    container.style.setProperty('--win-h', `${h}px`);\n    container.style.setProperty('--name', `${name}px`);\n    container.style.setProperty('--id', `${id}px`);\n  }\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" data-dce-background-color=\"#FFFDFA\" class=\"elementor-element elementor-element-74bcc145 e-flex e-con-boxed e-con e-parent\" data-id=\"74bcc145\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div data-dce-text-color=\"#232323\" class=\"elementor-element elementor-element-4f1d69da elementor-widget elementor-widget-text-editor\" data-id=\"4f1d69da\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">TakiDaki List Randomizer l\u00e0 c\u00f4ng c\u1ee5 g\u1ecdn g\u00e0ng v\u00e0 hi\u1ec7u qu\u1ea3 \u0111\u1ec3 ch\u1ecdn ng\u01b0\u1eddi th\u1eafng trong c\u00e1c minigame, cu\u1ed9c thi ho\u1eb7c b\u1ea5t k\u1ef3 s\u1ef1 ki\u1ec7n n\u00e0o c\u1ea7n s\u1ef1 c\u00f4ng b\u1eb1ng.<\/p><p class=\"p1\">Ch\u1ec9 c\u1ea7n d\u00e1n danh s\u00e1ch, ch\u1ecdn s\u1ed1 l\u01b0\u1ee3ng ng\u01b0\u1eddi th\u1eafng \u2014 v\u00e0 \u0111\u1ec3 h\u1ec7 th\u1ed1ng l\u00e0m ph\u1ea7n c\u00f2n l\u1ea1i.<\/p><p class=\"p1\">Ho\u00e0n h\u1ea3o cho creator, th\u01b0\u01a1ng hi\u1ec7u v\u00e0 \u0111\u1ed9i ng\u0169 SMM t\u1ed5 ch\u1ee9c minigame tr\u00ean Instagram \u2014 v\u00e0 s\u1eafp t\u1edbi c\u1ea3 TikTok, Facebook v\u00e0 nhi\u1ec1u n\u1ec1n t\u1ea3ng kh\u00e1c.<\/p><p class=\"p1\">Nh\u1edd thu\u1eadt to\u00e1n minh b\u1ea1ch, ng\u01b0\u1eddi theo d\u00f5i c\u1ee7a b\u1ea1n s\u1ebd th\u1ea5y: qu\u00e1 tr\u00ecnh di\u1ec5n ra nhanh ch\u00f3ng, c\u00f4ng b\u1eb1ng v\u00e0 kh\u00f4ng thi\u00ean v\u1ecb.<\/p><h3><b>\ud83d\udfe2 B\u1ea1n c\u00f3 th\u1ec3 d\u00f9ng cho:<\/b><\/h3><ul><li><p class=\"p1\">Minigame tr\u00ean m\u1ea1ng x\u00e3 h\u1ed9i d\u00e0nh cho ng\u01b0\u1eddi theo d\u00f5i<\/p><\/li><li><p class=\"p1\">Khuy\u1ebfn m\u00e3i ho\u1eb7c b\u1ed1c th\u0103m tr\u00fang th\u01b0\u1edfng t\u1ea1i c\u1eeda h\u00e0ng<\/p><\/li><li><p class=\"p1\">Ch\u1ecdn ng\u01b0\u1eddi th\u1eafng t\u1eeb kh\u00e1ch h\u00e0ng ho\u1eb7c nh\u00e2n vi\u00ean<\/p><\/li><li><p class=\"p1\">B\u1ed1c th\u0103m t\u1eeb thi\u1ec7n n\u01a1i s\u1ef1 minh b\u1ea1ch l\u00e0 \u0111i\u1ec1u b\u1eaft bu\u1ed9c<\/p><\/li><\/ul><h3><b>\u2728 \u01afu \u0111i\u1ec3m n\u1ed5i b\u1eadt:<\/b><\/h3><ul><li><p class=\"p1\">Giao di\u1ec7n c\u1ef1c \u0111\u01a1n gi\u1ea3n \u2014 kh\u00f4ng c\u1ea7n \u0111\u0103ng k\u00fd hay c\u00e0i \u0111\u1eb7t<\/p><\/li><li><p class=\"p1\">Ch\u1ea1y ngay tr\u00ean tr\u00ecnh duy\u1ec7t \u2014 kh\u00f4ng c\u1ea7n t\u1ea3i v\u1ec1<\/p><\/li><li><p class=\"p1\">T\u1ef1 \u0111\u1ed9ng lo\u1ea1i b\u1ecf tr\u00f9ng l\u1eb7p<\/p><\/li><li><p class=\"p1\">K\u1ebft qu\u1ea3 c\u00f3 th\u1ec3 sao ch\u00e9p ho\u1eb7c l\u01b0u l\u1ea1i<\/p><\/li><li><p class=\"p1\">C\u00f4ng b\u1eb1ng, nhanh ch\u00f3ng v\u00e0 an to\u00e0n \u2014 kh\u00f4ng c\u00f3 s\u1ef1 can thi\u1ec7p th\u1ee7 c\u00f4ng<\/p><\/li><\/ul><p class=\"p1\">B\u1ea1n \u0111ang t\u00ecm c\u00f4ng c\u1ee5 b\u1ed1c th\u0103m mi\u1ec5n ph\u00ed, c\u00f4ng b\u1eb1ng v\u00e0 \u0111\u00e1ng tin c\u1eady?<\/p><p class=\"p1\">TakiDaki gi\u00fap m\u1ecdi th\u1ee9 tr\u1edf n\u00ean d\u1ec5 d\u00e0ng \u2014 v\u00e0 th\u1eadt \u0111\u1eb9p m\u1eaft.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-2dfd4aa e-flex e-con-boxed e-con e-parent\" data-id=\"2dfd4aa\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7ee7b95 dce_masking-none elementor-widget elementor-widget-image\" data-id=\"7ee7b95\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"491\" src=\"https:\/\/takidaki.com\/wp-content\/uploads\/2025\/11\/takidaki-list-randomizer-1024x628.png\" class=\"attachment-large size-large wp-image-687\" alt=\"list randomizer\" srcset=\"https:\/\/takidaki.com\/wp-content\/uploads\/2025\/11\/takidaki-list-randomizer-1024x628.png 1024w, https:\/\/takidaki.com\/wp-content\/uploads\/2025\/11\/takidaki-list-randomizer-300x184.png 300w, https:\/\/takidaki.com\/wp-content\/uploads\/2025\/11\/takidaki-list-randomizer-768x471.png 768w, https:\/\/takidaki.com\/wp-content\/uploads\/2025\/11\/takidaki-list-randomizer.png 1171w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Ch\u1ecdn ng\u1eabu nhi\u00ean t\u1eeb danh s\u00e1ch Ch\u1ecdn ng\u01b0\u1eddi th\u1eafng tr\u00ean Instagram Danh s\u00e1ch ng\u01b0\u1eddi tham gia (m\u1ed7i d\u00f2ng m\u1ed9t ng\u01b0\u1eddi): X\u00f3a tr\u00f9ng l\u1eb7p S\u1ed1 l\u01b0\u1ee3ng ng\u01b0\u1eddi th\u1eafng: \u2013 + Ch\u1ecdn ng\u01b0\u1eddi th\u1eafng Ng\u01b0\u1eddi th\u1eafng Nh\u1ea5n n\u00fat &#8220;Ch\u1ecdn ng\u01b0\u1eddi th\u1eafng&#8221; \u0111\u1ec3 b\u1eaft \u0111\u1ea7u Sao ch\u00e9p ng\u01b0\u1eddi th\u1eafng TakiDaki List Randomizer l\u00e0 c\u00f4ng c\u1ee5 g\u1ecdn g\u00e0ng v\u00e0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-3050","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/takidaki.com\/vi\/wp-json\/wp\/v2\/pages\/3050","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/takidaki.com\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/takidaki.com\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/takidaki.com\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/takidaki.com\/vi\/wp-json\/wp\/v2\/comments?post=3050"}],"version-history":[{"count":1,"href":"https:\/\/takidaki.com\/vi\/wp-json\/wp\/v2\/pages\/3050\/revisions"}],"predecessor-version":[{"id":3051,"href":"https:\/\/takidaki.com\/vi\/wp-json\/wp\/v2\/pages\/3050\/revisions\/3051"}],"wp:attachment":[{"href":"https:\/\/takidaki.com\/vi\/wp-json\/wp\/v2\/media?parent=3050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}