JS实现提示效果弹出及延迟隐藏的功能

yizhihongxing

JS实现提示效果的弹出及延迟隐藏功能,可以通过以下步骤来完成:

步骤一:创建提示框HTML结构

首先,我们需要创建一个提示框的HTML结构,可以使用div标签模拟弹出框,也可以使用ul或者table标签,此处以使用div标签为例。

<div id="tip-box" style="display:none;">
  <div class="tip-content">这里是提示框的内容</div>
  <div class="tip-close">×</div>
</div>

在上面的HTML结构中,id为“tip-box”的的div标签表示提示框的容器,style属性中的"display:none;"表示初始状态为隐藏;div中的“tip-content”表示提示框的内容区域,而“tip-close”表示提示框右上角的关闭按钮。

步骤二:编写CSS样式

接下来,我们需要编写一些CSS样式,来美化提示框的外观,比如修改背景色、边框颜色、文字颜色、位置等等。

#tip-box {
  padding: 10px;
  background-color: #fff;
  border: 1px solid #ccc;
  position: absolute;
  top: 50px;
  left: 150px;
}

.tip-content {
  line-height: 1.5em;
  padding-bottom: 10px;
}

.tip-close {
  cursor: pointer;
  float: right;
  color: #ccc;
  font-weight: bold;
}

在上述CSS代码中,我们为提示框的容器添加了一些基本样式,比如设置了padding、背景色以及边框颜色,并设置了提示框的位置为绝对定位并在上方离页面顶部50个像素,同时我们还设置了关闭按钮的颜色、鼠标样式等样式内容。

步骤三:编写JavaScript代码

好了,现在我们已经完成了HTML和CSS的创建,在JS中我们需要完成以下功能:

  • 点击某个按钮或链接时,提示框弹出
  • 延迟一段时间后提示框自动隐藏
  • 点击关闭按钮或提示框以外的地方时,提示框隐藏

以下是我们需要编写的JS代码:

var tipBox = document.getElementById('tip-box');
var closeBtn = document.querySelector('.tip-close');

// 点击按钮,显示提示框
document.getElementById('show-btn').addEventListener('click', function(){
    tipBox.style.display = 'block';
});

// 延迟一段时间后,自动隐藏提示框
setTimeout(function(){
    tipBox.style.display = 'none';
}, 5000);

// 点击关闭按钮,隐藏提示框
closeBtn.addEventListener('click', function(){
    tipBox.style.display = 'none';
});

// 点击提示框以外的区域,隐藏提示框
window.addEventListener('click', function(e){
    if (e.target == tipBox) {
        tipBox.style.display = 'none';
    }
});

在上述代码中,我们首先获取了提示框容器和关闭按钮的元素,然后使用事件监听器为"show-btn"按钮添加了一个点击事件,当按钮被点击时,提示框将显示出来。接着,我们使用setTimeout函数实现了一个延迟隐藏的效果,该函数在5秒后自动将提示框隐藏。最后,我们为关闭按钮和页面中任何位置的点击事件添加了事件监听器,当关闭按钮或提示框以外的位置被点击时,也会隐藏提示框。

示例一: 悬浮按钮实现提示框弹出及延迟隐藏的功能

<button id="show-btn">Show tip box</button>
<div id="tip-box" style="display:none;">
  <div class="tip-content">这是一个提示框:内容如下......</div>
  <div class="tip-close">×</div>
</div>

<script>
  var tipBox = document.getElementById('tip-box');
  var closeBtn = document.querySelector('.tip-close');

  //鼠标移入悬浮按钮,显示提示框
  document.getElementById('show-btn').addEventListener('mouseenter',function(){
    tipBox.style.display = 'block';
  });

  //鼠标移出悬浮按钮,延迟一段时间后,自动隐藏提示框
  document.getElementById('show-btn').addEventListener('mouseleave',function(){
    setTimeout(function(){
      tipBox.style.display = 'none';
    }, 2000);
  });

  // 点击关闭按钮,隐藏提示框
  closeBtn.addEventListener('click', function(){
    tipBox.style.display = 'none';
  });

  // 点击提示框以外的区域,隐藏提示框
  window.addEventListener('click', function(e){
    if (e.target == tipBox) {
      tipBox.style.display = 'none';
    }
  });
</script>

在示例一中,我们在页面中添加了一个“Show tip box”的按钮,当鼠标移动到按钮上时,提示框会弹出并在鼠标移出按钮2秒后自动隐藏。

示例二:表单验证实现提示框弹出及延迟隐藏的功能

<form action="#">
  <label for="username">用户名:</label>
  <input type="text" id="username">
  <button id="submit-btn" type="submit">提交</button>
</form>

<div id="tip-box" style="display:none;">
  <div class="tip-content">用户名不能为空</div>
  <div class="tip-close">×</div>
</div>

<script>
  var tipBox = document.getElementById('tip-box');
  var closeBtn = document.querySelector('.tip-close');
  var submitBtn = document.getElementById('submit-btn');

  //点击提交按钮,如果用户名为空则提示框弹出
  submitBtn.addEventListener('click', function(e){
    e.preventDefault();//默认提交行为禁止
    var username = document.getElementById('username');
    if(username.value === ''){
      tipBox.style.display = 'block';
      //延迟一段时间后,自动隐藏提示框
      setTimeout(function(){
        tipBox.style.display = 'none';
      }, 2000);
    }
  });

  // 点击关闭按钮,隐藏提示框
  closeBtn.addEventListener('click', function(){
    tipBox.style.display = 'none';
  });

  // 点击提示框以外的区域,隐藏提示框
  window.addEventListener('click', function(e){
    if (e.target == tipBox) {
      tipBox.style.display = 'none';
    }
  });
</script>

在示例二中,我们添加了一个表单,在提交表单时,我们会检查用户名是否为空,若为空,则提示框弹出并在2秒后自动隐藏。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现提示效果弹出及延迟隐藏的功能 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • egg.js的基本使用实例

    下面我为大家讲解一下 Egg.js 的基本使用实例: 简介 Egg.js 是一个基于 Node.js 和 Koa.js 的企业级应用开发框架,它提供了一套易于上手的约定和最佳实践,并基于这些约定和最佳实践提供了适用于企业级应用的各种插件和扩展,同时还支持基于插件的扩展机制,让用户可以根据自己的需要对框架进行个性化定制。 安装 安装 Egg.js 的前提条件是…

    JavaScript 2023年6月11日
    00
  • JavaScript Promise 用法

    首先让我们先来了解一下JavaScript Promise的概念。 什么是Promise Promise是JavaScript 一个非常重要的异步编程概念。它可以让我们处理异步操作更加简单、更加优雅,避免了回调地狱等问题。Promise 本质上是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。 Promise 本身是一个对象,它有三种…

    JavaScript 2023年5月28日
    00
  • 分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]

    题目描述 给定 $n$ 条不平行的直线,它们组成的平面最多可以分成多少个部分? 前置知识 在掌握本题解之前,请确保对组合数学有一定的基础。对于初学者,推荐学习集合排列组合等基础知识。 解题思路 首先,可以从一个空间开始,再逐渐添加直线,最终求出能够分割出的区域总数。 假设空间中没有直线,那么初始情况下只有1个区域。每添加一条直线,都会增加一部分区域。添加第 …

    JavaScript 2023年5月28日
    00
  • JQuery解析HTML、JSON和XML实例详解

    JQuery解析HTML、JSON和XML实例详解 1. HTML解析 1.1. 使用.text()方法解析HTML 1.1.1. 代码示例 <!– HTML文本 –> <div id="content"> <p>Hello, World!</p> </div> // JQu…

    JavaScript 2023年5月27日
    00
  • Javascript Array prototype 属性

    以下是关于JavaScript Array prototype属性的完整攻略。 JavaScript Array prototype属性 JavaScript Array prototype属性是所有数组对象的原型对象。该属性包含了所有数组对象可以访问的方法和属性。我们可以通过修改Array.prototype来扩展数组对象的功能。 下面是一个使用Array…

    JavaScript 2023年5月11日
    00
  • Javascript 多浏览器兼容性问题及解决方案

    Javascript 多浏览器兼容性问题及解决方案 Javascript 是一种前端开发必不可少的技术,但由于不同浏览器对Javascript的解析有所不同,会导致代码在不同浏览器上出现兼容性问题。本篇文章将详细介绍Javascript多浏览器兼容性问题以及解决方案。 兼容性问题 1. 兼容性问题分类 Javascript 兼容性问题主要分为以下几类: 对象…

    JavaScript 2023年6月10日
    00
  • 如何快速解决JS或Jquery ajax异步跨域的问题

    跨域问题在前端开发中是比较常见的问题,特别是在开发时使用了AJAX或JQuery AJAX进行异步请求时。下面为您提供解决跨域问题的完整攻略: 1. 使用JSONP JSONP(JSON with Padding)是解决跨域问题的一种方式,它利用了HTML文档可以通过script标签嵌入并执行javascript代码的特性。 要使用JSONP,需要在服务端添…

    JavaScript 2023年6月11日
    00
  • js 数组 find,some,filter,reduce区别详解

    当我们在开发 JavaScript 程序时,经常会用到数组的各种方法,其中包括 find、some、filter 和 reduce 等方法。这些方法可以帮助我们在数组中找到特定的元素、过滤不需要的元素、对数组进行操作并返回新的数组等。 下面就一个一个地详细讲解这些方法的用法和区别: find 方法 find 方法返回满足条件的第一个元素,如果找不到,返回 u…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部