Javascript动画CSS浮动属性
Javascript animate CSS float property
我通过JavaScript添加了一个类,它使一个部分向右浮动,对于这个部分类,我想将浮动动画化到它的位置,但我无论如何都没有找到实现这一点的方法。有没有一种方法可以使用css3来设置浮动动画?
由于上述原因,单独使用CSS是不可能的。但看看Darcy Clark在这篇帖子上的回答:
http://www.quora.com/Is-there-a-way-in-jquery-to-animate-an-element-from-a-float-right-position-to-a-float-left-position
他链接到这把小提琴,似乎已经找到了答案:
http://jsfiddle.net/darcyclarke/m9pTN/
HTML
<div class="float right"></div>
<div class="float left"></div>
CSS
.float {
background: red;
width: 50px;
height: 50px;
margin: 0 10px;
display: block;
float: left;
clear: both;
}
.left {
background: blue;
float: right;
}
JS-
(function(){
var $plugin = jQuery.sub();
$plugin.fn.animate = function(props, speed, cb){
if(typeof(speed) == "function")
cb = speed, speed = 500;
if(typeof(cb) != "function")
cb = function(){};
return $.each(this, function(i, el){
el = $(el);
if(props.float && props.float != el.css("float")){
var elem = el.clone().css(props).insertBefore(el),
temp = (props.float == el.css("float")) ? elem.position().left : el.position().left;
props.marginLeft = elem.position().left;
elem.remove();
el.css({float:"left",marginLeft:temp});
}
$(this).animate(props, speed, function(){
$(this).css(props);
cb();
});
});
};
$(".float.right").bind("click", function(){
$plugin(this).animate({float:"right"}, 1000);
});
$(".float.left").bind("click", function(){
$plugin(this).animate({float:"left"}, 1000);
});
})();
我不知道这样做是否真的是个好主意。
使用CSS:
.float{
position: absolute;
right:0;
transition: all 300ms ease;
}
你也可以使用
transform: translateX(100%);
transition: all 300ms ease;
不过,您必须为转换和转换添加供应商前缀。不需要JQuery,并且上面的答案不正确。
您可以在flex容器上编写转换,而不用考虑为float属性设置动画。
创建一个弹性容器,如下所示:
<div class="main-div" style="display:flex; transition: width 2s">
<div id="child1" style="order: 1 width: 10%"></div>
<div id="child2" style="order: 2"></div>
<div id="child3" style="order: 3"></div>
</div>
<button>Change width of child1</button>
<script>
$('document').ready(function() {
$('button').on('click', function(){
$('#child1').width(100%);
$('#child3').hide(1000);
});
});
</script>
现在将animation属性应用于div.order1的宽度更改。隐藏div.order3并通过javascript将div.order1宽度更改为100%。
您将获得所需的动画。
***不检查上面的代码。我刚写完,请根据你的要求修改一下。
相关文章:
- 获取HTML属性中CSS声明的值
- 谷歌图表-如何更改整个表的css属性
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- Css order属性不't在Jquery设置时更新
- CSS中的游标属性似乎不适用于USB On The Go
- 重写CSS:使用jquery显示none属性
- CSS样式属性留空
- 如何在CSS或Javascript中定位选定的属性(在HTML选项中)
- 从CSS到Javascript的属性值
- Android在HTML容器中滚动,该容器具有CSS溢出属性
- 将css属性替换为变量
- 使用Jquery/Javascript替换CSS属性
- 带有CSS的数据属性就没那么有用了
- 如何使用JavaScript查找未定义的CSS属性的值
- 在jquerymobile中设置按钮css属性的动画
- 使用javascript和css选择器获取value属性的内容
- JavaScript无法提取引号css属性
- 使用AngularJS动态更改css属性
- 使用javascript获取具有特定CSS属性的所有元素
- 将css属性添加到对象的集合中