当前位置:首页 > 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; 以提升动画流畅度。

滚动页面渐显元素

结合 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 事件统计文本框内容长度:

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%

js 实现简单特效

注意事项

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

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

相关文章

下雪特效vue实现

下雪特效vue实现

下雪特效的 Vue 实现方法 使用 CSS 动画和 Vue 动态渲染 在 Vue 中可以通过动态生成雪花的 DOM 元素,结合 CSS 动画实现下雪效果。创建一个 Vue 组件,随机生成雪花的位置、大…

vue实现简单拖拽

vue实现简单拖拽

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

vue实现简单登录

vue实现简单登录

使用 Vue 实现简单登录功能 创建 Vue 项目 确保已安装 Vue CLI,通过以下命令创建新项目: vue create vue-login-demo 选择默认配置或手动配置(如 Babel、…

vue简单代码实现

vue简单代码实现

以下是一个基于 Vue 3 的简单代码实现示例,包含基础功能演示: 基础模板结构 <!DOCTYPE html> <html lang="en"> <head>…

vue实现好看的特效

vue实现好看的特效

Vue实现视觉特效的常用方法 使用CSS动画与过渡 Vue内置的<transition>和<transition-group>组件可轻松实现元素出现/消失的动画效果。通过组合C…

vue轮播图简单实现

vue轮播图简单实现

使用 Vue 实现轮播图 以下是一个基于 Vue 3 的简单轮播图实现方法,无需依赖第三方库。 基础结构 在 Vue 单文件组件中,通过 v-for 渲染图片列表,并用 CSS 控制切换效果。 &…