首页 > 编程语言 >javascript 原生JS实现 fadeIn / fadeOut 方法

javascript 原生JS实现 fadeIn / fadeOut 方法

时间:2024-04-07 16:33:59浏览次数:23  
标签:opacity el style function fadeOut javascript JS callback var

js 源码

Object.prototype.fadeIn = function(time, callback) {

var el = this;

el.style.opacity = 0;

var st = setInterval(function() {

el.style.opacity = parseFloat(el.style.opacity) + 0.01;

if (el.style.opacity >= 1) {

clearInterval(st);

if (callback !== undefined) {

callback();

}

}

}, time);

return this;

}

Object.prototype.fadeOut = function(time, callback) {

var el = this;

el.style.opacity = 1;

var st = setInterval(function() {

el.style.opacity = parseFloat(el.style.opacity) - 0.01;

if (el.style.opacity <= 0) {

clearInterval(st);

if (callback !== undefined) {

callback();

}

}

}, time);

return this;

}

window.onload = function() {

var el = document.querySelector(".spinner");

el.fadeOut(50, function() {

el.fadeIn(50, function() {

console.log("finished");

});

});

}

示例:

Document

.spinner {

width: 60px;

height: 60px;

position: relative;

margin: 100px auto;

}

.double-bounce-outer, .double-bounce-inner {

width: 100%;

height: 100%;

border-radius: 50%;

background-color: #67CF22;

opacity: 0.6;

position: absolute;

top: 0px;

left: 0px;

-webkit-animation: bounce 2.0s infinite ease-in-out;

animation: bounce 2.0s infinite ease-in-out;

}

.double-bounce-inner {

-webkit-animation-delay: -1.0s;

animation-delay: -1.0s;

}

@keyframes bounce {

0%, 100% {

transform: scale(0.0);

} 50% {

transform: scale(1.0);

}

}

@-webkit-keyframes bounce {

0%, 100% {

-webkit-transform: scale(0.0);

} 50% {

-webkit-transform: scale(1.0);

}

}

Object.prototype.fadeIn = function(time, callback) {

var el = this;

el.style.opacity = 0;

var st = setInterval(function() {

el.style.opacity = parseFloat(el.style.opacity) + 0.02;

if (el.style.opacity >= 1) {

clearInterval(st);

if (callback !== undefined) {

callback();

}

}

}, time);

return this;

}

Object.prototype.fadeOut = function(time, callback) {

var el = this;

el.style.opacity = 1;

var st = setInterval(function() {

el.style.opacity = parseFloat(el.style.opacity) - 0.02;

if (el.style.opacity <= 0) {

clearInterval(st);

if (callback !== undefined) {

callback();

}

}

}, time);

return this;

}

window.onload = function() {

var el = document.querySelector(".spinner");

el.fadeOut(20, function() {

el.fadeIn(20, function() {

console.log("finished");

});

});

}

复制粘贴保存打开见效果......

 

2024-04-07 16:29:48【出处】:https://blog.csdn.net/weixin_29912207/article/details/115020984

=======================================================================================

标签:opacity,el,style,function,fadeOut,javascript,JS,callback,var
From: https://www.cnblogs.com/mq0036/p/18119348

相关文章

  • 【Web应用技术基础】JavaScript(8)——案例:待办事项
    视频已发。截图如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document<......
  • TypeScript: pdf.js v4.0.379
     <!doctypehtml><html><head><metacharset="utf-8"> <metahttp-equiv="X-UA-Compatible"content="chrome=1"><metaname="viewport"content="width=device-width,initial-sc......
  • 前端package.json文件
    package.json 文件是Node.js项目的配置文件,用于描述项目的元数据和依赖关系。它是一个JSON格式的文件,位于项目根目录下。在这个文件中,你可以定义项目的名称、版本号、作者、许可证等项目信息,并且可以列出项目所需的依赖包和脚本。在创建新的Node.js项目时,通常会通过运行 ......
  • js context.fillText 征对不同长度右边对齐的解决办法
    在HTML5Canvas中,要实现文本右对齐并且与不同长度文本互不重叠,可以通过测量文本宽度,并基于文本宽度设置x坐标来实现。以下是一个简单的JavaScript函数,用于在Canvas中右对齐并且不重叠地绘制文本:functiondrawRightAlignedText(context,text,x,y){//测量文本宽度......
  • NodeJs进阶开发、性能优化指南
    相信对于前端同学而言,我们去开发一个自己的简单后端程序可以借助很多的nodeJs的框架去进行快速搭建,但是从前端面向后端之后,我们会在很多方面会稍显的有些陌生,比如性能分析,性能测试,内存管理,内存查看,使用C++插件,子进程,多线程,Cluster模块,进程守护管理等等NodeJs后端的知识,在这里为大......
  • 解释一下package.json中的 "license": "ISC"是什么意思?
    在package.json文件中,"license":"ISC"表示该项目采用了ISC(InternetSystemsConsortium)许可协议。ISC许可协议是一种简明、宽松的开源软件许可证,它赋予了用户以下权利:自由使用:允许个人和组织在没有任何费用的情况下使用该软件,无论用于商业还是非商业目的。复制和分发:用户......
  • node.js常用指令
    1、node:启动Node.jsREPL(交互式解释器)。node2、node[文件名]:执行指定的JavaScript文件。nodeapp.js3、npminit:初始化一个新的Node.js项目,生成package.json文件。此命令会创建一个package.json文件,其中包含项目的名称、版本、描述等信息,并且可以选择添加一些默......
  • 基于 bindview.js + node + mysql 的简易记账系统
    该项目前端是基于bindview.js和bootcss,后端的基于node.js使用了express框架,数据库使用的mysql8 bindview: bronze-ding/bindview:Bindview.js,是一个使用虚拟DOM来创建真实DOM并提供了数据响应式的Javascript工具库(github.com)功能包括:增加,删除,修改,查询登录......
  • 如何在 Node.js 中使用 bcrypt 对密码进行哈希处理
    在网页开发领域中,安全性至关重要,特别是涉及到用户凭据如密码时。在网页开发中至关重要的一个安全程序是密码哈希处理。密码哈希处理确保明文密码在数据库受到攻击时也难以被攻击者找到。但并非所有的哈希方法都是一样的,这就是bcrypt突出之处所在。Node.js是一个流行的用于开......
  • 毕业设计程序开源 Spring Boot+vue.js+Echart+mysql +QT+halcon
    1.介绍 涉及到的技术框架比较多,但是也不难,相关技术需要些基础。目前还是个半成品,还有些数据图表和QT功能没做完善,本来想在前端部分做大数据分析平台的,后续有空再完善。下面简单介绍一下。源代码此处:链接:https://pan.baidu.com/s/1904kLOv4EDJkcBuuNe1jqw?pwd=6666 提取码:6......