[进入窗口时使用ScrollMagic自动播放SVG

问题描述 投票:0回答:1

我有这个SVG,它使用ScrollMagic进行滚动动画(svg绘图),效果很好,但是我要寻找的是svg进入窗口时会自动开始自动播放并完全进行动画处理,并且不会在滚动时缓慢地进行动画处理。

有没有办法做到这一点?

	function pathPrepare ($el) {
		var lineLength = $el[0].getTotalLength();
		$el.css("stroke-dasharray", lineLength);
		$el.css("stroke-dashoffset", lineLength);
	}

	var $word = $("path#word");
	var $dot = $("path#dot");

	// prepare SVG
	pathPrepare($word);
	pathPrepare($dot);

	// init controller
	var controller = new ScrollMagic.Controller();

	// build tween
	var tween = new TimelineMax()
		.add(TweenMax.to($word, 0.9, {strokeDashoffset: 0, ease:Linear.easeNone})) // draw word for 0.9
		.add(TweenMax.to($dot, 0.1, {strokeDashoffset: 0, ease:Linear.easeNone}))  // draw dot for 0.1
		.add(TweenMax.to("path", 1, {stroke: "#33629c", ease:Linear.easeNone}), 0);			// change color during the whole thing

	// build scene
	var scene = new ScrollMagic.Scene({triggerElement: "#trigger1", duration: 200, tweenChanges: true})
					.setTween(tween)
					.addTo(controller);
* {
width:100%;
height:100%;
padding:0;
margin:0;
border:0;
}

#trigger1 {
width:100%;
height:1px;
background:#ff0000;
}

.spacer {
width:100%;
height:100%;
background:#000000;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/2.1.3/TweenMax.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/ScrollMagic.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/plugins/animation.gsap.min.js"></script>

<div class="spacer"></div>
<div id="trigger1"></div>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="350" height="200">
	<path id="word" style="stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1009.2315673828125px; stroke-dashoffset: 1009.2315673828125px;" fill="none" stroke="#000000" stroke-width="5" d="M22.328,70.018c9.867-7.4,10.724,20.434,13.014,28.694c-0.08-9.105-1.308-31.463,11.936-31.886
			c11.313-0.361,17.046,19.368,16.367,28.098c-1.432-10.289,6.234-30.682,18.163-25.671c11.505,4.833,8.682,26.772,20.071,31.964
			c13.06,5.953,14.854-8.305,19.734-17.017c7.188-12.836,4.933-15.417,29.6-14.8c-8.954-3.842-37.42,1.728-28.539,20.1
			c5.823,12.045,34.911,12.583,30.018-8.873c-5.385,17.174,24.01,23.104,24.01,9.123c0-9.867,3.816-15.937,16.034-18.5
			c8.359-1.754,18.982,4.754,25.9,9.25c-10.361-4.461-51.941-13.776-37.749,12.357c9.435,17.372,50.559,2.289,33.477-6.063
			c-2.871,19.008,32.415,31.684,30.695,54.439c-2.602,34.423-66.934,24.873-79.302,2.134c-13.11-24.101,38.981-36.781,54.798-40.941
			c8.308-2.185,42.133-12.162,25.88-25.587c-2.779,17.058,19.275,28.688,29.963,12.911c6.862-10.131,6.783-25.284,30.833-19.117
			c-9.404-0.429-32.624-0.188-32.864,18.472c-0.231,17.912,21.001,21.405,40.882,11.951"></path>
	<path id="dot" style="stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 44.29783630371094px; stroke-dashoffset: 44.29783630371094px;" fill="none" stroke="#000000" stroke-width="5" d="M247.003,38.567c-7.423,1.437-11.092,9.883-1.737,11.142c14.692,1.978,13.864-13.66,1.12-8.675"></path>
</svg>

<div class="spacer"></div>
javascript svg greensock scrollmagic
1个回答
0
投票
尝试将ScrollMagic.Scene持续时间中的持续时间设置为零-此处演示:https://codepen.io/Alexander9111/pen/XWJozXZ
© www.soinside.com 2019 - 2024. All rights reserved.