首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏大数据

    CSS进阶-过渡与动画的事件监听

    CSS过渡(Transitions)事件监听 常见问题与易错点 问题1:何时使用transitionend?  开发者有时混淆何时应该使用transitionend事件。 如何避免 正确使用transitionend。  直接在元素上绑定此事件,以监听过渡完成。 100px; background-color: red;">

    <script> document.getElementById('myDiv').addEventListener('transitionend 通过正确识别何时使用transitionend与动画相关事件,以及注意动画生命周期的管理,开发者可以避免许多常见错误,实现更加流畅、可控的动态效果。

    55910编辑于 2024-06-17
  • 来自专栏各类技术文章~

    关于JS30第五个挑战(弹性布局照片墙)的小bug

    在JS30挑战中,有不少项目都存在bug,其中第四个项目弹性布局照片墙项目,当连续双击点击某一个板块时,将出现照片不变大但两侧字已经滑进来的情况,如图: 这是因为官方对两侧字体的滑入用了一个transitionend 对此,我一开始在GitHub上找到一种解决办法,就是将transitionend事件取消,全部放入click事件中,并用过渡延时对应时间来实现该过程,详情可到该处寻找:github.com/soyaine 因此我想到的办法是,从变化的逻辑出发,因为连续点击鼠标时,会触发两次click事件,并在最终完成flex过渡时触发一次transitionend事件。 这是显而易见的,因此就要去选对两种事件独一无二且互不干扰的标记,在这里我选择flex样式的值作为click事件的标记,因为每次点击后,flex值会先进行变化再发生过渡效果,即flex值与过渡效果无关;而对于transitionend ', transEnd); }; //transitionend事件对应的回调函数 function transformEnd(event){ const [flexStr, ,] = getComputedStyle

    1.1K00发布于 2021-10-31
  • 来自专栏Czy‘s Blog

    CSS实现渐隐渐现效果

    opacity是用以设置透明度的属性,单纯将opacity设置为0只能从视觉上隐藏元素,而元素本身依然占据它自己的位置并对网页的布局起作用,它也将响应用户交互例如点击事件,对于其添加过渡属性可以显示动画效果,使用transitionend optionsNode.classList.add("hide"); optionsNode.removeEventListener("transitionend ", finish); // 移除监听器 } optionsNode.addEventListener("transitionend", finish); optionsNode.classList.add("hide"); optionsNode.removeEventListener("transitionend ", finish); // 移除监听器 } optionsNode.addEventListener("transitionend", finish);

    4.3K20发布于 2021-02-05
  • 来自专栏前端干货和生活感悟

    jQuery之模拟实现$().animate()(上)

    element.style.transitionDuration = '400ms'; element.style.width = width + 'px'; /*监听单个动画完结*/ //transitionend 事件在 CSS 完成过渡后触发 element.addEventListener('transitionend', function() { func() (4)transitionend transitionend事件在 CSS 完成过渡后触发,这里当做单个动画完成的信号,触发后,会告知下个动画进行 下图的实现将在下篇文章贴出: ? ----

    1.1K10发布于 2019-09-05
  • 来自专栏偏前端工程师的驿站

    CSS魔法堂:Transition就这么好玩

    :link,:visited,:hover,:active和:focus 通过JS修改CSS属性值 通过JS修改className值 TransitionEnd事件详解 TransitionEnd Event el.addEventListener("transitionend" , e => { const pseudoElement = e.pseudoElement / elapsedTime = e.elapsedTime // 动画的持续时间 // .................. }) 注意:每个启用TransitionCSS属性的分别对应独立的transitionend 事件 /\* 触发3个transitionend事件 \*/ transition: width 1s ease .6s, color .5s linear,

    71630发布于 2018-06-21
  • 来自专栏前端实验室

    令人惊叹的切换效果:全球最流行的动画切换库

    nextTransition="nextTransition" :prevTransition="prevTransition" ref="transx" @over="over" @transitionend ="transitionEnd" > <div class="demo-item" v-for="(item, index) in list" :key="index" function(isEnd) { console.log('边界到了', isEnd); } 说明:当边界为翻到第一页时isEnd为false,当边界为翻到最后一页时isEnd为true transitionend transitionEnd: function(currentIndex) { console.log("当前到第几页了: ", currentIndex); } 效果 TransX 库支持多种不同的切换效果

    1.4K20编辑于 2023-05-23
  • 来自专栏White feathe 的博客

    animate is not a function(zepto 使用报错)

    * @type {{off: boolean, speeds: {_default: number, fast: number, slow: number}, cssPrefix: string, transitionEnd : normalizeEvent('TransitionEnd'), //过渡结束事件 animationEnd: normalizeEvent('AnimationEnd') //动画播放结束事件 transforms 变形 cssValues设置给DOM的样式 that = this, wrappedCallback, endEvent = $.fx.transitionEnd duration > 0) { //绑定动画结束事件 this.bind(endEvent, wrappedCallback) // transitionEnd //绑定过事件还做延时处理,是transitionEnd在older Android phones不一定触发 setTimeout(function() {

    1.1K30编辑于 2021-12-08
  • 来自专栏偏前端工程师的驿站

    CSS魔法堂:Transition就这么好玩

    :link,:visited,:hover,:active和:focus 通过JS修改CSS属性值 通过JS修改className值 TransitionEnd事件详解 TransitionEnd Event el.addEventListener("transitionend" , e => { const pseudoElement = e.pseudoElement // 触发动画的伪类 elapsedTime = e.elapsedTime // 动画的持续时间 // .................. }) 注意:每个启用TransitionCSS属性的分别对应独立的transitionend 事件 /* 触发3个transitionend事件 */ transition: width 1s ease .6s, color .5s linear,

    1K50发布于 2018-07-11
  • 来自专栏前端新视界

    响应式卡片抽奖插件 CardShow

    以下是我在写插件时遇到的问题以及解决的问题,大概包括 jQuery 插件编写、modernizr 使用、css3 动画、transitionend 事件、洗牌算法、相邻不重复随机数、获取 transform Transitionend 事件 transitionend 事件是在 transition 动画结束之后执行的函数。说到 transitionend 事件,我有很多感想。 直到写此插件才发现一切优化都要基于 transitionend 事件。 Chrome 中的 onresize 事件 关于该问题的详情及解决方法请参考 这篇文章 ! 本文持续更新~

    3.1K60发布于 2018-01-17
  • 来自专栏全栈自学笔记

    移动端轮播图

    translatex + "px)"; }, 2000); 自动播放功能-无缝滚动 注意,我们判断条件是要等到图片滚动完毕再去判断,就是过渡完成后判断 此时需要添加检测过渡完成事件 transitionend 等我们过渡完成之后,再去判断 监听过渡完成的事件 transitionend ul.addEventListener("transitionend", function () { // 无缝滚动 小圆点跟随变化效果 把ol里面li带有current类名的选出来去掉类名 remove 让当前索引号的小li 加上 current add 但是,是等着过渡结束之后变化,所以这个写到 transitionend

    1.6K20发布于 2020-10-27
  • 来自专栏掘金安东尼

    疯狂操作 CSS3 实现 60 FPS 动画效果,CodeReview 时同事直呼:细节!

    class="header">

    在 layout 区域之外创建 menu,然后使用 js 中的 transitionend document.querySelector(".menu"); var oppMenu = document.querySelector(".menu-icon"); myMenu.addEventListener("transitionend 300ms linear; 高度比较齐平、较少处于低点、较少红条 60% 顺滑 高级操作 will-change: transform; 高度基本齐平、很少处于低点、很少红条 80% 顺滑 顶级操作 transitionend 【顶级操作】中改造分离 DOM,然后用 JS控制,手动添加 menu--animatable 类,然后用到 transitionend 事件 会在 CSS transition 结束后触发,移除 menu how-to-achieve-60-fps-animations-with-CSS3 transitionend_event

  • 72210编辑于 2022-09-22
  • 来自专栏前端随笔

    学用Hooks写React组件——基础版移动端无缝轮播图组件

    const setTransition = (offset = 0) => { ...新增的代码 function transitionend() { setActive(1); }, 0) } container.current.removeEventListener('transitionend ', transitionend, false); } container.current.addEventListener('transitionend', transitionend

    4.4K20编辑于 2022-10-05
  • 来自专栏网络日志

    Element 2 组件源码剖析之Notification通知

    它可以是 transitionend 或 animationend notification 功能实现跟 message类似,接下来主要说明下不同之处,相似代码将省略。 this.onClick === 'function') { this.onClick(); } }, 组件 transition 没有绑定after-leave钩子函数,而是在侦听器中添加了 transitionend $el.addEventListener('transitionend', this.destroyElement); // 添加过渡效果事件监听 } } // methods destroyElement $el.removeEventListener('transitionend', this.destroyElement); //移除过渡效果事件监听 // vm destroy && remove

    49110编辑于 2024-06-26
  • 来自专栏h5学习笔记

    移动端轮播图

    + translatex + 'px) ' ; }, 2000); 自动播放功能-无缝滚动 注意,我们判断条件是要等到图片滚动完毕再去判断,就是过渡完成后判断 此时需要添加检测过渡完成事件  transitionend 索引号要复原为 0 此时图片,去掉过渡效果,然后移动 如果索引号小于0, 说明是倒着走, 索引号等于2 此时图片,去掉过渡效果,然后移动 ul.addEventListener( 'transitionend 小圆点跟随变化效果 把ol里面li带有current类名的选出来去掉类名 remove 让当前索引号的小li 加上 current   add 但是,是等着过渡结束之后变化,所以这个写到 transitionend

    1.1K40发布于 2020-10-09
  • 来自专栏前端自习课

    【Web技术】1576- 你的图片加载,一点都不酷炫!不信 You Look Look

    = 'yasuo.png' pre.classList.add('loaded') next.classList.add('loaded') next.addEventListener('transitionend ', function animationend() { pre.classList.add('hidden') next.removeEventListener('transitionend document.querySelector('.next') next.src = 'yasuo.png' next.classList.add('loaded') next.addEventListener('transitionend ', function animationend() { pre.classList.add('hidden') next.removeEventListener('transitionend

    1K20编辑于 2023-02-13
  • 来自专栏小美娜娜

    那些年让我们头疼的CSS3动画

    ChangeFrequency.style.transform="translateX(50px)" }) }) }) 复制代码 至于如何实现串联动画,我的第一选择是animation,第二选择是监听transitionend { ChangeFrequencyFix.style.transform="translateX(50px)" ChangeFrequencyFix.removeEventListener("transitionend ",moveBack) } ChangeFrequencyFix.addEventListener("transitionend",moveBack) 复制代码 常见错误四:怎么回事! function goTrravel(){ correctToGo.removeEventListener("transitionend",goTrravel) correctToGo.style.transition correctToGo.style.transition="transform 2s,opacity 2s" }) }) } correctToGo.addEventListener("transitionend

    94520发布于 2019-04-04
  • 来自专栏对角另一面

    读Zepto源码之Fx模块

    testEl.style.transitionProperty === undefined), speeds: { _default: 400, fast: 200, slow: 600 }, cssPrefix: prefix, transitionEnd : normalizeEvent('TransitionEnd'), animationEnd: normalizeEvent('AnimationEnd') } off: 表示浏览器是否支持过渡或动画 ,如果既没有浏览器前缀,也不支持标准的属性,则判定该浏览器不支持动画 speeds: 定义了三种动画持续的时间, 默认为 400ms cssPrefix: 样式浏览器兼容前缀,即 prefix transitionEnd cssValues = {}, cssProperties, transforms = '', that = this, wrappedCallback, endEvent = $.fx.transitionEnd callback && callback.call(this) } if (duration > 0){ this.bind(endEvent, wrappedCallback) // transitionEnd

    1.1K00发布于 2017-12-27
  • 来自专栏小康的自留地

    前端课程——过渡

    charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>transitionEnd class="box">

    <script> var box = document.getElementById('box'); box.addEventListener('transitionend

    89910发布于 2020-04-09
  • 来自专栏ops技术分享

    Vue.js 动画

    它可以是 transitionend 或 animationend ,这取决于给元素应用的 CSS 规则。如果你使用其中任何一种,Vue 能自动识别类型并设置监听。 默认情况下,Vue 会等待其在过渡效果的根元素的第一个 transitionend 或 animationend 事件。

    2.7K20发布于 2021-07-27
  • 来自专栏京程一灯

    Chrome 74 带来的新功能[每日前端夜话0x66]

    侦听 CSS 过渡事件 现在可以侦听 CSS 过渡事件,如 transitionrun,transitionstart,transitionend 和 transitioncancel。 当然是用过渡事件(transitionend)! 用功能策略API进行控制 Chrome的新功能策略可以轻松的启用、禁用或修改 API 和其他网站功能的行为。

    89320发布于 2019-05-16
  • 第 2 页第 3 页第 4 页第 5 页第 6 页第 7 页
    点击加载更多
    领券