jquery 的 animate({left:1000px},1000);和animate({marginLeft:1000px},1000);有什么区别呢?
5个回答
展开全部
先解释一下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;
}
展开全部
animate({left:1000px},1000); 是用了定位position 让位置相对父节点如果没有就是相对BOD位置向右移动1000px;这是不占文档流的
animate({marginLeft:1000px},1000) 是相当于自己原来的位置移动1000px;这个是占文档流的
animate({marginLeft:1000px},1000) 是相当于自己原来的位置移动1000px;这个是占文档流的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前一个是左移1000像素动画,后一个是边距加1000像素,
效果是不一样的!
效果是不一样的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
animate的具体方法是这样:$(selector).animate(styles,speed,easing,callback)
很简单就看出问题来了,styles里的left和marginLeft,分别是css盒子模型里的2个不同的属性。一个是元素的相对位置在x轴上左移1000像素,另一个是元素的左外边距加大1000像素。
left只有在相对和据对定位中设定了才有效果,但是marginLeft是没有前提条件就能满足的。
很简单就看出问题来了,styles里的left和marginLeft,分别是css盒子模型里的2个不同的属性。一个是元素的相对位置在x轴上左移1000像素,另一个是元素的左外边距加大1000像素。
left只有在相对和据对定位中设定了才有效果,但是marginLeft是没有前提条件就能满足的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
设置left属性只对position设置了relative、absolute、fixed的元素有效;
设置margin-left属性只对position为relative、static的元素有效!
设置margin-left属性只对position为relative、static的元素有效!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询