当前位置:首页 > JavaScript

js 实现简单特效

2026-03-15 22:29:41JavaScript

实现鼠标悬停变色效果

通过监听 mouseovermouseout 事件动态修改元素背景色:

const box = document.getElementById('hoverBox');
box.addEventListener('mouseover', () => {
  box.style.backgroundColor = '#ffcc00';
});
box.addEventListener('mouseout', () => {
  box.style.backgroundColor = '#f0f0f0';
});

关键点style 属性直接操作 CSS,适合快速修改简单样式。

点击元素放大动画

使用 transformtransition 实现平滑缩放效果:

const button = document.querySelector('.scaleButton');
button.addEventListener('click', () => {
  button.style.transform = 'scale(1.2)';
  setTimeout(() => {
    button.style.transform = 'scale(1)';
  }, 300);
});

优化建议:CSS 中预先添加 transition: transform 0.3s ease; 以提升动画流畅度。

js 实现简单特效

滚动页面渐显元素

结合 window.scrollY 和透明度控制元素显示:

window.addEventListener('scroll', () => {
  const element = document.querySelector('.fadeIn');
  const position = element.getBoundingClientRect().top;
  const screenHeight = window.innerHeight;
  if (position < screenHeight * 0.75) {
    element.style.opacity = '1';
    element.style.transform = 'translateY(0)';
  }
});

配套 CSS

.fadeIn {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.5s, transform 0.5s;
}

实时输入字符计数

监听 input 事件统计文本框内容长度:

js 实现简单特效

const textarea = document.getElementById('message');
const counter = document.getElementById('counter');
textarea.addEventListener('input', () => {
  counter.textContent = `${textarea.value.length}/100`;
});

扩展功能:可通过 maxlength 属性限制输入长度。

简易图片轮播

通过修改 left 属性实现水平滑动效果:

let currentIndex = 0;
const slides = document.querySelectorAll('.slide');
function showSlide(index) {
  slides.forEach((slide, i) => {
    slide.style.left = `${100 * (i - index)}%`;
  });
}
document.getElementById('next').addEventListener('click', () => {
  currentIndex = (currentIndex + 1) % slides.length;
  showSlide(currentIndex);
});

CSS 基础:需为 .slide 设置 position: absolutewidth: 100%

注意事项

  • 性能优化:频繁触发的特效(如滚动事件)建议使用 requestAnimationFrame 或防抖函数。
  • 兼容性:现代浏览器支持上述 API,如需兼容旧版本可添加 polyfill。
  • 扩展性:复杂特效建议使用 CSS 动画库(如 Animate.css)或 JavaScript 动画库(如 GSAP)。

标签: 特效简单
分享给朋友:

相关文章

vue实现简单拖拽

vue实现简单拖拽

Vue 实现简单拖拽功能 在 Vue 中实现拖拽功能可以通过 HTML5 的拖放 API 或第三方库(如 vuedraggable)来完成。以下是两种常见的实现方式: 使用 HTML5 拖放 API…

vue有没有实现特效

vue有没有实现特效

Vue 可以通过多种方式实现特效,包括内置过渡动画、第三方动画库、CSS 动画和 JavaScript 动画库。以下是一些常见方法: 使用 Vue 内置过渡动画 Vue 提供了 <transi…

vue实现简单登录注册

vue实现简单登录注册

Vue 实现登录注册功能 项目初始化 使用 Vue CLI 创建项目 vue create auth-demo cd auth-demo 安装必要依赖 npm install axios vue-…

vue登录功能实现特效

vue登录功能实现特效

Vue登录功能实现特效的方法 在Vue中实现登录功能的特效可以增强用户体验。以下是几种常见的特效实现方式: 背景粒子动画 使用particles.js或vue-particles库创建动态背景粒子效…

vue实现官网特效

vue实现官网特效

Vue 实现官网特效的方法 在 Vue 中实现官网常见的特效(如滚动动画、交互式组件、动态背景等),可以通过以下方式实现: 使用 CSS 动画和过渡 Vue 内置了过渡和动画支持,可以通过 <…

vue简单实现瀑布流

vue简单实现瀑布流

vue实现瀑布流的方法 使用Vue实现瀑布流布局可以通过CSS或JavaScript库完成。以下是几种常见方法: 使用CSS columns属性 CSS columns属性可以快速实现瀑布流效果,适…