首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

简单的Javascript按钮点击动画(完成时带有回调)

简单的Javascript按钮点击动画是一种通过Javascript代码实现的交互效果,用于增强用户体验和提升页面的视觉效果。它可以在按钮被点击时触发动画效果,并在动画完成后执行回调函数。

这种动画效果可以通过CSS3的过渡(transition)和变换(transform)属性来实现。以下是一个完整的实现示例:

HTML代码:

代码语言:txt
复制
<button id="myButton">点击我</button>

CSS代码:

代码语言:txt
复制
#myButton {
  width: 100px;
  height: 40px;
  background-color: #007bff;
  color: #fff;
  border: none;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

#myButton:hover {
  background-color: #0056b3;
}

Javascript代码:

代码语言:txt
复制
var button = document.getElementById("myButton");

button.addEventListener("click", function() {
  // 添加点击动画效果
  button.style.transform = "scale(0.9)";
  
  // 动画完成后执行回调函数
  setTimeout(function() {
    button.style.transform = "scale(1)";
    // 在这里执行回调函数的代码
    console.log("动画完成");
  }, 300);
});

在上述代码中,我们首先通过CSS设置了按钮的样式,包括背景颜色、大小等。然后使用Javascript代码获取按钮元素,并为其添加了一个点击事件监听器。当按钮被点击时,通过修改按钮的transform属性实现了一个缩放动画效果。在动画完成后,通过setTimeout函数设置了一个延迟执行的回调函数,用于在动画完成后执行一些额外的操作。

这种简单的按钮点击动画可以应用于各种网页中,例如表单提交按钮、导航菜单等,以提升用户体验和页面交互效果。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Event loop 事件循环

事件循环是JavaScript一种机制,用于管理和调度各种事件执行顺序。在JavaScript中,事件可以是用户交互(如点击按钮、输入文本)或是异步操作(如获取数据、定时器)等。...document.addEventListener("DOMContentLoaded") 用于在DOM加载完成后执行函数。...当按钮点击,handleClick函数被调用,打印 "Button clicked"。 同样地,通过 setTimeout 又将另一个函数添加到任务队列中。...事件循环在JavaScript中有许多应用场景,以下是几个常见例子: 用户交互响应:当用户与网页进行交互,例如点击按钮、输入文本或滚动页面等,这些事件会被添加到事件队列中,并通过事件循环机制执行对应事件处理函数...动画处理:当需要实现动画效果,可以使用requestAnimationFrame函数,它会在每一帧绘制前触发回函数,并通过事件循环机制实现流畅动画效果。

7900
  • JavaWeb——JQuery之高级操作应用及实践案例总结(动画、遍历、事件绑定)

    1)speed:动画速度,三个预定值("fast"、"normal"、"slow")或表示动画时长毫秒值; 2)easing:用来指定切换效果,默认是"swing",效果是先慢,中间快,最后又慢...;参数"linear",匀速; 3)fn:在动画完成执行函数,每个元素执行一次。...2 JQuery遍历 js遍历方式是使用for循环,JQuery提供了三种遍历方式: 1)JQuery对象.each(callback):函数中参数 index(索引) element(元素对象...:JQuery对象.事件方法(函数);注意:如果调用事件方法,不传递回参数,会触发浏览器默认行为; 2)on绑定事件、off解除绑定:JQuery对象.on("事件名称",函数)、JQuery...,当点击对应组件,会执行fn1,再次点击会执行fn2...,若只有2个,则循环执行。注意:JQuery1.9后该功能删除了,要使用的话引入jquery-migrate-1.0.0.js插件。

    9.4K20

    【译】如何避免在JavaScript中阻塞DOM

    例如:当一个按钮点击后触发了一个事件,这个事件执行一个函数,在函数内进行了一些计算并更新DOM。一旦完成,浏览器便空闲下来,从任务队列中取出下一个任务来处理。...因此,JavaScript使用事件和机制来处理:当一个操作已经完成并且其结果已经就绪,浏览器或者操作系统才会去一个特定函数来执行后续操作。...在下面的例子中,当按钮点击事件触发,相应处理函数通过为元素添加CSS类方式使其执行动画。而当动画结束,这个CSS类会被一个匿名函数移除。...sprite.classList.add('animate'); } ES2015提供了Promise语法,并且在ES2017中带来了async/await语法使得编程变得更容易,但其实在底层仍然使用...右侧图片是一个基本GIF动画点击write按钮执行默认100,000次sessionStory操作: CodePen 上述操作会导致DOM更新被阻塞。

    2.8K10

    一文深入JQuery

    先慢,中间快,最后又慢 linear:动画执行时速度是匀速 fn:在动画完成执行函数,每个元素执行一次。...:就是元素在集合中索引 element:就是集合中每一个元素对象 this:集合中每一个元素对象 函数返回值: true:如果当前function返回为false,则结束循环(break)。...for(元素对象 of 容器对象) 事件绑定 jquery标准绑定方式 jq对象.事件方法(函数); 注:如果调用事件方法,不传递回函数,则会触发浏览器默认行为。...表单对象.submit();//让表单提交 on绑定事件/off解除绑定 jq对象.on(“事件名称”,函数) jq对象.off(“事件名称”) 如果off方法不传递任何参数,则将组件上所有事件全部解绑...使用定时器来完成。setTimeout (执行一次定时器) 2. 分析发现JQuery显示和隐藏动画效果其实就是控制display 3.

    3.3K30

    JQuery高级应用

    先慢,中间快,最后又慢 linear:动画执行时速度是匀速 fn:在动画完成执行函数,每个元素执行一次。...this:集合中每一个元素对象 函数返回值: true:如果当前function返回为false,则结束循环(break)。...false:如果当前function返回为true,则结束本次循环,继续下次循环(continue) $.each(object, [callback]),object为需要遍历jq对象,方法中参数与...jq对象.事件方法(函数); 注:如果调用事件方法,不传递回函数,则会触发浏览器默认行为。..."> on绑定事件/off解除绑定 jq对象.on("事件名称",函数) jq对象.off("事件名称") 如果off方法不传递任何参数,则将组件上所有事件全部解绑

    5.9K30

    《精通reactvue组件设计》之手把手实现一个轻量级可扩展模态框(Modal)组件

    模态框(Modal)组件一般会有如下需求点: 能控制Modal主体样式 提供Modal完全关闭后 能控制取消按钮文字和样式 能控制确认按钮文字和样式 控制modal展示位置 控制是否显示右上角关闭按钮...自定义对话框宽度 暴露点击遮罩层或右上角叉或取消按钮 提供点击确定 需求收集好之后,作为一个有追求程序员, 会得出如下线框图: 对于react选手来说,如果没用typescript,建议大家都用...,或者键盘esc按键 * @param {onOk} func 点击确定 */ function Modal(props) { const { afterClose,...要想实现该功能,我们需要处理如下几个事件: 当点击关闭按钮,根据destroyOnClose销毁子组件 当点击确认按钮,根据destroyOnClose销毁子组件 当visible为true,根据destroyOnClose...我们使用class组件很好实现这个功能,因为setState可以传两个参数,一个是更新state,另一个是state更新之后,我们只需要把afterClose放到更新后即可,也就是第二个参数回

    2.7K11

    jquery animate 动画

    通过animate方法可以设置元素某属性值上动画,可以设置一个或多个属性值,动画执行完成后会执行一个函数。...; }); 下面来写一个div放大动画效果。 ? 上面首先写好一个div,下面来使用jquery来实现放大效果。 ? 点击动画按钮,div宽高就会放大。...这次放大是同时实现了width和height变化。 可以使用回函数分别变化width、height,如下: ?...使用animate最后函数,再执行一个animate,就可以分开运行动画效果了。 效果如下: ? ? 参数可以写成数字表达式: 另外除了上面动画,还可以实现一个这样效果。...每点击按钮一次,触发动画效果,就将div宽度增加100px。 ? 实现效果如下: 点击第一次触发,如下: ? 点击第二次触发,如下: ? 点击第三次触发,如下: ? 代码如下: <!

    2.3K40

    浏览器之性能指标-INP

    ❝在交互中持续时间最长事件被选为交互延迟。 ❞ 上图是一个带有多个事件处理程序交互示例。 交互第一个部分在用户按下鼠标按钮接收输入。然而,在他们释放鼠标按钮之前,一个帧被呈现出来。...虽然这意味着每次调用setTimeout循环会让出主线程,但我们应该确保其不会执行过多工作。 setInterval在一定时间间隔内运行一个,因此更有可能妨碍交互。...使用AbortController来取消发出fetch请求,以便主线程不会因处理fetch而变得拥堵。 动画也是导致交互重叠而增加输入延迟另一个来源。...我们还需要确保「响应用户交互事件能够尽快完成」。 让主线程空闲 在优化事件方面,最好一般建议是在主线程尽量少做工作。然而,我们交互逻辑可能很复杂,我们可能只能稍微减少它们工作量。...布局抖动是性能瓶颈,因为在JavaScript中更新样式,然后立即请求这些样式值,浏览器被迫执行同步布局工作,而它本来可以在事件完成后异步地等待稍后执行。

    1.1K21

    第51次文章:JQuery高级

    :先慢 中间快,最后又慢 linear:动画执行时速度是匀速 fn:在动画完成执行函数,每个元素执行一次。...for (li of citys){ alert(li.innerHTML); } }) 三、事件绑定 1、jquery标准绑定方式 jq对象.事件方法(函数);...例如: 表单对象.submit();//让表单提交 2、on绑定事件/off解除绑定 jq对象.on("事件名称",函数)。 jq对象.off("事件名称")。...setTimeout(执行一次定时器) 分析发现JQuery显示和隐藏动画效果其实就是控制display属性值 使用 show/hide方法来完成广告显示 (3)代码实现 <!...”按钮,小相框图片快速切换,点击“停止”按钮,小相框内图片暂停,大相框展示小相框内内容。

    3.6K30

    设计一个简易引导任务框架(2) | 4.23粉丝赠书

    编写了一个简单引导任务框架,想仅通过 JSON 配置方式,完成上述步骤、任务执行,实现一个配置式、可编程引导框架,期望是让非程序人员经过简单学习,也能实现引导内容制作,我们先看一个任务配置案例...引导框架—串联异步引导步骤 前面讲过,一个引导步骤中节点定位函数 godGuide.find() 是通过函数异步返回目标节点,用户对目标节点点击确定也是异步,因此任务中每一个 step 都是异步...,执行 locator 输入 callback ,指令完成。...需要注意,任务完成一定要执行 callback,不然无法继续流程。..._finger.runAction(sequnce); } 手指动画简单,就是一个 moveTo 动作,需要注意是节点坐标转换和动作完成,下面是 finger 指令实现: let GodCommand

    70120

    Window对象

    confirm(): 显示带有一段消息以及确认按钮和取消按钮对话框。 focus(): 把焦点给予一个窗口。 getComputedStyle(): 获取指定元素CSS样式。...queueMicrotask: 提供加入微任务队列接口。 resizeBy(): 按照指定像素调整open创建窗口大小。...onload: 文档加载完成后触发。 onunload: 当窗口卸载其内容和资源触发。 onerror: 当发生JavaScript运行时错误与资源加载失败触发。...oncontextmenu: 在点击鼠标右键打开上下文菜单触发。 onmousedown: 鼠标按钮被按下触发。 onmousemove: 当移动鼠标触发。...onanimationiteration: 此事件将会在CSS动画到达每次迭代结束触发,当通过执行最后一个动画步骤完成动画指令序列单次传递完成,迭代结束。

    2.4K20

    jQuery 自定义网页滚动条样式插件 mCustomScrollbar 介绍和使用方法

    例: width:100px;height:100px;overflow:auto; 完成上述操作之后,带有滚动条内容块滚动条,就变成这个插件默认样式了。...先来说说上面用到这些文件用途和简单介绍: jQuery:这个插件必备库,你懂。 jQuery UI:扩展 jQuery 库并且为我们滚动条提供了简单动画和拖动功能。...:{ scrollType:String }:滚动按钮滚动类型 值:"continuous"(当你点击滚动控制按钮断断续续滚动) "pixels"(根据每次点击像素数来滚动) 点击这里可以看到形象例子...:{ onScrollStart:function(){} }:使用自定义函数在滚动时间开始时候执行 具体请看Demo callbacks:{ onScroll:function(){} }:自定义函数在滚动中执行...content-1").animate({height:800},"slow",function(){ $(this).mCustomScrollbar("update"); }); 当新内容完全加载或者动画完成之后

    14.1K30

    「设计模式 JavaScript 描述」命令模式

    那么当完成这个按钮绘制之后,应该如何给它绑定 onclick 事件呢?...下面进入代码编写阶段,首先在页面中完成这些按钮“绘制”: 点击按钮 1 点击按钮...在使用闭包命令模式实现中,接收者被封闭在闭包产生环境中,执行命令操作可以更加简单,仅仅执行函数即可。...队列在动画运用场景也非常多,比如大部分用户都有快速连续点击按钮习惯,当用户第二次点击 button 时候,此时前一个动画可能尚未结束,于是前一个动画会骤然停止,小球转而开始第二个动画运动过程。...我们比较关注问题是,一个动画结束后该如何通知队列。通常可以使用回函数来通知队列,除了函数之外,还可以选择「发布—订阅模式」。

    36420
    领券