当前位置:首页 > JavaScript

toast实现 js

2026-04-06 23:44:19JavaScript

Toast 实现(JavaScript)

Toast 是一种轻量级的通知消息,通常在用户操作后短暂显示。以下是几种实现方式:

使用纯 JavaScript 和 CSS

创建基本的 HTML 结构:

<div id="toast" class="toast-hidden">Toast Message</div>

添加 CSS 样式:

#toast {
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  padding: 12px 24px;
  border-radius: 4px;
  background-color: #333;
  color: white;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.toast-visible {
  opacity: 1;
}

JavaScript 实现:

function showToast(message, duration = 3000) {
  const toast = document.getElementById('toast');
  toast.textContent = message;
  toast.classList.add('toast-visible');

  setTimeout(() => {
    toast.classList.remove('toast-visible');
  }, duration);
}

使用第三方库

Materialize CSS 实现:

M.toast({html: 'Toast message', displayLength: 4000});

Bootstrap 实现:

var toastEl = document.getElementById('toast');
var toast = new bootstrap.Toast(toastEl);
toast.show();

动态创建 Toast

更灵活的创建方式:

function createToast(message, options = {}) {
  const defaultOptions = {
    duration: 3000,
    position: 'bottom-center',
    type: 'info'
  };

  const config = {...defaultOptions, ...options};
  const toast = document.createElement('div');
  toast.className = `toast toast-${config.type}`;
  toast.textContent = message;

  document.body.appendChild(toast);

  setTimeout(() => {
    toast.remove();
  }, config.duration);
}

动画效果增强

添加入场和出场动画:

toast实现 js

function animatedToast(message) {
  const toast = document.createElement('div');
  toast.className = 'toast-animated';
  toast.textContent = message;

  document.body.appendChild(toast);

  // 入场动画
  setTimeout(() => {
    toast.style.transform = 'translateY(0)';
    toast.style.opacity = '1';
  }, 10);

  // 出场动画
  setTimeout(() => {
    toast.style.transform = 'translateY(100px)';
    toast.style.opacity = '0';

    setTimeout(() => {
      toast.remove();
    }, 300);
  }, 3000);
}

这些实现方法可以根据具体需求进行调整和扩展,添加更多自定义功能如多种消息类型、可关闭按钮等。

标签: toastjs
分享给朋友:

相关文章

vue 实现toast

vue 实现toast

vue 实现 toast 的方法 在 Vue 中实现 Toast 提示功能可以通过多种方式完成,以下是几种常见的实现方法: 使用第三方库 Vue 生态中有许多成熟的 Toast 库,如 vue-to…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback) {…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…