交互式博客

简介: 交互式博客

引言

在Web开发中,JavaScript(JS)是一种至关重要的编程语言,它使网页具有交互性。通过JS,我们可以创建动态内容、控制多媒体、生成动画图像,以及处理用户输入等。今天,我将通过构建一个相对复杂的JS功能——一个带有点赞和评论功能的交互式博客文章——来展示JS的强大能力。

HTML结构

首先,我们需要构建HTML结构来承载博客文章的内容以及点赞和评论的功能。

<!DOCTYPE html>  
<html lang="zh">  
<head>  
    <meta charset="UTF-8">  
    <title>交互式博客文章</title>  
    <link rel="stylesheet" href="styles.css">  
</head>  
<body>  
    <article>  
        <h1>我的博客标题</h1>  
        <p>这是一篇博客文章的内容...</p>  
        <footer>  
            <button id="likeBtn">点赞</button>  
            <span id="likeCount">0</span> 个赞  
            <div id="comments">  
                <!-- 评论将会动态添加到这里 -->  
            </div>  
            <form id="commentForm">  
                <input type="text" id="commentInput" placeholder="添加评论...">  
                <button type="submit">提交</button>  
            </form>  
        </footer>  
    </article>  
  
    <script src="script.js"></script>  
</body>  
</html>

 

CSS样式

接下来,我们添加一些基本的CSS样式来美化博客文章的展示。

/* styles.css */  
body {  
    font-family: Arial, sans-serif;  
    margin: 0;  
    padding: 20px;  
}  
  
article {  
    max-width: 600px;  
    margin: 0 auto;  
    background-color: #f9f9f9;  
    padding: 20px;  
    border-radius: 5px;  
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);  
}  
  
footer {  
    display: flex;  
    flex-direction: column;  
    align-items: flex-start;  
    margin-top: 20px;  
}  
  
button {  
    background-color: #4CAF50;  
    color: white;  
    padding: 8px 16px;  
    border: none;  
    border-radius: 4px;  
    cursor: pointer;  
    margin-bottom: 10px;  
}  
  
button:hover {  
    background-color: #45a049;  
}  
  
#likeCount {  
    margin-left: 10px;  
}  
  
#comments {  
    margin-top: 20px;  
}  
  
form {  
    display: flex;  
    margin-top: 10px;  
}  
  
input[type="text"] {  
    padding: 8px;  
    border-radius: 4px;  
    border: 1px solid #ddd;  
    flex-grow: 1;  
    margin-right: 10px;  
}

 

JavaScript功能实现

现在,我们将使用JavaScript来实现点赞和评论的功能。

// script.js  
document.addEventListener('DOMContentLoaded', function() {  
    const likeBtn = document.getElementById('likeBtn');  
    const likeCount = document.getElementById('likeCount');  
    const commentsContainer = document.getElementById('comments');  
    const commentForm = document.getElementById('commentForm');  
    const commentInput = document.getElementById('commentInput');  
  
    let likeCounter = 0; // 点赞计数器  
  
    // 点赞功能  
    likeBtn.addEventListener('click', function() {  
        likeCounter++;  
        likeCount.textContent = likeCounter;  
    });  
  
    // 提交评论功能  
    commentForm.addEventListener('submit', function(e) {  
        e.preventDefault(); // 阻止表单默认提交行为  
  
        const commentText = commentInput.value.trim();  
        if (commentText) {  
            const commentElement = document.createElement('div');  
            commentElement.textContent = commentText;  
            commentsContainer.appendChild(commentElement);  
  
            // 清空输入框  
            commentInput.value = '';  
  
            // 可选:添加一些样式或额外信息到评论元素  
            commentElement.style.marginBottom = '10px';  
            const commentDate = document.createElement

 

const dateElement = document.createElement('span');  
            dateElement.textContent = new Date().toLocaleString();  
            commentElement.appendChild(dateElement);  
        }  
    });  
});
  1. 评论回复系统:用户可以回复其他用户的评论。这需要一个稍微复杂的系统,包括保存评论和其回复,以及在页面上动态显示这些内容。
  2. 用户身份验证:为了防止恶意用户发布垃圾评论,你可以添加一个用户身份验证系统。这可能涉及到收集用户名和密码,然后与数据库进行验证。
  3. 点赞和踩功能:允许用户对其他用户的评论进行点赞或踩。这可以通过在数据库中增加一个字段来跟踪每个评论的赞和踩的数量,然后在前端显示这些数据。
  4. 评论排序:根据点赞数、评论时间或其他标准对评论进行排序。
  5. 评论过滤:根据需要,可以添加一些过滤器来删除或隐藏不适当的内容。
  6. 通知系统:当有人回复你的评论或点赞你的评论时,你可以给用户发送通知。
  7. 点赞和评论计数器:你可以让它们显示在用户的个人资料页面上,这样他们就能看到自己的总赞和评论数。
  8. 图片和视频支持:允许用户在评论中添加图片或视频链接,并直接在页面上显示它们。
  9. 评论编辑功能:用户可能希望在发表后编辑他们的评论。这需要保存每个评论的原始版本,以便用户可以轻松地编辑它。
  10. 评论删除功能:允许用户删除他们自己的评论。
  11. 夜间模式:为了更好地适应不同用户的阅读习惯,你可以添加一个夜间模式,使界面变暗并减少干扰。
  12. 通知清除:用户可以选择清除他们的通知,以避免过多的通知堆积。
  13. 评论屏蔽:用户可以选择屏蔽其他用户的评论,以避免骚扰或恶意行为。
  14. 引用功能:当回复其他用户的评论时,可以高亮引用的部分,以帮助读者理解对话的上下文。
  15. 表情符号支持:允许用户在评论中使用表情符号来表达自己的情绪。

总结

通过这个示例,我们展示了如何使用HTML、CSS和JavaScript创建一个简单的交互式博客文章。我们添加了点赞功能和评论功能,并使用JavaScript来处理用户交互。这个示例是一个很好的起点,你可以在此基础上添加更多功能,比如评论回复、用户身份验证等。希望这个示例对你有所帮助,并激发你对Web开发的热情!

 

相关文章
一键自动化博客发布工具,用过的人都说好(51cto篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到51cto上。
一键自动化博客发布工具,用过的人都说好(51cto篇)
一键自动化博客发布工具,用过的人都说好(csdn篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到csdn上。
一键自动化博客发布工具,用过的人都说好(csdn篇)
|
6月前
|
人工智能 大数据 Java
面向萌新的技术博客入门指南
面向萌新的技术博客入门指南
63 0
|
编译器
如何使用Markdown写一篇博客
如何使用Markdown写一篇博客
94 0
|
弹性计算 Unix 网络安全
安装 WordPress 博客程序 | 学习笔记
快速学习 安装 WordPress 博客程序
157 0
安装 WordPress 博客程序 | 学习笔记
|
域名解析 弹性计算 资源调度
工具分享【一】5分钟搭建自己的博客
本文利用vuePress快速构建大气好看的个人博客,vuePress是由Vue 驱动的静态网站生成器,可以基于markdown语法生成网页,君哥的个人博客就是由vuepress构建
392 0
工具分享【一】5分钟搭建自己的博客
|
弹性计算 安全 Linux
如何使用阿里云简单的搭建自己的博客
使用PHP集成工具phpstudy,简易搭建word press个人博客
414 0
如何使用阿里云简单的搭建自己的博客
|
弹性计算 人工智能 大数据
我的博客网站初体验
利用博客网站编写和呈现新闻,融合多种媒介,综合性的呈现信息,既满足了当下人们的阅读习惯,也丰富了内容的呈现形式,让一个事件、一个故事变得更加立体、丰富。利用网站编写融合新闻将成为我创建云场景、构建云服务的起点,未来我会充分利用博文网站平台,结合自己的专业讲好生活中的好故事。另外,继续探索新的云服务领域,例如AI、编程、大数据等,文科生也可以“牛”起来。
|
机器学习/深度学习 JavaScript 前端开发
Day 4:PredictionIO——如何创建一个博客推荐器
我们发现了比较有趣的系列文章《30天学习30种新技术》,准备翻译,一天一篇更新,年终礼包。下面是第四天的内容。 今天是“30天学习30种新技术”的第4天。到目前为止我很享受,而且周围开发者反响也很不错。我现在更有动力在30天内完成它了。在这篇文章中,我将介绍如何在Java下使用PredictionIO来简单地构建一个博客推荐引擎。我没找到太多在Java下使用PredictionIO的文档。所以,本文对那些寻找在Java下使用PredictionIO的完整教程的人可能会有用。“30天学习30种新技术”系列文章的目录可以在这里找到。
181 0
Day 4:PredictionIO——如何创建一个博客推荐器
|
数据采集 前端开发
Python爬虫入门教程 54-100 博客园等博客网站自动评论器
爬虫背景 爬虫最核心的问题就是解决重复操作,当一件事情可以重复的进行的时候,就可以用爬虫来解决这个问题,今天要实现的一个基本需求是完成“博客园“ 博客的自动评论,其实原理是非常简单的,提炼一下需求 基本需求 登录博客园<不实现,登录单独编写博客> 调用评论接口 返回请求结果 确定流程之后,基本...
1731 0