悬停时setInterval中的图像闪烁

时间:2016-05-03 04:15:49

标签: javascript jquery html

这是一个图像滑块。 当我将鼠标悬停在滑块上时,一切正常,出现播放/暂停按钮。当我将鼠标悬停在滑块显示区域外时,播放和暂停按钮消失。 但当我将鼠标悬停在播放/暂停图像区域上时,播放/暂停图像会闪烁。

有没有办法阻止闪烁?

将鼠标悬停在滑块上时,会显示播放和暂停图像。单击播放时,它会更改为暂停,反之亦然。播放和暂停开启和关闭自动滑动

代码段:

HTML

<section>
            <img src="img/arrow-left.png" alt="Previous" id="prev">
            <div id="outsideSlider">
                <img alt="play" src="img/play.png" id="play">
                <img alt="pause" src="img/pause.png" id="pause">

                <div id="slider">
                    <div class="slide">
                        <div class="sliderText">
                            <h2>Hark! Stay alert</h2>
                            <p>Some text</p>
                        </div>
                        <img src="img/slide1.jpg" alt="Slide 1">
                    </div>
                 </div>
   </section>

的jQuery

setInterval(function(){
    playpause();
},1);

//function to switch between play button and pause button on click

function playpause(){
    if($('#pause').hasClass('activeButton'))
    {
        $('#slider,#play,#pause').click(function(){
            $('#pause').removeClass('activeButton');
            $('#play').addClass('activeButton');
            $('#pause').hide();
            $('#play').show();
            autoswitch=false;
        });
    }   
    //When play is clicked, activate pause button
else if($('#play').hasClass('activeButton'))
    {
        $('#slider,#play,#pause').click(function(){
            $('#play').removeClass('activeButton');
            $('#pause').addClass('activeButton');
            $('#play').hide();
            $('#pause').show();
            autoswitch=true;
        });
    }
}

1 个答案:

答案 0 :(得分:1)

我找到了答案。

问题不在我上面发布的代码中。 这是在这个功能:

function showhide()
{
    $('.slide,#play,#pause').mouseenter(function(){
        tt=setInterval(function(){  
            $('.activeButton').show();
        },1);
    }).mouseleave(function(){
        clearInterval(tt);
        $('.activeButton').hide();
    });
}

我将.show()函数移到了setInterval之外,瞧!没有闪烁