javascript - setInteval中改变margin不起作用
PHPz
PHPz 2017-04-11 11:51:52
[JavaScript讨论组]

实现简单的动画效果,每隔2s,将p内的内容替换掉让将p向上消失,时间为2s,一步步测试的时候没问题,但运行时,没有任何动画效果
代码如下复制运行:




    
    Title
    


11111

PHPz
PHPz

学习是最好的投资!

全部回复(3)
迷茫

逻辑有问题啊,在wrap.innerHTML = '<p id="content">'+array[index++]+'</p>';行上打个断点你就看到了,想实现这个效果你加个css3动画就行了
再加个定时器也可以,只不过这样太耗性能

  function animation(){
        var array=['111111111111111111','2222222222222222222','33333333333333333'];
        var index=0;
        setInterval(function(){
            var wrap = document.getElementById('wrap');
            var content = document.getElementById('content');
            content.style.marginTop = -40+'px';
            setTimeout(function(){
                wrap.innerHTML = '<p id="content">'+array[index++]+'</p>';
                if(index == array.length){
                    index = 0;
                }
            },1000)

        },2000);
    }
怪我咯

因为后面的语句把前面语句设置的样式覆盖了

content.style.marginTop = -40+'px';
wrap.innerHTML = '<p id="content">'+array[index++]+'</p>';
黄舟

偏个题。如果题主是想做这种动画效果的话 推荐使用css3实现,因为这样的写法实在是太损耗性能,在手机上跑很容易掉帧。

当然,如果题主只是初学者想学下怎么使用Javascript制作动画的话就无所谓了,有空还是要看下css3,transtion或者animation配合transform可以很简单实现这样的效果。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号