Like
当前位置:首页 > JavaScript

js实现like

2026-03-13 16:35:48JavaScript

实现点赞功能(Like)的 JavaScript 方法

前端实现

HTML 结构

<button id="likeButton">Like</button>
<span id="likeCount">0</span>

JavaScript 逻辑

const likeButton = document.getElementById('likeButton');
const likeCount = document.getElementById('likeCount');
let count = 0;

likeButton.addEventListener('click', () => {
    count++;
    likeCount.textContent = count;
    likeButton.disabled = true; // 防止重复点击
});

后端交互实现(使用 Fetch API)

likeButton.addEventListener('click', async () => {
    try {
        const response = await fetch('/api/like', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' }
        });
        const data = await response.json();
        likeCount.textContent = data.likes;
    } catch (error) {
        console.error('Error:', error);
    }
});

本地存储方案(防止重复点赞)

likeButton.addEventListener('click', () => {
    if (localStorage.getItem('liked') === 'true') return;

    count++;
    likeCount.textContent = count;
    localStorage.setItem('liked', 'true');
});

动画效果增强

likeButton.addEventListener('click', () => {
    likeButton.classList.add('animate');
    setTimeout(() => {
        likeButton.classList.remove('animate');
    }, 300);
});

CSS 部分:

js实现like

.animate {
    transform: scale(1.2);
    transition: transform 0.3s;
}

完整示例(React 版本)

import { useState } from 'react';

function LikeButton() {
    const [likes, setLikes] = useState(0);
    const [liked, setLiked] = useState(false);

    const handleLike = () => {
        if (liked) return;
        setLikes(likes + 1);
        setLiked(true);
    };

    return (
        <button 
            onClick={handleLike}
            style={{ color: liked ? 'red' : 'black' }}
        >
            ♥ {likes}
        </button>
    );
}

标签: jslike
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数:…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…