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日

相关文章

  • JavaScript在for循环中绑定事件解决事件参数不同的情况

    JavaScript 在 for 循环中绑定事件时,通常会遇到事件参数不同的情况,这种情况下,如果不加以处理,则会导致事件回调出错或者引起内存泄漏等问题。解决该问题的方法是通过使用闭包和立即执行函数表达式,来给事件参数绑定上恰当的值。下面是具体的攻略: 1. 通过立即执行函数表达式给事件参数绑定上值 通过立即执行函数表达式可以在每次迭代时创建一个新的作用域,…

    JavaScript 2023年6月10日
    00
  • jquery处理json对象

    一、简介 在前端开发中,处理 JSON 数据是一项基本技能,而 jQuery 正是我们最常使用的 JS 库之一。本文将详细介绍 jQuery 如何处理 JSON 数据对象。 二、jQuery 处理 JSON 将 JSON 字符串转换为 JavaScript 对象 使用 JSON.parse() 方法,可以将 JSON 字符串转换为 JavaScript 对象…

    JavaScript 2023年5月27日
    00
  • js文件包含的几种方式介绍

    当我们在编写JS程序时,可能会将不同的JS代码写在不同的文件中,然后在主文件中以某种方式引入这些文件,这被称为JS文件包含。本文将介绍JS文件包含的几种方式和如何使用它们。 1. script标签 最常见的JS文件包含方式是使用script标签引入外部JS文件。这种方式可以在HTML文件中直接使用script标签,并通过src属性引入外部JS文件。下面是一个…

    JavaScript 2023年5月27日
    00
  • js 对象是否存在判断

    判断 JavaScript 对象是否存在是Web开发中经常使用到的操作之一。以下是几种常见的判断 JavaScript 对象是否存在的方法。 方法一:使用typeof关键字 使用 typeof 关键字可以判断一个变量是否存在。当变量存在时,typeof 关键字返回其类型,否则将返回 “undefined”。 if (typeof myObj === &quo…

    JavaScript 2023年5月27日
    00
  • javascript制作坦克大战全纪录(1)

    “javascript制作坦克大战全纪录(1)”是一个经典的HTML5游戏开发教程,下面我将对这个教程进行详细讲解。 什么是”javascript制作坦克大战全纪录(1)”? “javascript制作坦克大战全纪录(1)”是一篇易于理解的HTML5游戏开发教程,讲述了如何使用HTML5和JavaScript开发一个2D的坦克大战游戏。 准备工作 在开始制作…

    JavaScript 2023年6月10日
    00
  • jQuery ajax(复习)—Baidu ajax request分离版

    下面是 “jQuery ajax(复习)—Baidu ajax request分离版”的完整攻略。 简介 本篇攻略主要介绍如何使用jQuery发起Ajax请求,以及如何使用Baidu Ajax Request分离版优化你的Ajax请求。 Ajax基础 什么是Ajax? Ajax全称是 Asynchronous JavaScript and XML(异步的 J…

    JavaScript 2023年6月11日
    00
  • js获取字符串最后一位方法汇总

    JS获取字符串最后一位方法汇总 在JS开发过程中,获取字符串最后一位是一个很常见的需求。下面将对常见的获取字符串最后一位的方法进行汇总并做详细讲解。 方法一:使用字符串的slice方法 使用字符串的slice方法可以获取字符串从指定位置开始到指定位置结束的子串,当指定结束位置为-1时,即可得到字符串的最后一个字符。 var str = ‘hello’; va…

    JavaScript 2023年5月28日
    00
  • ES6_day01

    ### canvas特性 标签中的文本只有在浏览器下支持canvas标签时才显示 行内块元素 高度设置在标签属性上 ### 填充色设置 ctx.fillStyle=”#ff0000″ ### 线条颜色设置 ctx.strokeStyle=”ff0000″ ### 线条粗细 ctx.lineWidth=”” 线 moveTo(x,y) 开始位置 lineTo(…

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