【发布时间】:2016-11-14 22:22:36
【问题描述】:
我的代码可以在这里运行,但是我遇到了一些性能问题,我想问问更有经验的开发人员是否可以做些什么来改进它。我的代码相当简单。我想要实现的是,当您单击图像时,图像会向下滑动,而另一个图像会滑入它的位置。我的第一种方法是:
html
<div id="myDiv">
<div class="page page-1"><img src="img1.jpg" width="100%"></div>
<div class="page page-2"><img src="img2.jpg" width="100%"></div>
</div>
css
.page-2 {display: none;}
.page-moveFromTop {
-webkit-animation: moveFromTop 2s ease both;
animation: moveFromTop 2s ease both;
}
.page-moveToBottom {
-webkit-animation: moveToBottom 2s ease both;
animation: moveToBottom 2s ease both;
}
@keyframes moveFromTop {
from { -webkit-transform: translateY(-100%); transform: translateY(-100%); }
}
@keyframes moveToBottom {
from { }
to { -webkit-transform: translateY(100%); transform: translateY(100%); }
}
然后在我的 js 上:
$(document).ready( function () {
$('#myButton').click(function(){
$('.page-1').addClass('page-moveToBottom');
$('.page-2').css('display', 'block');
$('.page-2').addClass('page-moveFromTop');
});
});
所以这是可行的,但我遇到的问题是,有时当我按下按钮和转换发生之前,第二张图像会快速滑动,有时转换会被完全绕过。这只发生在大约 20% 的时间里,但仍然不够好。我认为问题可能是这样的事实,即显示设置为“无”,然后由我读过的 javascript 应用,这有时不是最好的选择,所以我尝试了一种不同的方法,从完全html:
<div id="myDiv">
<div class="page page-1"><img src="img1.jpg" width="100%"></div>
</div>
和
.page-2 {display: none;}
从我的 css 中改用 append() 函数修改 javascript:
$(document).ready( function () {
$('#myButton').click(function(){
$('.page-1').addClass('page-moveToBottom');
$('<div class="page page-2"><img class="image" src="ecran2.jpg" width="100%"></div>').appendTo("#pt-main");
$('.page-2').addClass('page-moveFromTop');
});
});
同样,这也有效,但我遇到了我之前提到的不一致问题。所以我想知道的是,是否有一种最佳实践方法可以在性能方面更可靠。谢谢你的时间。 P
【问题讨论】:
-
您也可以创建堆栈 sn-p。
标签: javascript jquery html css css-transitions