$('.back_btn').click(function(){ // ===== From Playlist(3) to Main(2) if($('#curator').css("display") == "none"){ var playlistToMain = new TimelineMax({}); // Hide playlistToMain.fromTo($('#curator'), 0.8, {display: 'none', opacity: 0, scale: 1.1}, {display: 'block', opacity: 1, scale: 1, ease: Power2.easeInOut}, 0) } // From Main(2) to Home(1) else { var mainToHome = new TimelineMax({}); // Hide mainToHome.fromTo($('.curator_title_wrapper'), 0.5, {opacity: 1, x: 0}, {opacity: 0, x: 30, ease: Power2.easeInOut}, 0.2), mainToHome.fromTo($('.curator_list'), 0.5, {opacity: 1, display: 'block', x: 0}, {opacity: 0, x: 30, display: 'none', ease: Power2.easeInOut}, 0.5), mainToHome.to($('.back_btn'), 0.5, {display: 'none', opacity: 0, x: 15, ease: Power2.easeInOut}, 0.5), mainToHome.to($('#curator'), 0, {display: 'none', ease: Power2.easeInOut}, 1), // Background Up mainToHome.to($('.wave-container'), 1, {yPercent: 0, ease: Power2.easeInOut}, 1), // Show mainToHome.to($('.text-wrap'), 0.5, {display: 'flex', opacity: 1, y: 0, ease: Power2.easeInOut}, 1.2), mainToHome.to($('.logo-text, .line'), 0.5, {display: 'block', opacity: 1, y: 0, ease: Power2.easeInOut}, 1.2), // Force to redraw by using y translate mainToHome.fromTo($('.text-wrap .text'), 0.1, {y: 0.1, position: 'absolute'}, {y: 0, position: 'relative', ease: Power2.easeInOut}, 1.3) // $('.text-wrap .text').css('position', 'relative'); } });解释一下
时间: 2024-02-26 12:53:32 浏览: 161
1_大麦内部版抢购脚本15.6.0.docx
5星 · 资源好评率100%
这段代码是一个 jQuery 的事件监听器,当点击类名为 `back_btn` 的元素时,会执行对应的回调函数。在回调函数中,通过判断当前页面是否显示 `curator` 元素,来决定执行 `playlistToMain` 动画序列还是 `mainToHome` 动画序列。下面是对 `mainToHome` 动画序列的详细解释:
`mainToHome` 动画序列是一个 `TimelineMax` 实例,它包含了多个动画效果,按照指定的顺序依次播放。
- `fromTo($('.curator_title_wrapper'), 0.5, {opacity: 1, x: 0}, {opacity: 0, x: 30, ease: Power2.easeInOut}, 0.2)`:从 `opacity` 为 1,`x` 为 0 的状态,过渡到 `opacity` 为 0,`x` 为 30 的状态,持续时间为 0.5 秒,缓动函数为 Power2.easeInOut,延迟时间为 0.2 秒。
- `fromTo($('.curator_list'), 0.5, {opacity: 1, display: 'block', x: 0}, {opacity: 0, x: 30, display: 'none', ease: Power2.easeInOut}, 0.5)`:从 `opacity` 为 1,`display` 为 block,`x` 为 0 的状态,过渡到 `opacity` 为 0,`display` 为 none,`x` 为 30 的状态,持续时间为 0.5 秒,缓动函数为 Power2.easeInOut,延迟时间为 0.5 秒。
- `to($('.back_btn'), 0.5, {display: 'none', opacity: 0, x: 15, ease: Power2.easeInOut}, 0.5)`:将类名为 `back_btn` 的元素的 `display` 设置为 none,`opacity` 设置为 0,`x` 设置为 15,持续时间为 0.5 秒,缓动函数为 Power2.easeInOut,延迟时间为 0.5 秒。
- `to($('#curator'), 0, {display: 'none', ease: Power2.easeInOut}, 1)`:将 `#curator` 元素的 `display` 设置为 none,持续时间为 0 秒,缓动函数为 Power2.easeInOut,延迟时间为 1 秒。
- `to($('.wave-container'), 1, {yPercent: 0, ease: Power2.easeInOut}, 1)`:将类名为 `wave-container` 的元素的 `y` 百分比值设置为 0,持续时间为 1 秒,缓动函数为 Power2.easeInOut,延迟时间为 1 秒。
- `to($('.text-wrap'), 0.5, {display: 'flex', opacity: 1, y: 0, ease: Power2.easeInOut}, 1.2)`:将类名为 `text-wrap` 的元素的 `display` 设置为 flex,`opacity` 设置为 1,`y` 设置为 0,持续时间为 0.5 秒,缓动函数为 Power2.easeInOut,延迟时间为 1.2 秒。
- `to($('.logo-text, .line'), 0.5, {display: 'block', opacity: 1, y: 0, ease: Power2.easeInOut}, 1.2)`:将类名为 `logo-text` 或 `line` 的元素的 `display` 设置为 block,`opacity` 设置为 1,`y` 设置为 0,持续时间为 0.5 秒,缓动函数为 Power2.easeInOut,延迟时间为 1.2 秒。
- `fromTo($('.text-wrap .text'), 0.1, {y: 0.1, position: 'absolute'}, {y: 0, position: 'relative', ease: Power2.easeInOut}, 1.3)`:从 `y` 为 0.1,`position` 为 absolute 的状态,过渡到 `y` 为 0,`position` 为 relative 的状态,持续时间为 0.1 秒,缓动函数为 Power2.easeInOut,延迟时间为 1.3 秒。
最后,通过 `play` 方法启动动画效果。
阅读全文