Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在owl转盘中重置SVG动画_Javascript_Html_Svg_Owl Carousel_Owl Carousel 2 - Fatal编程技术网

Javascript 如何在owl转盘中重置SVG动画

Javascript 如何在owl转盘中重置SVG动画,javascript,html,svg,owl-carousel,owl-carousel-2,Javascript,Html,Svg,Owl Carousel,Owl Carousel 2,我有svg动画,像这样制作 <svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' width='16' height='16' viewbox='0 0 250 250' enable-background='new 0 0 426.667 410' xml:space='preserve'><path

我有svg动画,像这样制作

<svg version='1.1' xmlns='http://www.w3.org/2000/svg' 
xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' width='16' 
height='16' viewbox='0 0 250 250' enable-background='new 0 0 426.667 410' 
xml:space='preserve'><path class='loader' transform='translate(125, 125) 
scale(.84)'/>
</svg>
和css

svg {
    position: absolute;
    top: 0;
    border: 3px solid pink;
    border-radius: 50px;
}
svg path {display: none;}
.owl-dot.active svg path {display: block;}
css主要用于设置类活动时显示swg。它在旋转木马中,所以我只需要为每张幻灯片显示一个动画。但问题是,所有svg都同时设置动画。每次旋转木马更改幻灯片时,我都需要重置这些动画。对于转盘,使用Owl转盘,代码简单:

$("#our-work-carousel2").owlCarousel({
        loop: true,
        lazyLoad: true,
        autoplay: true,
        animateIn: 'fadeIn',
        animateOut: 'fadeOut',
        slideSpeed: 300,
        paginationSpeed: 400,
        dotData: true,
        dotsData: true,
        itemsDesktop: false,
        itemsDesktopSmall: false,
        itemsTablet: true,
        itemsMobile: false,
        onChange:callback,
    });

   function callback(event){
   }

我可能需要回调中的一些代码来重置svg动画,但我想不出这个解决方案。感谢所有人的建议。

动画状态根据变量
a
更新,在动画的每个步骤中,变量增加一,直到达到360,然后返回到0

要重置动画,需要重置变量
a
设置值0

var loader=document.getElementsByClassName(“加载器”)
,a=0
,p=Math.PI
t=9;
(函数图(){
a++;
a%=360;
风险值r=(a*p/180)
,x=数学sin(r)*125
,y=数学cos(r)*-125
,mid=(a>180)?1:0
,anim=“M 0 0 v-125 A 125 1”
+mid+“1”
+x+“”
+y+“z”;
Object.values(loader.forEach)(item=>item.setAttribute(“d”,anim));
console.log('a:',a);
setTimeout(draw,t);//重新绘制
}());
document.getElementById('reset-loader')。addEventListener('click',()=>a=0)
svg{
边框:3倍纯红;
边界半径:50px;
}


重置
你太棒了。非常感谢你!
$("#our-work-carousel2").owlCarousel({
        loop: true,
        lazyLoad: true,
        autoplay: true,
        animateIn: 'fadeIn',
        animateOut: 'fadeOut',
        slideSpeed: 300,
        paginationSpeed: 400,
        dotData: true,
        dotsData: true,
        itemsDesktop: false,
        itemsDesktopSmall: false,
        itemsTablet: true,
        itemsMobile: false,
        onChange:callback,
    });

   function callback(event){
   }