【摸鱼】构建摸鱼看小说神器:一步步实现浏览器内小说阅读
构建摸鱼看小说神器:一步步实现浏览器内小说阅读
在日常工作中,我们可能都有过短暂休息的需求,借助一点点时间阅读几页小说或文章,可以是一种不错的放松方式。但在工作环境下打开小说网站可能不太合适。那么,有没有一种方案可以隐蔽地在浏览器中阅读自己喜欢的书籍呢?本文介绍的“摸鱼看小说神器”或许是你需要的解决方案。
最新更新,我把这个功能封装在了caowenxu970219/moyuKing: 一个偷偷摸鱼看小说的浏览器插件 (github.com)一个浏览器插件中,需要的朋友可以直接下载下来用哦。
小说神器的设计思路
这个工具的设计非常简单却非常实用,它通过一个浮动元素在浏览器界面的角落显示小说内容。用户可以通过点击这个浮动元素来浏览下一段内容,不影响正常的工作,同时也不容易被旁人注意到。
技术细节
接下来,让我们一步步分析构建这个神器的过程:
1. 创建隐藏的文件输入元素
第一步,需要一个能够让用户选择小说文件的文件输入元素。为了保持隐蔽性,这个输入元素是隐藏的。
const fileInput = document.createElement('input');
fileInput.type = 'file';
fileInput.style.display = 'none'; // 隐藏文件输入
2. 设计浮动元素
这个浮动元素是用户交互的核心,同时也是小说内容展示的地方。设计为位于页面左下角、半透明的小框。
const floatingElement = document.createElement('div');
floatingElement.style = `
position: fixed;
bottom: 10px;
left: 10px;
backgroundColor: rgba(0, 0, 0, 0.5);
color: white;
padding: 5px;
borderRadius: 5px;
cursor: pointer;
display: none; // 初始隐藏
`;
document.body.appendChild(floatingElement);
3. 实现文件读取和内容展示逻辑
当用户选择文件后,通过FileReader读取文件内容,并在浮动元素中展示其中一小段文本。用户每点击一次浮动元素,就展示下一段文本。
fileInput.addEventListener('change', function() {
const file = this.files[0];
if (file) {
const reader = new FileReader();
reader.onload = function(e) {
fileContent = e.target.result;
showNext20Chars(); // 初始展示前20个字符
};
reader.readAsText(file);
}
});
function showNext20Chars() {
if (fileContent.length > 0) {
const textToShow = fileContent.substring(currentIndex, currentIndex + 20);
currentIndex += 20; // 更新索引
floatingElement.textContent = textToShow;
floatingElement.style.display = 'block'; // 显示元素
if (currentIndex >= fileContent.length) { currentIndex = 0; } // 如果展示完了,重置索引
}
}
4. 触发文件选择
最后,当页面加载时自动弹出文件选择框,让用户选择想要阅读的小说文件。
fileInput.click();
document.body.removeChild(fileInput); // 触发点击后移除input元素
总结
通过以上简单的程序,我们构建了一个既实用又隐秘的摸鱼看小说工具。这不仅是一个有趣的小项目,同时也演示了如何使用原生JavaScript操作DOM元素、读取文件、以及如何设计用户交互这几个方面的基础知识。无论你是前端开发新手还是有经验的开发者,实现这样一个简单的项目都会是一个有趣且富有成就感的过程。
转载自:https://juejin.cn/post/7365704703361843200