- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的任务是为浏览器游戏创建一个交互式 SVG 信息图,其中包含几张幻灯片,总共有 5 个步骤。当您单击上一个/下一个按钮或特定步骤时,整个 svg 应该自动动画到正确的步骤。
就代码而言,这就是我所拥有的:
function Slide() {
// Cache all top-level svg elements for later use
this.el = $('svg#betfair-slider');
this.hands = this.el.find('#hands_8_');
this.cardsDesk = this.el.find('g#center-cards');
this.textContainer = $('.step-text');
// Use a shared timeline across all slides, so there are no overlapping tweens
this.tween = new TimelineLite();
}
function Slide2 () {
// Inherit from the main slide
Slide.call(this);
// each slide has its own supporting explanatory text
this.html = [
'<h3>Preflop</h3>',
'<p>Amet sit lorem ipsum dolar</p>'
].join('');
// the main openslide method
this.openSlide = function() {
// find the cards that need to be animated for this specific slide
var cards = this.hands.find('.card');
// fade out each card
this.tween.staggerTo(cards, 0.2, { opacity: 0 }, 0.2);
// Render supporting text
this.textContainer.html(this.html);
};
}
我可以使用 this.hands.find('.card');
jquery 方法获取它们(我可以在控制台中看到它们),但我无法为它们设置动画。我尝试过对不同的属性(不透明度、x、y、左等)进行动画处理,但没有任何反应 - 屏幕上没有任何移动。
我可以使用 jQuery 执行 this.hands.find('.card').hide()
并更改 css,但为什么 TimelineLite 在这里不起作用?我也尝试过这种方法:
var cards = this.hands.find('.card');
for (var i = cards.length - 1; i >= 0; i -= 1) {
var card = cards[i];
this.tween.to(card, 0.2, { opacity: 0 });
}
但仍然没有成功...有趣的是,当我在补间上附加 onComplete 回调时,它们被触发,但屏幕上绝对没有任何移动。您可以查看所有内容here .
感谢您提前提供的帮助,欢迎提出任何建议。
最佳答案
我认为您可能误解了时间表的工作原理(或者也许我误解了您的意图)。与所有补间一样,时间线默认立即开始播放。因此,如果您使用一个时间轴并根据用户交互将所有补间插入其中(意味着创建它和填充它之间的时间流逝......并填充它更多......),它的播放头将已经有先进的。我敢打赌这会导致您的补间几乎立即跳转到最终状态。这不是一个错误 - 这是事情应该如何工作的,尽管 GSAP 中有一些逻辑可以在某些情况下调整行为以使其更加直观。
我看到几个选项:
如果您确实愿意,可以使用一个全局时间轴,但如果您要在每次用户交互中插入补间而不是一次全部插入,则可能只需要管理其播放头。
如果您仍然遇到问题,请随时在 GSAP 专用论坛 http://greensock.com/forums/ 上发帖。如果您包含一个 codepen 或 jsfiddle 简化的测试用例,那将会非常有帮助,这样我们就可以修补并非常快速地了解发生了什么以及更改如何影响结果。
补间快乐!
关于javascript - 使用 GSAP 对 SVG 元素进行动画处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36835802/
尝试在 Gatsby 站点中创建动画时,出现以下错误: 12:57:12:665 (ScrollMagic.Scene) -> ERROR calling setTween() due to miss
我有个问题想问你,希望你能帮助我。我正在使用 为自己构建视差效果GSAP, -ScrollTrigger v3.5.1 并为自己构建了一个名为 parallax() 的函数。 我想在具有不同设置的区域
因此,我在 Three.js 中获取对象的 Y 位置(高度),然后用它更新 greensock 时间变量。它正在登录控制台,但不更新 greensock 中的变量。我究竟做错了什么?当我向时间变量添加
我正在尝试使用 gsap 制作时钟动画。问题是我的实际脚本并不精确。我需要的是: 按下按钮 开始动画(整小时旋转) 然后再次按下按钮停止等待 2 秒并继续这样做 只需开始 -> 旋转 -> 停止(2
所以我目前正在花一些空闲时间学习和探索 GSAP(Greensock 动画平台)。我想知道是否可以为一个特定的重复元素提供一组值。这就是我的 Tween 的样子; TweenMax.from(blin
首先,我是 GSAP 新手,所以请耐心等待。我尽力描述我所面临的困难。 为了制作 SVG 文件的动画,我开始深入研究 GSAP。我为 SVG 文件中的不同元素创建了多个补间。一切工作正常,并且动画效果
我有这段代码可以为不透明度为 1 到 0 的对象设置动画。 但我想知道如何才能让这个 Action 无限重复,每 1 秒? 有什么想法吗? var tl = new TimelineMax();
我正在尝试使用 GSAP 进行我的第一个补间,但没有任何反应,即使我尝试使用示例代码也是如此。 我有一个包含以下代码的 php 文件: #green { width: 100px;
我有以下 3 个 HTML 元素: Item 1 Item 2 Item 3 以及以下 JavaScript: var timeline = new TimelineMax({paused:true,
我开始学习和使用 GreenSock Animation Platform (GSAP) 我创建了一个使用 3D 变换来旋转元素的“旋转票”示例,但是我在背面可见性方面遇到了问题。 看看我的 demo
GSAP 声称使用 HTML5 来执行出色的网络动画,但在他们关于 Greensock.com 的文章中明确表示它不使用 html5 中的 Canvas 框架。很明显,他们正在使用提供的 script
我正在使用 ssr 渲染在 nuxt.js 中编写应用程序。我有 gsap 的问题。我正在使用 typescript ,当我尝试使用 timeline.staggerTo() 方法时,我收到错误,即
我试图理解这篇文章: https://codepen.io/GreenSock/pen/RwVgEgZ 对我来说最难的是理解 select属性(property)。 AFAIK,这是 的属性HTML
如果我在 html 文件中编写脚本代码,动画就会起作用。但如果动画代码在js文件中,那就不行了。这是我的动画代码 $(document).ready(function(){ $(window)
我想做的是这样的:我想在页面的Y或X轴(底部和左侧边框)上生成框并让它们移动彼此平行,直到它们离开屏幕,我想将它们删除。这是我到目前为止所做的: Codepen 。 function generat
Holla,当我关闭菜单并再次打开它时,我需要重置动画。我怎样才能做到这一点?动画仅在我第一次打开菜单时起作用。 CSSPlugin.defaultTransformPerspective = 600
我有描述环境的大 svg 图片,并尝试创建循环,从左到右移动图片: html: CSS: .animation-wrapper{ top: -0; left: -10000px;
大家好.. 我想知道是否可以在GSAP中使用循环,或者它可能对这种情况有一些特殊的东西。 在我的情况下,我有 ul 元素和 30 li 项。 我想给他们增加单独的动画。 例如这样 TweenMax.t
我在 React 应用程序中使用 GSAP,在路线之间快速来回切换时遇到了大量空目标错误。 问题是我的动画比在 Macbook 上向左/向右滑动来后退/前进所需的时间更长,因此,当下一页加载时,旧动画
动画在播放时有效,但在使用reverse()函数时无效 这是演示 https://codesandbox.io/s/gatsby-express-9uqi7导航栏组件 const [state, se
我是一名优秀的程序员,十分优秀!