HTML+CSS+JS带搜索的博客文章列表

添加文章数据方法:找到代码js部分,找到文章信息数组,即可添加/修改。

++源代码在图片后面++ 点赞❤️+收藏⭐️+关注😍

效果图

源代码

<!DOCTYPE html>

<html lang="zh-CN">

<head>

<meta charset="UTF-8">

<title>带搜索的博客文章列表</title>

<style>

body {

display: flex;

flex-direction: column;

justify-content: center;

align-items: center;

height: 100vh;

margin: 0;

font-family: Arial, sans-serif;

}

.search-container {

display: flex;

margin-bottom: 20px;

width: 90%;

max-width: 600px;

}

.search-input {

flex: 1;

padding: 10px;

border: 1px solid #ccc;

border-radius: 5px 0 0 5px;

}

.search-button {

padding: 10px;

border: none;

border-radius: 0 5px 5px 0;

box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);

background-color: black;

color: white;

cursor: pointer;

}

table {

width: 90%;

max-width: 600px;

border-collapse: collapse;

border: 1px solid #ccc;

margin-top: 20px;

}

th, td {

border: 1px solid #ccc;

padding: 10px;

text-align: center;

}

th {

background-color: #f2f2f2;

}

.table-row {

display: none;

}

.category {

display: flex;

justify-content: space-between;

}

.category div {

padding: 5px;

border-radius: 5px;

margin-right: 5px;

}

.orange {

background-color: #ffa500;

}

.red {

background-color: #ff0000;

}

.blue {

background-color: #0000ff;

}

tr:nth-child(even) {

background-color: #f9f9f9;

}

tr:nth-child(odd) {

background-color: #ffffff;

}

</style>

</head>

<body>

<div class="search-container">

<input type="text" id="search-input" class="search-input">

<button id="search-button" class="search-button">搜索</button>

</div>

<table id="articles-table">

<tr>

<th>文章名</th>

<th>类别</th>

<th>日期</th>

<th>作者</th>

</tr>

</table>

<script>

const articles = [

{ link: "book1.html", name: "文章1", author: "作者1", date: "2024年1月3日", type1: "前端", type2: "开源", type3: "VUE" },

{ link: "book2.html", name: "文章2", author: "作者2", date: "2024年2月14日", type1: "后端", type2: "Python", type3: "Django" },

{ link: "book3.html", name: "文章3", author: "作者3", date: "2024年3月25日", type1: "全栈", type2: "JavaScript", type3: "Node.js" },

{ link: "book4.html", name: "文章4", author: "作者4", date: "2024年4月7日", type1: "前端", type2: "React", type3: "Redux" },

{ link: "book5.html", name: "文章5", author: "作者5", date: "2024年5月19日", type1: "移动开发", type2: "iOS", type3: "Swift" },

{ link: "book6.html", name: "文章6", author: "作者6", date: "2024年6月1日", type1: "移动开发", type2: "Android", type3: "Kotlin" },

];

const table = document.getElementById('articles-table');

// Function to display articles based on search input

function displayArticles(searchText) {

// Clear existing table rows except the header

while (table.rows.length > 1) {

table.deleteRow(1);

}

// Search and display matching articles

articles.forEach(article => {

if (article.name.includes(searchText)) {

const row = table.insertRow(-1);

row.innerHTML = `

<td><a href="{article.link}" style="text-decoration: none; color: black;"\>{article.name}</a></td>

<td class="category">

<div class="orange">${article.type1}</div>

<div class="red">${article.type2}</div>

<div class="blue">${article.type3}</div>

</td>

<td>${article.date}</td>

<td>${article.author}</td>

`;

}

});

}

// Event listener for search button click

document.getElementById('search-button').addEventListener('click', function() {

const searchText = document.getElementById('search-input').value.trim().toLowerCase();

displayArticles(searchText);

});

// Event listener for Enter key press in search input

document.getElementById('search-input').addEventListener('keypress', function(event) {

if (event.key === 'Enter') {

const searchText = document.getElementById('search-input').value.trim().toLowerCase();

displayArticles(searchText);

}

});

// Initial display of all articles when the page loads

displayArticles('');

</script>

</body>

</html>

相关推荐
计算机魔术师1 小时前
管谷歌的不是Pichai一个人,是一整层AI智能体
前端
米米商聊2 小时前
图标能点,按钮就可用了吗?键盘、名称与收藏状态
前端·javascript
Younglina2 小时前
三个晚上,我和 WorkBuddy 做了个生图网站
前端·后端·ai编程
xy34532 小时前
Axure 9.0 内联框架加载方式
前端·ui·html·axure·原型·产品设计
技术小甜甜3 小时前
【Cursor】Skill 被标黄色警告,怎么改成合格的 SKILL.md
开发语言·javascript·ai编程·cursor·1024程序员节·ai agent·skills
陈随易3 小时前
副业搞钱点子之收入查看器
前端·后端
Profile排查笔记3 小时前
浏览器指纹逆向怎么分析:从网络请求追踪到 JavaScript 采集链
前端·人工智能·后端·自动化
hudie7654 小时前
LikeShop 二开最常改的 5 个文件(附改前改后对比)
前端·uni-app·php·个人开发
qetfw4 小时前
Bash 函数与流程控制:read、if、for、case 验证
linux·前端·javascript·bash
鬼手点金5 小时前
从 API 消息到模型 Token:Chat Template
java·前端·javascript·数据库·人工智能·深度学习·1024程序员节