js怎么做一个div宽度变化的动画

要javascript原生方法,JQ的不要..我想要的效果:点击<a>后->它的父级div在一个设定时间内(如10秒)由现在的宽度100px慢慢的变宽,增加到1000px... 要javascript原生方法,JQ的不要..

我想要的效果:点击<a>后 -> 它的父级div在一个设定时间内(如10秒)由现在的宽度100px慢慢的变宽,增加到1000px;

好像应该用:setTimeout、clearTimeout 之类的。我新手,弄了一晚上都不知道该怎么加才能实现反复调用函数这个流程让div宽度逐步增加,如果不麻烦的话,请在代码里面写点简单的注释,我学下大概实现这个的判断流程、原理之类的。

万分感谢!!
<style>div{ width: 100px; height: 100px; line-height:100px; background: red; text-align: center;}</style><div><a href="#" id="text">Test</a></div>

<script>
(function test(objID) { var text = document.getElementById(objID); text.onclick = function() { var text = document.getElementById(objID); var div = text.parentNode; //取得id=objID对象的父节点 var width = div.offsetWidth; //取得元素宽度 alert(width); for (var i = width; i < 1001; i++) { div.style.width = i + "px"; } }})("text");
</script>
展开
 我来答
Prince____Yu
推荐于2017-12-16 · TA获得超过3718个赞
知道小有建树答主
回答量:864
采纳率:33%
帮助的人:959万
展开全部
<script>
    var i = 100;
    var text = document.getElementById("text");
    function test() {                 
   
        var div = text.parentNode;  //取得id=objID对象的父节点        
        var width = div.offsetWidth; //取得元素宽度        
        
        if (i < 1001) {//如果小于1000的话就把div宽度+1
            i++;
            div.style.width = i + "px";  
        };                
    };
    //test("text");
    text.onclick = function(){//点击执行
        //不断执行div宽度+1
        setInterval('test()',5);
    } 
    </script>

你的问题在于用了for循环了,应该用定时器~

希望我的回答能帮到你哈,有问题可以追问,觉得好就点个赞,有用就采纳!

单身Mvp
2013-12-25 · TA获得超过245个赞
知道小有建树答主
回答量:240
采纳率:100%
帮助的人:151万
展开全部
稍微改动了你的代码。
<style>div{ width: 100px; height: 100px; line-height:100px; background: red; text-align: center;}</style><div><a href="#" id="ss" onclick="test()">Test</a></div><script>var j= 100;function test() { var text = document.getElementById("ss"); var div = text.parentNode; //取得id=objID对象的父节点 var width = div.offsetWidth; //取得元素宽度 alert(width); j++; div.style.width = div.offsetWidth + 1 + "px"; setTimeout("test()",300); }; </script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yyzloveglq
2013-12-25 · TA获得超过129个赞
知道答主
回答量:93
采纳率:0%
帮助的人:88.6万
展开全部
jQuery animiate...
追问
阅读能力有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hz0814537
推荐于2016-10-11 · TA获得超过556个赞
知道小有建树答主
回答量:626
采纳率:75%
帮助的人:288万
展开全部
<div><a href="#" id="text">Test</a></div>

<script>
var i = 100;
var text = document.getElementById("text");
function test() {

var div = text.parentNode; //取得id=objID对象的父节点
var width = div.offsetWidth; //取得元素宽度

if (i < 1001) {//如果小于1000的话就把div宽度+1
i++;
div.style.width = i + "px";
};
};
//test("text");
text.onclick = function(){//点击执行
//不断执行div宽度+1
setInterval('test()',5);
}
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式