Recomendações de hoje - site de romances - BigBook - Enorme Biblioteca de Romances | Leitura Online Gratuita <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE10" /> <meta name="renderer" content="webkit|ie-comp|ie-stand"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <meta name="keywords" content="Enorme biblioteca de romances, coleção de romances, leitura gratuita, plataforma de leitura online, romances populares" /> <meta name="description" content="O BigBook reúne uma enorme quantidade de recursos de romances de alta qualidade, criando uma plataforma de leitura online rica em conteúdo que oferece leitura gratuita de diversos tipos de romances, com atualizações rápidas e capítulos completos." /> <link rel="apple-touch-icon-precomposed" sizes="180x180" href="fav.png"> <link rel="shortcut icon" href="fav.png" type="image/x-icon"/> <link rel="stylesheet" type="text/css" href="https://okcomicbooks.com/skin/css/index.css?v=3.1"> <link rel="stylesheet" type="text/css" href="https://okcomicbooks.com/skin/css/page.css?v=3.1"> <link rel="stylesheet" type="text/css" href="https://okcomicbooks.com/skin/css/all.min.css?v=3.1"> <script type="text/javascript" src="https://okcomicbooks.com/skin/js/jquery.min.js"></script> <style> /* 今日推荐标题单行省略 */ .books-grid .book-title { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; white-space: normal; word-break: break-all; line-height: 1.4em; max-height: 1.4em; margin: 0; padding: 0; } </style> </head> <body style="background-color:#e3f2fd;"> <!-- 头部导航 --> <style> .nav-links a.active { font-weight: bold; color: #ffffff !important; } .nav-links a.active::after { width:100%; } /* 语言栏样式 */ #language-switcher { display: none; position: absolute; right: 20px; top: 60px; z-index: 1000; background: white; padding: 10px; border-radius: 6px; box-shadow: 0 2px 8px rgba(0,0,0,0.15); } /* 语言设置弹窗内的按钮样式 */ .setting-options .option-btn { padding: 8px 16px; margin: 4px; background: #f5f5f5; border: 1px solid #ddd; border-radius: 6px; color: #333; cursor: pointer; font-size: 14px; transition: all 0.2s ease; display: inline-block; text-align: center; min-width: 60px; } /* 悬停效果 */ .setting-options .option-btn:hover { background: #e9ecef; border-color: #ccc; transform: translateY(-1px); } /* 选中状态 */ .setting-options .option-btn.active { background: #3b82f6; color: white; border-color: #3b82f6; box-shadow: 0 2px 4px rgba(59, 130, 246, 0.3); } /* 选中状态悬停 */ .setting-options .option-btn.active:hover { background: #2563eb; border-color: #2563eb; } /* 👇 新增:选中状态样式 */ .option-btn.active { background: #3b82f6; color: white; border-color: #3b82f6; } /* 可选:hover 效果 */ .option-btn:hover { background: #e9ecef; } .option-btn.active:hover { background: #2563eb; } </style> <header class="header" id="main-header"> <div class="headerMain"> <div class="logo-area"> <div><a href="https://okcomicbooks.com" class="logo">Leitor de Novelas</a></div> <nav class="nav-links"> <a class="" href="https://okcomicbooks.com">Início</a> <a class="" href="https://okcomicbooks.com/ranking/">Ranking</a> <a class="" href="https://okcomicbooks.com/serializing/">Em série</a> <a class="" href="https://okcomicbooks.com/completed/">Concluídas</a> <a class="active" href="https://okcomicbooks.com/recommend/">Atualizações de hoje</a> </nav> </div> <div class="search-box"> <input type="text" placeholder="Buscar título, autor, tags..."> <button>Buscar</button> </div> <div class="user-actions"> <!-- ❌ 删除 onclick --> <a href="javascript:void(0);" id="lang-toggle-btn" title="Seleção de idioma"> <i class="fas fa-earth-oceania" style="font-size:26px;color:#ffffff;"></i> </a> </div> <button class="menu-toggle">☰</button> </div><!-- 替换掉原来的 #language-switcher --> <div id="language-switcher" style="display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.5); z-index:2000; justify-content:center; align-items:center;"> <div class="settings-container" style="width:90%; max-width:540px; background:white; border-radius:8px; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 4px 20px rgba(0,0,0,0.15); position:relative;"> <div class="settings-header" style="background:#f8f8f8; padding:20px; border-bottom:1px solid #e8e8e8;"> <div class="settings-title">Idioma</div> </div> <div class="settings-content" style="padding:20px; max-height:60vh; overflow-y:auto;"> <div class="setting-item"> <div class="setting-options" id="theme-options"> <button class="option-btn " data-lang="zh">中文</button> <button class="option-btn " data-lang="en">English</button> <button class="option-btn active" data-lang="pt">Português</button> </div> </div> </div> <div class="settings-footer" style="padding:15px 20px; border-top:1px solid #e8e8e8; display:flex; justify-content:flex-end; gap:10px;"> <button class="footer-btn confirm" id="confirm-settings">Confirmar</button> </div> <div class="close-settings" id="close-settings" style="position:absolute; top:20px; right:20px; width:30px; height:30px; background:white; border-radius:50%; display:flex; justify-content:center; align-items:center; cursor:pointer; font-size:20px; box-shadow:0 2px 8px rgba(0,0,0,0.1);">×</div> </div> </div> </header> <!-- 全局 JS(只写一次,所有页面生效) --> <script> document.addEventListener('DOMContentLoaded', function () { const btn = document.getElementById('lang-toggle-btn'); const overlay = document.getElementById('language-switcher'); // ← 改这里! if (btn && overlay) { btn.addEventListener('click', function(e) { e.preventDefault(); overlay.style.display = 'flex'; }); // 关闭按钮 const closeBtn = document.getElementById('close-settings'); if (closeBtn) { closeBtn.addEventListener('click', function() { overlay.style.display = 'none'; }); } // 点击蒙层关闭 overlay.addEventListener('click', function(e) { if (e.target === overlay) { overlay.style.display = 'none'; } }); // 语言选项切换 const optionButtons = document.querySelectorAll('.option-btn'); optionButtons.forEach(btn => { btn.addEventListener('click', function() { optionButtons.forEach(b => b.classList.remove('active')); this.classList.add('active'); }); }); // 确定按钮 const confirmBtn = document.getElementById('confirm-settings'); if (confirmBtn) { confirmBtn.addEventListener('click', function() { const selected = document.querySelector('.option-btn.active'); if (selected) { const lang = selected.dataset.lang; const url = new URL(window.location); url.searchParams.set('lang', lang); window.location.href = url.toString(); } }); } } }); </script> <div class="container"> <!-- 分类参数 --> <div class="section"> <!-- 分类筛选 --> <div class="category-filter"> <div class="filter-group filter-main"> <a href="https://okcomicbooks.com/recommend/" class="filter-btn active">All</a><a href="https://okcomicbooks.com/recommend/?cate=2" class="filter-btn ">Outros</a><a href="https://okcomicbooks.com/recommend/?cate=3" class="filter-btn ">Fantasia</a><a href="https://okcomicbooks.com/recommend/?cate=4" class="filter-btn ">Cultivo espiritual</a><a href="https://okcomicbooks.com/recommend/?cate=5" class="filter-btn ">História</a><a href="https://okcomicbooks.com/recommend/?cate=6" class="filter-btn ">ficção científica</a><a href="https://okcomicbooks.com/recommend/?cate=7" class="filter-btn ">jogo online</a> </div> </div> <div class="books-grid" style="margin-top: 30px;"><div class="book-card"> <div class="book-cover"> <a href="https://okcomicbooks.com/detail/617.html" alt="Apocalipse: Eu posso ver barras de vida, monstros mortos deixam tesouros"> <img src="https://gdapi.okcomicbooks.com/Super/public/uploads/covers/687_translated.png" loading="lazy"> </a> </div> <div class="book-info"> <a href="https://okcomicbooks.com/detail/617.html" title="Apocalipse: Eu posso ver barras de vida, monstros mortos deixam tesouros"> <h3 class="book-title" title="Apocalipse: Eu posso ver barras de vida, monstros mortos deixam tesouros"> Apocalipse: Eu posso ver barras de vida, monstros mortos deixam tesouros </h3> </a> <div class="book-author">O Espírito da Montanha Empunha o Pincel</div> <p class="book-desc">4 de abril. O apocalipse irrompeu, montanhas e rios despedaç...</p> <div class="book-stats"> <span>33mil palavras</span> <span>100capítulos</span> </div> </div> </div><div class="book-card"> <div class="book-cover"> <a href="https://okcomicbooks.com/detail/616.html" alt="De professor universitário a acadêmico-chefe"> <img src="https://gdapi.okcomicbooks.com/Super/public/uploads/covers/688_translated.png" loading="lazy"> </a> </div> <div class="book-info"> <a href="https://okcomicbooks.com/detail/616.html" title="De professor universitário a acadêmico-chefe"> <h3 class="book-title" title="De professor universitário a acadêmico-chefe"> De professor universitário a acadêmico-chefe </h3> </a> <div class="book-author">Não como abóboras pequenas.</div> <p class="book-desc">O jovem doutor transmigrado, logo ao iniciar sua carreira, v...</p> <div class="book-stats"> <span>38mil palavras</span> <span>100capítulos</span> </div> </div> </div><div class="book-card"> <div class="book-cover"> <a href="https://okcomicbooks.com/detail/615.html" alt="Desolação do Tirano"> <img src="https://gdapi.okcomicbooks.com/Super/public/uploads/covers/691_translated.png" loading="lazy"> </a> </div> <div class="book-info"> <a href="https://okcomicbooks.com/detail/615.html" title="Desolação do Tirano"> <h3 class="book-title" title="Desolação do Tirano"> Desolação do Tirano </h3> </a> <div class="book-author">Três dias, dois despertares</div> <p class="book-desc">A morte sela o caráter pelo qual se recebe o título póstumo....</p> <div class="book-stats"> <span>41mil palavras</span> <span>100capítulos</span> </div> </div> </div><div class="book-card"> <div class="book-cover"> <a href="https://okcomicbooks.com/detail/613.html" alt="Base Número Sete"> <img src="https://gdapi.okcomicbooks.com/Super/public/uploads/covers/712_translated.png" loading="lazy"> </a> </div> <div class="book-info"> <a href="https://okcomicbooks.com/detail/613.html" title="Base Número Sete"> <h3 class="book-title" title="Base Número Sete"> Base Número Sete </h3> </a> <div class="book-author">Jìng Wúhén</div> <p class="book-desc">Sobre as ruínas, em meio à vastidão selvagem, Xu Mo ergueu o...</p> <div class="book-stats"> <span>37mil palavras</span> <span>100capítulos</span> </div> </div> </div><div class="book-card"> <div class="book-cover"> <a href="https://okcomicbooks.com/detail/602.html" alt="No Cume da Lótus Azul"> <img src="https://gdapi.okcomicbooks.com/Super/public/uploads/covers/730_translated.png" loading="lazy"> </a> </div> <div class="book-info"> <a href="https://okcomicbooks.com/detail/602.html" title="No Cume da Lótus Azul"> <h3 class="book-title" title="No Cume da Lótus Azul"> No Cume da Lótus Azul </h3> </a> <div class="book-author">Xiao Shiyi Mo</div> <p class="book-desc">Uma pequena família cultivadora, graças ao esforço diligente...</p> <div class="book-stats"> <span>26mil palavras</span> <span>100capítulos</span> </div> </div> </div><div class="book-card"> <div class="book-cover"> <a href="https://okcomicbooks.com/detail/607.html" alt="O Rei dos Mil Aspectos (Leitura Completa de O Rei dos Mil Aspectos, O Rei dos Mil Aspectos por Tian Can Tu Dou)"> <img src="https://gdapi.okcomicbooks.com/Super/public/uploads/covers/1_translated.png" loading="lazy"> </a> </div> <div class="book-info"> <a href="https://okcomicbooks.com/detail/607.html" title="O Rei dos Mil Aspectos (Leitura Completa de O Rei dos Mil Aspectos, O Rei dos Mil Aspectos por Tian Can Tu Dou)"> <h3 class="book-title" title="O Rei dos Mil Aspectos (Leitura Completa de O Rei dos Mil Aspectos, O Rei dos Mil Aspectos por Tian Can Tu Dou)"> O Rei dos Mil Aspectos (Leitura Completa de O Rei dos Mil Aspectos, O Rei dos Mil Aspectos por Tian Can Tu Dou) </h3> </a> <div class="book-author">Bicho-da-terra de seda celestial</div> <p class="book-desc">Entre o céu e a terra existem miríades de fenômenos; eu, Li ...</p> <div class="book-stats"> <span>21mil palavras</span> <span>67capítulos</span> </div> </div> </div><div class="book-card"> <div class="book-cover"> <a href="https://okcomicbooks.com/detail/593.html" alt="O Portal da Criação"> <img src="https://gdapi.okcomicbooks.com/Super/public/uploads/covers/783_translated.png" loading="lazy"> </a> </div> <div class="book-info"> <a href="https://okcomicbooks.com/detail/593.html" title="O Portal da Criação"> <h3 class="book-title" title="O Portal da Criação"> O Portal da Criação </h3> </a> <div class="book-author">O ganso é o quinto mais velho.</div> <p class="book-desc">Este é um mundo despedaçado, este é um canto esquecido. Naqu...</p> <div class="book-stats"> <span>69mil palavras</span> <span>300capítulos</span> </div> </div> </div></div> <!-- <div class="page" style="background:linear-gradient(135deg, #f3f3f3 0%, #f1f1f1 100%);padding:0 20px;border-radius:10px;"></div> --> </div> </div> <!-- 页脚 --> <footer class="footer"> <div class="container1"> </div> </footer> <!-- 右侧功能栏 --> <div class="sidebar"> <a href="javascript:void(0);" onclick="scrollToTop()" class="sidebar-button"> <div class="icon"> <div class="moon-icon"> <div class="moon"> <div class="fas fa-arrows-up-to-line"></div> </div> </div> </div> </a> </div> <script type="text/javascript"> function scrollToTop(){ window.scrollTo({ top: 0, behavior: 'smooth' }); } </script> <script> // 移动端菜单切换 document.addEventListener('DOMContentLoaded', function() { const menuToggle = document.querySelector('.menu-toggle'); const navLinks = document.querySelector('.nav-links'); menuToggle.addEventListener('click', function() { navLinks.style.display = navLinks.style.display === 'flex' ? 'none' : 'flex'; }); // 调整窗口大小时重置菜单显示 window.addEventListener('resize', function() { if (window.innerWidth > 768) { navLinks.style.display = 'flex'; } else { navLinks.style.display = 'none'; } }); // 初始化 if (window.innerWidth <= 768) { navLinks.style.display = 'none'; } // 搜索功能 const searchInput = document.querySelector('.search-box input'); const searchBtn = document.querySelector('.search-box button'); const searchAlertTpl = "Buscar palavra-chave: %s"; searchBtn.addEventListener('click', function() { const keyword = searchInput.value.trim(); if (keyword) { alert(searchAlertTpl.replace('%s', keyword)); // 实际应用中这里应该跳转到搜索页面 } }); searchInput.addEventListener('keypress', function(e) { if (e.key === 'Enter') { searchBtn.click(); } }); }); </script> </body> </html>