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

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日

相关文章

  • 在HTML中嵌入JS代码的3种方式总结

    让我来为您详细讲解如何在HTML中嵌入JS代码的3种方式: 1. 在HTML中使用<script>标签 在HTML页面中,我们可以使<script>标签嵌入JavaScript代码。使用方法如下: <!DOCTYPE html> <html> <head> <title>使用<sc…

    JavaScript 2023年5月27日
    00
  • JS 仿Flash动画放大/缩小容器

    下面我将为你详细讲解“JS 仿Flash动画放大/缩小容器”的完整攻略。 攻略概述 这个攻略解决的问题是实现JS仿Flash的动画效果,主要通过控制容器的大小和位置来实现缩放和移动的效果,同时也可以在动画播放过程中改变容器中的内容。具体实现过程分为以下几个步骤: 创建HTML和CSS代码,用来定义容器和样式。 通过JavaScript获取容器对象,并设置其初…

    JavaScript 2023年6月10日
    00
  • JS字符串补全方法padStart()和padEnd()

    一、JS字符串补全方法概述 在 ES2017 中,新增了两个字符串方法:padStart 和 padEnd。这两个方法主要用于在字符串开头或结尾填充指定的字符串使其达到给定的长度。这些方法可以很方便地增强字符串格式化的能力。 padStart():在当前字符串开头填充指定的字符串,直到达到指定的长度。如果当前字符串的长度大于或等于指定的长度,则返回原始字符串…

    JavaScript 2023年5月28日
    00
  • JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)

    JavaScript字符串对象的concat方法可用于连接两个或多个字符串,其语法为: str.concat(string2, string3, …, stringX) 其中,str 是原始字符串,string2、string3 等是要连接的字符串。 示例一:连接两个字符串 const str1 = ‘Hello’; const str2 = ‘worl…

    JavaScript 2023年5月28日
    00
  • JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端

    在JS中使用mailto协议可以实现将用户输入的内容传递到本地邮件客户端。mailto协议是一种特殊的URL协议,使用具有mailto之前缀的超链接或javascript中的window.location.href等方法可以触发邮件客户端的启动。 以下是实现将用户在网页中输入的内容传递到本地邮件客户端的完整攻略: 1.编写HTML代码 首先,需要在HTML中…

    JavaScript 2023年5月19日
    00
  • create-react-app项目配置全解析

    create-react-app 项目配置全解析 create-react-app 是基于 React 的官方脚手架工具,使用 create-react-app 可以快速构建一个 React 应用,并且默认已经配置了一些开发所需的基础配置,可以省去我们自己手动配置的过程。 安装 使用 create-react-app 前需要先全局安装该工具,使用以下命令进行…

    JavaScript 2023年6月10日
    00
  • JavaScript实现二级菜单的制作

    下面是详细的JavaScript实现二级菜单的制作攻略: 1. 准备工作 在制作二级菜单之前,需要先准备好以下内容: 一个 HTML 文件 一个 CSS 文件 一个 JavaScript 文件 其中,HTML 文件是页面的基础结构,CSS 文件是用来美化页面的样式,JavaScript 文件则是用来实现菜单的交互效果的。 在 HTML 文件中,需要创建一个菜…

    JavaScript 2023年6月11日
    00
  • js中Array对象的常用遍历方法详解

    下面是“js中Array对象的常用遍历方法详解”的完整攻略。 一、前言 在JavaScript中,数组(Array)是一种常用的数据类型,很多时候需要对数组进行遍历和处理。本篇文章将带大家详细讲解JavaScript中Array对象的常用遍历方法。 二、常用遍历方法 1. forEach forEach方法是ES5中Array对象自带的方法,主要用于遍历数组…

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