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

只要向右移动过,就不会向左移动了,这是怎么回事啊?

<!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>7.13编程练习:jQuery动画特效</title>
        <meta charset=utf-8>
        <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
        <style type="text/css">
        div{
            position: relative;
            margin:0 auto;
            width:600px;
        }
        </style>
    </head>
    
    <body>
        <h3>左移和右移</h3>
        <div>
            <img src="http://pic.miercn.com/uploads/allimg/150824/104-150R4135319.jpg" alt=""  / >
        </div>
        <input id="btnLeft" type="button" value="左移" />
        <input id="btnRight" type="button" value="右移" />
        <span id="tip"></span>
        <script type="text/javascript">
        $(function  () {
            $("#btnLeft").bind("click",function () {
                $("div").animate({
                    right: "+=50px"},1000,function  () {
                        $("#tip").html("左移完成!")
                    });
            });
            $("#btnRight").bind("click", function() {
                $("div").animate({
                    left: "+=50px"},1000,function  () {
                        $("#tip").html("右移完成!")
                    });
            });
        });
        </script>
       
    </body>
</html>

先向左移动,再向右移动,没有一点儿问题,但是只要向右移动过,就不会向左移动了,这是怎么回事啊?

正在回答

1 回答

当我把两次动画都改成left或者right的时候,效果就好了。

lz有没有发现,即使先左再右有移动效果,但是右移的开始会闪一下,这个原因就是你两次设置的是不同的属性。

举个栗子:一个100*100的div,其中有一个60*60的子div,然后我们给这个子div设置margin-left:40px;margin-right:40px;你觉得子div会以哪个css属性为准呢?这个时候就会发生其中一个失效的情况(这里是margin-right失效)。

总结:个人理解,做这样的效果,尽量操作同一个css属性,使动画过度平滑,且不会出错。

以下是解决办法:

55dafab700018b3c05000303.jpg

55dafab70001b27a05000310.jpg


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

青霜 提问者

果然没有问题了,谢谢你的回复和帮助!
2015-08-24 回复 有任何疑惑可以回复我~
#2

闹小志 回复 青霜 提问者

no thanks
2015-08-25 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

只要向右移动过,就不会向左移动了,这是怎么回事啊?

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