【发布时间】:2014-08-09 19:38:43
【问题描述】:
我不是想比较 CSS3 和 Javascript 的特性,我想知道在遇到这种情况时如何决定。我知道实现单个交互效果的三种方法,在这个例子中,当用户悬停在div 上时,内部元素将扩展它的宽度和高度。
在这种情况下,我想知道哪种方法是理想的。需要考虑的事情,我将针对现代浏览器,我支持移动设备(iPad 和 iPhone),我将使用 jQuery 和 Boostrap。
1.使用 jQuery,它可以被编码成这样:
$('#js').hover(function(){
$('.inner',this).animate({'height':'200px', 'width':'200px'})
},function(){
$('.inner',this).animate({'height':'0px', 'width':'0px'})
})
2。使用 CSS,它看起来像这样:
#css .inner {
-webkit-transition: width .3s, height .3s;
transition: width .3s, height .3s;
}
#css:hover .inner {
width: 200px;
height: 200px;
}
3.最后,同时使用 JS 和 CSS
CSS
#css.hover .inner {
-webkit-transition: width .3s, height .3s;
transition: width .3s, height .3s;
}
#css.hover .inner {
width: 200px;
height: 200px;
}
JS
$('#css_js').hover(function(){
$(this).addClass('hover');
},function(){
$(this).removeClass('hover');
})
我的小提琴在这里: http://jsfiddle.net/pk0cf25u/
【问题讨论】:
-
我建议也看看 jquery.transit。 ricostacruz.com/jquery.transit
标签: jquery html performance css convention