Если вы просто хотите удалить дублирование, вы можете сделать это
$(".trigger").each(function(){
var $draw = $(this).find("line.draw");
pathPrepare($draw);
// build tween
var tween = new TimelineMax()
.add(TweenMax.to($draw, 0.9, {strokeDashoffset: 0, ease:Linear.easeNone})) // draw word for 0.9
new ScrollMagic.Scene({triggerElement: $(this)[0], duration: 500, tweenChanges: true})
.setTween(tween)
.addIndicators()
.addTo(controller);
})
Предполагая, что у меня есть разметка, подобная этой
<div id="trigger1" class="trigger">
<svg height="550" width="500">
<line class="draw" x1="0" y1="0" x2="0" y2="100%"
style="stroke:rgb(128,128,128);stroke-width:2" />
</svg>
</div>
<div id="trigger2" class="trigger">
<svg height="550" width="500">
<line class="draw" x1="0" y1="0" x2="0" y2="100%"
style="stroke:rgb(128,128,128);stroke-width:2" />
</svg>
</div>
<div id="trigger3" class="trigger">
<svg height="550" width="500">
<line class="draw" x1="0" y1="0" x2="0" y2="100%"
style="stroke:rgb(128,128,128);stroke-width:2" />
</svg>
</div>
Надеюсь, это поможет.Но вы можете пойти в определенной степени, как это, если вы хотите контролировать направления линии, тогда вам может понадобиться отредактировать функцию pathPrepare на основе секции триггера.
https://codepen.io/srajagop/pen/GaZbrW?editors=0010