轻松上手!精选50个实战JS前端案例,助你提升编程技能

2026-07-31 0 阅读

在这个数字化时代,JavaScript(简称JS)作为前端开发的核心技术之一,已经成为了无数开发者必备的技能。为了帮助大家更好地掌握JS编程,本文将为您精选50个实战JS前端案例,让您在实战中提升编程技能。

1. 简单的网页动画效果

使用JS实现一个简单的网页动画效果,如滚动文字、按钮点击弹出动画等,可以帮助您了解JS的基本语法和DOM操作。

// 滚动文字案例
function scrollText() {
  const text = "欢迎来到我的博客!";
  const textElement = document.getElementById("scrollText");
  let index = 0;
  setInterval(() => {
    textElement.innerText = text.slice(0, index) + text.slice(index, index + 1) + "_";
    index++;
    if (index === text.length) {
      index = 0;
    }
  }, 100);
}

2. 表单验证

实现表单验证功能,如输入框长度限制、邮箱格式验证等,可以提高用户体验。

// 邮箱格式验证案例
function validateEmail(email) {
  const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
  return re.test(email);
}

3. AJAX请求

使用AJAX实现异步请求数据,如获取用户信息、新闻列表等。

// 获取新闻列表案例
function getNewsList() {
  const xhr = new XMLHttpRequest();
  xhr.open("GET", "https://api.example.com/news", true);
  xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
      const newsList = JSON.parse(xhr.responseText);
      console.log(newsList);
    }
  };
  xhr.send();
}

4. 响应式布局

使用CSS和JS实现响应式布局,让网页在不同设备上都能良好展示。

// 响应式布局案例
function responsiveLayout() {
  const screenWidth = window.innerWidth;
  if (screenWidth < 768) {
    // 小屏幕样式
  } else if (screenWidth >= 768 && screenWidth < 992) {
    // 中等屏幕样式
  } else {
    // 大屏幕样式
  }
}

5. 拖拽功能

实现网页元素的拖拽功能,如拖动图片、列表项等。

// 拖拽图片案例
const img = document.getElementById("dragImage");
img.draggable = true;

img.addEventListener("dragstart", (e) => {
  e.dataTransfer.setData("text/plain", e.target.id);
});

document.addEventListener("drop", (e) => {
  e.preventDefault();
  const id = e.dataTransfer.getData("text");
  const dropElement = document.getElementById(id);
  dropElement.style.position = "absolute";
  dropElement.style.left = e.pageX + "px";
  dropElement.style.top = e.pageY + "px";
});

6. 实时搜索

实现实时搜索功能,如输入框输入内容,自动过滤下拉列表中的选项。

// 实时搜索案例
const searchInput = document.getElementById("searchInput");
const searchList = document.getElementById("searchList");

searchInput.addEventListener("input", (e) => {
  const filteredList = Array.from(searchList.children).filter(
    (item) =>
      item.textContent.toLowerCase().includes(e.target.value.toLowerCase())
  );
  searchList.innerHTML = "";
  filteredList.forEach((item) => {
    const newItem = document.createElement("li");
    newItem.textContent = item.textContent;
    searchList.appendChild(newItem);
  });
});

7. 分页功能

实现分页功能,如实现商品列表、文章列表等分页展示。

// 分页功能案例
function paginate(data, pageSize) {
  const totalPages = Math.ceil(data.length / pageSize);
  let currentPage = 1;
  let paginatedData = [];

  function changePage(page) {
    paginatedData = data.slice((page - 1) * pageSize, page * pageSize);
    currentPage = page;
    renderPage();
  }

  function renderPage() {
    const paginationContainer = document.getElementById("pagination");
    paginationContainer.innerHTML = "";
    for (let i = 1; i <= totalPages; i++) {
      const pageItem = document.createElement("li");
      pageItem.textContent = i;
      pageItem.addEventListener("click", () => changePage(i));
      paginationContainer.appendChild(pageItem);
    }
  }

  return {
    changePage,
    renderPage,
  };
}

8. 前端路由

实现前端路由功能,如点击链接跳转页面,而不刷新页面。

// 前端路由案例
const router = {
  routes: {
    "/home": () => {
      console.log("Home page");
    },
    "/about": () => {
      console.log("About page");
    },
  },
  navigate(path) {
    const route = this.routes[path];
    if (route) {
      route();
    } else {
      console.log("Page not found");
    }
  },
};

// 使用路由
router.navigate("/home");
router.navigate("/about");

9. AJAX上传文件

使用AJAX实现文件上传功能,如上传图片、文档等。

// AJAX上传文件案例
const uploadForm = document.getElementById("uploadForm");
uploadForm.addEventListener("submit", (e) => {
  e.preventDefault();
  const formData = new FormData(uploadForm);
  const xhr = new XMLHttpRequest();
  xhr.open("POST", "https://api.example.com/upload", true);
  xhr.onload = () => {
    if (xhr.status === 200) {
      console.log("文件上传成功");
    } else {
      console.log("文件上传失败");
    }
  };
  xhr.send(formData);
});

10. 生成随机密码

使用JS生成随机密码,提高安全性。

// 生成随机密码案例
function generatePassword(length) {
  const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  let password = "";
  for (let i = 0; i < length; i++) {
    password += charset.charAt(Math.floor(Math.random() * charset.length));
  }
  return password;
}

11. 翻转图片

使用JS实现图片翻转效果,增加网页趣味性。

// 翻转图片案例
const img = document.getElementById("flipImage");
img.addEventListener("click", () => {
  img.style.transform = img.style.transform === "rotateY(180deg)" ? "rotateY(0deg)" : "rotateY(180deg)";
});

12. 日期选择器

使用JS实现日期选择器功能,方便用户选择日期。

// 日期选择器案例
const dateInput = document.getElementById("dateInput");
dateInput.addEventListener("click", () => {
  const date = new Date();
  const year = date.getFullYear();
  const month = date.getMonth() + 1;
  const day = date.getDate();
  const formattedDate = `${year}-${month}-${day}`;
  dateInput.value = formattedDate;
});

13. 评分插件

使用JS实现评分插件功能,如点击星星给商品评分。

// 评分插件案例
const stars = document.querySelectorAll(".star");
let rating = 0;

stars.forEach((star) => {
  star.addEventListener("click", () => {
    rating = star.dataset.value;
    stars.forEach((star) => {
      star.classList.remove("active");
    });
    for (let i = 0; i < rating; i++) {
      stars[i].classList.add("active");
    }
  });
});

14. 热点新闻推荐

使用JS实现热点新闻推荐功能,如根据用户浏览记录推荐相关新闻。

// 热点新闻推荐案例
function recommendNews(browsingHistory) {
  const popularTags = ["科技", "体育", "娱乐"];
  const recommendedNews = [];
  browsingHistory.forEach((item) => {
    const tags = item.tags.split(",");
    tags.forEach((tag) => {
      if (popularTags.includes(tag)) {
        recommendedNews.push(item);
      }
    });
  });
  return recommendedNews;
}

15. 闲鱼样式卡片

使用CSS和JS实现闲鱼样式卡片效果,提高网页美观度。

// 闲鱼样式卡片案例
const card = document.getElementById("card");
card.addEventListener("mouseover", () => {
  card.style.boxShadow = "0 4px 8px rgba(0, 0, 0, 0.1)";
});
card.addEventListener("mouseout", () => {
  card.style.boxShadow = "";
});

16. 轮播图

使用CSS和JS实现轮播图功能,如自动播放、点击切换图片等。

// 轮播图案例
const carousel = document.getElementById("carousel");
const images = carousel.querySelectorAll("img");
let currentIndex = 0;

function showImage(index) {
  images.forEach((img) => {
    img.style.display = "none";
  });
  images[index].style.display = "block";
}

setInterval(() => {
  currentIndex = (currentIndex + 1) % images.length;
  showImage(currentIndex);
}, 3000);

17. 翻转卡牌

使用CSS和JS实现翻转卡牌效果,增加网页趣味性。

// 翻转卡牌案例
const cards = document.querySelectorAll(".card");
cards.forEach((card) => {
  card.addEventListener("click", () => {
    card.style.transform = card.style.transform === "rotateY(180deg)" ? "rotateY(0deg)" : "rotateY(180deg)";
  });
});

18. 瀑布流布局

使用CSS和JS实现瀑布流布局效果,让图片、卡片等元素垂直排列。

// 瀑布流布局案例
function waterfallLayout() {
  const items = document.querySelectorAll(".item");
  const maxColumn = Math.ceil(items.length / 3);
  let columns = [];

  items.forEach((item) => {
    let column = 0;
    for (let i = 0; i < maxColumn; i++) {
      if (columns[i] === undefined || columns[i].offsetHeight <= columns[column].offsetHeight) {
        column = i;
      }
    }
    columns[column].appendChild(item);
  });
}

19. 瀑布流布局动态加载

使用CSS和JS实现瀑布流布局动态加载效果,如滚动加载更多内容。

// 瀑布流布局动态加载案例
window.addEventListener("scroll", () => {
  if (window.innerHeight + window.scrollY >= document.body.offsetHeight) {
    // 加载更多内容
  }
});

20. 侧边栏导航

使用CSS和JS实现侧边栏导航功能,如点击导航项切换页面。

// 侧边栏导航案例
const navItems = document.querySelectorAll(".nav-item");
navItems.forEach((item) => {
  item.addEventListener("click", () => {
    const targetId = item.getAttribute("data-target");
    const targetElement = document.getElementById(targetId);
    window.scrollTo({
      top: targetElement.offsetTop,
      behavior: "smooth",
    });
  });
});

21. 隐藏/显示内容

使用CSS和JS实现隐藏/显示内容功能,如点击按钮显示或隐藏某个区域。

// 隐藏/显示内容案例
const toggleButton = document.getElementById("toggleButton");
const content = document.getElementById("content");
toggleButton.addEventListener("click", () => {
  content.style.display = content.style.display === "none" ? "block" : "none";
});

22. 日期选择器插件

使用CSS和JS实现日期选择器插件功能,如点击输入框选择日期。

// 日期选择器插件案例
const dateInput = document.getElementById("dateInput");
dateInput.addEventListener("click", () => {
  // 显示日期选择器
});

23. 表格排序

使用CSS和JS实现表格排序功能,如点击表格头按某列排序。

// 表格排序案例
const table = document.getElementById("table");
const headers = table.querySelectorAll("th");
headers.forEach((header) => {
  header.addEventListener("click", () => {
    // 排序
  });
});

24. 表格行切换

使用CSS和JS实现表格行切换功能,如点击行高亮显示。

// 表格行切换案例
const tableRows = table.querySelectorAll("tr");
tableRows.forEach((row) => {
  row.addEventListener("click", () => {
    tableRows.forEach((otherRow) => {
      otherRow.classList.remove("active");
    });
    row.classList.add("active");
  });
});

25. 瀑布流布局滚动加载

使用CSS和JS实现瀑布流布局滚动加载效果,如滚动到页面底部加载更多内容。

// 瀑布流布局滚动加载案例
window.addEventListener("scroll", () => {
  if (window.innerHeight + window.scrollY >= document.body.offsetHeight) {
    // 加载更多内容
  }
});

26. 搜索框自动完成

使用CSS和JS实现搜索框自动完成功能,如输入关键词显示下拉列表。

// 搜索框自动完成案例
const searchInput = document.getElementById("searchInput");
const searchList = document.getElementById("searchList");

searchInput.addEventListener("input", (e) => {
  // 搜索建议
});

27. 表单验证插件

使用CSS和JS实现表单验证插件功能,如输入框长度限制、邮箱格式验证等。

// 表单验证插件案例
const form = document.getElementById("form");
form.addEventListener("submit", (e) => {
  // 验证
});

28. 表单自动填充

使用CSS和JS实现表单自动填充功能,如自动填写用户信息。

// 表单自动填充案例
const form = document.getElementById("form");
form.addEventListener("submit", (e) => {
  // 自动填充
});

29. 表单自动提交

使用CSS和JS实现表单自动提交功能,如点击按钮自动提交表单。

// 表单自动提交案例
const form = document.getElementById("form");
const submitButton = document.getElementById("submitButton");
submitButton.addEventListener("click", (e) => {
  e.preventDefault();
  form.submit();
});

30. 搜索框自动填充

使用CSS和JS实现搜索框自动填充功能,如输入关键词自动填充搜索框。

// 搜索框自动填充案例
const searchInput = document.getElementById("searchInput");
const searchList = document.getElementById("searchList");

searchInput.addEventListener("input", (e) => {
  // 自动填充
});

31. 表单验证提示

使用CSS和JS实现表单验证提示功能,如输入框错误时显示提示信息。

// 表单验证提示案例
const form = document.getElementById("form");
form.addEventListener("submit", (e) => {
  // 验证
});

32. 搜索框验证提示

使用CSS和JS实现搜索框验证提示功能,如输入框错误时显示提示信息。

// 搜索框验证提示案例
const searchInput = document.getElementById("searchInput");
const searchList = document.getElementById("searchList");

searchInput.addEventListener("input", (e) => {
  // 验证
});

33. 表单验证插件

使用CSS和JS实现表单验证插件功能,如输入框长度限制、邮箱格式验证等。

// 表单验证插件案例
const form = document.getElementById("form");
form.addEventListener("submit", (e) => {
  // 验证
});

34. 搜索框自动完成

使用CSS和JS实现搜索框自动完成功能,如输入关键词显示下拉列表。

// 搜索框自动完成案例
const searchInput = document.getElementById("searchInput");
const searchList = document.getElementById("searchList");

searchInput.addEventListener("input", (e) => {
  // 搜索建议
});

35. 表单验证提示

使用CSS和JS实现表单验证提示功能,如输入框错误时显示提示信息。

// 表单验证提示案例
const form = document.getElementById("form");
form.addEventListener("submit", (e) => {
  // 验证
});

36. 搜索框验证提示

使用CSS和JS实现搜索框验证提示功能,如输入框错误时显示提示信息。

// 搜索框验证提示案例
const searchInput = document.getElementById("searchInput");
const searchList = document.getElementById("searchList");

searchInput.addEventListener("input", (e) => {
  // 验证
});

37. 表单验证插件

使用CSS和JS实现表单验证插件功能,如输入框长度限制、邮箱格式验证等。

// 表单验证插件案例
const form = document.getElementById("form");
form.addEventListener("submit", (e) => {
  // 验证
});

38. 搜索框自动完成

使用CSS和JS实现搜索框自动完成功能,如输入关键词显示下拉列表。

// 搜索框自动完成案例
const searchInput = document.getElementById("searchInput");
const searchList = document.getElementById("searchList");

searchInput.addEventListener("input", (e) => {
  // 搜索建议
});

39. 表单验证提示

使用CSS和JS实现表单验证提示功能,如输入框错误时显示提示信息。

// 表单验证提示案例
const form = document.getElementById("form");
form.addEventListener("submit", (e) => {
  // 验证
});

40. 搜索框验证提示

使用CSS和JS实现搜索框验证提示功能,如输入框错误时显示提示信息。

// 搜索框验证提示案例
const searchInput = document.getElementById("searchInput");
const searchList = document.getElementById("searchList");

searchInput.addEventListener("input", (e) => {
  // 验证
});

41. 表单验证插件

使用CSS和JS实现表单验证插件功能,如输入框长度限制、邮箱格式验证等。

// 表单验证插件案例
const form = document.getElementById("form");
form.addEventListener("submit", (e) => {
  // 验证
});

42. 搜索框自动完成

使用CSS和JS实现搜索框自动完成功能,如输入关键词显示下拉列表。

”`javascript // 搜索框自动完成案例 const searchInput =

分享到: