为了账号安全,请及时绑定邮箱和手机立即绑定

如何让span继续运动?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>调用stop()方法停止当前所有动画效果</title>
        <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
        <link href="style.css" rel="stylesheet" type="text/css" />
    </head>
    
    <body>
        <h3>调用stop()方法停止当前所有动画效果</h3>
        <span></span>
        <input id="btnStop" type="button" value="停止" />
        <input id="btnStop1" type="button" value="继续" />
        <div id="tip"></div>
        
        <script type="text/javascript">
            $(function () {
            
                $("span").animate({
                    left: "+=100px"
                }, 3000, function () {
                    $(this).animate({
                        height: '+=60px',
                        width: '+=60px'
                    }, 3000, function () {
                        $("#tip").html("执行完成!");
                    });
                });
                $("#btnStop").bind("click", function () {
                   $("span").stop();
                    $("#tip").html("执行停止!");
                    $("#btnStop1").css("display","block");
                });
                $("#btnStop1").bind("click",function(){
                    
                    $("span").animate({left:"+=100px"},3000,function(){
                        $(this).animate({height:'+=60px',width:'+=60px'},3000,function(){
                            $("#tip").html("执行完成!");
                        });
                    });
                });
            });
        </script>
    </body>
</html>

css:
div
{
    margin: 10px 0px;
}
span
{
    position:absolute;
    width:80px;
    height:80px;
    border: solid 1px #ccc;
    margin: 0px 8px;
    background-color: Red;
    color:White;
    vertical-align:middle
}
#btnStop1{
    display:none;
}

1.按照之前大家说的,又做了一个继续按钮。但是当多次点击继续后,效果会累加。怎么才能让其按照一开始的参数继续执行呢。也就是宽和高变成130就停止?还有位移也是一样。

2.在span没有执行动画前,它在文档里的位置是什么?left:?px;right:?px;top:?px;bottom:?px.

正在回答

1 回答

首先清除元素默认的外边距和内边距:

*{margin:0; padding: 0px;} /* 清除默认样式 */

不然,不好知道left,right,top,bottom的具体位置!

多次效果累加的原因是:当你点击继续之后,看看执行的代码

$("#btnStop1").bind("click",function(){                     
     $("span").animate({left:"+=100px"},3000,function(){
           $(this).animate({height:'+=60px',width:'+=60px'},3000,function(){
                 $("#tip").html("执行完成!");
            });
      });
 });

中的这一句 left:"+=100px",总是获取当前left+100所以会出现累加效果,怎么按照原来的参数继续执行呢?把其left设置为固定值就行了,如left:"100px"!还有高度宽度也一样设置为固定值!

第二问:如果只是设置元素为绝对定位,并不指定距left、top、right、bottom的值的话,该元素还会再原来的位置,即使已经脱离了文档流!所以left、top的值应为该元素据top和left的值!这里的span距top的值为h3的高度22px;距left为0px;此时再指定right、和bottom是没有意义的!如果left和right同时存在,那么以left为主,如果top和bottom同时存在以top为主!

如果还有疑问,可以随时问我!

0 回复 有任何疑惑可以回复我~
#1

666图 提问者

非常感谢!
2016-01-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
jQuery基础课程
  • 参与学习       154768    人
  • 解答问题       7184    个

加入课程学习,有效提高前端开发速度

进入课程

如何让span继续运动?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信