jquery 的 animate({left:1000px},1000);和animate({marginLeft:1000px},1000);有什么区别呢?

 我来答
吃心不改Pro
2017-07-14 · 狂吃不胖的瘦猴~
吃心不改Pro
采纳数:1482 获赞数:10786

向TA提问 私信TA
展开全部

先解释一下animate()方法,animate()可 方法执行 CSS 属性集的自定义动画。该方法通过CSS样式将元素从一个状态改变为另一个状态。CSS属性值是逐渐改变的,这样就可以创建动画效果。

animate格式:

animate(styles,speed,easing,callback)
styles 必需,规定产生动画效果的 CSS 样式和值
speed 可选,规定动画的速度。默认是 "normal"
easing 可选,规定在不同的动画点中设置动画速度的 easing 函数
callback 可选,animate 函数执行完之后,要执行的函数

注意:只有数字值可创建动画(比如 "margin:30px")。字符串值无法创建动画(比如 "background-color:red")。

题主用了left: 1000px 和 marginLeft: 1000px,其中left和marginLeft是styles参数,也就是css样式表。

HTML代码:

<div class=".div1" style="width:100px;height:100px;background:red;">
    这里是div
</div>

marginLeft:1000px,marginLeft为左外边距,这个横好理解,元素本身和内容距离左偏1000像素。直接使用就可以了:

.div1 {
    margin-left: 1000px;
}

left: 1000px,left为左偏移,同为元素本身和内容距离左偏1000像素。但需要注意的是left需要和position结合使用,需要定义position:absolute或者position:relative,如

.div1 {
    position:sbsolute;
    left:1000px;
}


稀饭00520
2017-07-07 · TA获得超过254个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:207万
展开全部
animate({left:1000px},1000); 是用了定位position 让位置相对父节点如果没有就是相对BOD位置向右移动1000px;这是不占文档流的
animate({marginLeft:1000px},1000) 是相当于自己原来的位置移动1000px;这个是占文档流的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小廖网页设计
2013-12-10
知道答主
回答量:6
采纳率:0%
帮助的人:2556
展开全部
前一个是左移1000像素动画,后一个是边距加1000像素,
效果是不一样的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
diguosidai
2017-06-26 · TA获得超过223个赞
知道小有建树答主
回答量:167
采纳率:75%
帮助的人:107万
展开全部
animate的具体方法是这样:$(selector).animate(styles,speed,easing,callback)

很简单就看出问题来了,styles里的left和marginLeft,分别是css盒子模型里的2个不同的属性。一个是元素的相对位置在x轴上左移1000像素,另一个是元素的左外边距加大1000像素。
left只有在相对和据对定位中设定了才有效果,但是marginLeft是没有前提条件就能满足的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1013651933
2013-12-09 · TA获得超过188个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:160万
展开全部
设置left属性只对position设置了relative、absolute、fixed的元素有效;
设置margin-left属性只对position为relative、static的元素有效!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式