所以我决定使用一个简单的1行jquery内容滑块,而不是选择膨胀的插件。我正在使用animated.css除了淡入/淡出幻灯片的jquery之外的文本淡入淡出。
HTML:
<section id="student-blocks">
<div>
<h2 class="animated fadeUp">News Item #1</h2>
<p "animated fadeIn">lorem</p>
</div>
<div>
<h2 class="animated fadeUp">News Item #2</h2>
<p "animated fadeIn">lorem</p>
</div>
<div>
<h2 class="animated fadeUp">News Item #3</h2>
<p "animated fadeIn">lorem</p>
</div>
</section>
JQuery的:
$(function ()
{
$("#student-blocks > div:gt(0)").hide();
setInterval(function ()
{
$('#student-blocks > div:first')
.hide()
.next()
.fadeIn()
.end()
.appendTo('#student-blocks');
}, 4000);
});
PAGE主页在这里:http://cloud69.comoj.com/pages/
问题
此幻灯片显示我的CPU使用率最高可达15%至20%。我尝试收集CPU配置文件,并定期查看尖峰(可能是幻灯片正在更改时)。
为什么CPU使用率如此之高?我该如何做得更好?
答案 0 :(得分:3)
首先,在你的问题上,我怀疑你会通过优化发布的代码得到任何有意义的改进(20%-25%,你说这是一个非常高的数字!)。但是,让我们看看我们能做些什么。因此,在您的代码中,您在区间函数之外使用$('#student-blocks > div:first')
,如:
var el $('#student-blocks > div:first');
,并使用el
元素变量。
好多了就是使用这个选择器:
var el = $("#student-blocks").find("div:first");
根据此article,**性能选择器**的最佳选择是:
$("#student-blocks div:first-of-type");
总之,我会按如下方式更改代码:(http://jsfiddle.net/csdtesting/104cuxxb/)
var studentsblocks = $("#student-blocks");
var el = studentsblocks.find("div:first-of-type");
$(studentsblocks).find("div:gt(0)").hide();
setInterval(function ()
{
el
.hide()
.next()
.fadeIn()
.end()
.appendTo(studentsblocks);
}, 4000);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section id="student-blocks">
<div>
<h2 class="animated fadeUp">News Item #1</h2>
<p "animated fadeIn">lorem</p>
</div>
<div>
<h2 class="animated fadeUp">News Item #2</h2>
<p "animated fadeIn">lorem</p>
</div>
<div>
<h2 class="animated fadeUp">News Item #3</h2>
<p "animated fadeIn">lorem</p>
</div>
</section>
&#13;
另一种方法是降低动画的帧速率,或进行更改以帮助浏览器呈现引擎(这可能是更改样式或dom等内容)。
只使用CSS而没有任何PU问题的替代解决方案
为了更好,我会使用只是一个简单的CSS 。 我为你的例子做了一个淡出效果: http://jsfiddle.net/csdtesting/104cuxxb/
仅CSS实施:
h1,
h2,
h3 {
font-family: Tahoma, Arial, sans-serif;
color: #fff;
text-shadow: 1px 1px 0px #000000;
filter: dropshadow(color=#000000, offx=1, offy=1);
}
a:hover {
color: #0097bc;
}
.wrapper {
width: 500px;
margin: 25px auto;
}
.slogan {
width: 500px;
height: 90px;
margin: 25px auto;
overflow: hidden;
position: relative;
border: 1px solid #000;
background-color: #222;
-webkit-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, .5), 0px 1px 0px rgba(250, 250, 250, .2);
box-shadow: inset 0px 2px 2px rgba(0, 0, 0, .5), 0px 1px 0px rgba(250, 250, 250, .2);
-webkit-transition: background-color 350ms;
-moz-transition: background-color 350ms;
transition: background-color 350ms;
}
.slogan span {
font-family: Tahoma, Arial, sans-serif;
display: inherit;
width: 100%;
height: 100%;
margin: 0;
font-size: 75%;
line-height: 5px;
text-align: center;
color: #cccccc;
}
.slogan p {
position: absolute;
font-family: Tahoma, Arial, sans-serif;
width: 100%;
height: 100%;
margin: 0;
line-height: 50px;
text-align: center;
color: #fff;
text-shadow: 1px 1px 0px #000000;
filter: dropshadow(color=#000000, offx=1, offy=1);
transform: translateX(100%);
-moz-transform: translateX(100%);
-webkit-transform: translateX(100%);
}
.slogan p:nth-child(1) {
animation: left-one 20s ease infinite;
-moz-animation: left-one 20s ease infinite;
-webkit-animation: left-one 20s ease infinite;
}
.slogan p:nth-child(2) {
animation: left-two 20s ease infinite;
-moz-animation: left-two 20s ease infinite;
-webkit-animation: left-two 20s ease infinite;
}
.slogan.down p {
transform: translateY(-100%);
-moz-transform: translateY(-100%);
-webkit-transform: translateY(-100%);
}
.slogan.down p:nth-child(1) {
animation: down-one 20s ease infinite;
-moz-animation: down-one 20s ease infinite;
-webkit-animation: down-one 20s ease infinite;
}
.slogan.down p:nth-child(2) {
animation: down-two 20s ease infinite;
-moz-animation: down-two 20s ease infinite;
-webkit-animation: down-two 20s ease infinite;
}
/*================================
Move the slogan Downwards
==================================*/
/** Mozilla Firefox Keyframes **/
@-moz-keyframes down-one {
0% {
-moz-transform: translateY(-100%);
}
10% {
-moz-transform: translateY(0);
}
40% {
-moz-transform: translateY(0);
}
50% {
-moz-transform: translateY(100%);
}
100% {
-moz-transform: translateY(100%);
}
}
@-moz-keyframes down-two {
0% {
-moz-transform: translateY(-100%);
}
50% {
-moz-transform: translateY(-100%);
}
60% {
-moz-transform: translateY(0);
}
90% {
-moz-transform: translateY(0);
}
100% {
-moz-transform: translateY(100%);
}
}
/** Webkit Keyframes **/
@-webkit-keyframes down-one {
0% {
-webkit-transform: translateY(-100%);
}
10% {
-webkit-transform: translateY(0);
}
40% {
-webkit-transform: translateY(0);
}
50% {
-webkit-transform: translateY(100%);
}
100% {
-webkit-transform: translateY(100%);
}
}
@-webkit-keyframes down-two {
0% {
-webkit-transform: translateY(-100%);
}
50% {
-webkit-transform: translateY(-100%);
}
60% {
-webkit-transform: translateY(0);
}
90% {
-webkit-transform: translateY(0);
}
100% {
-webkit-transform: translateY(100%);
}
}
&#13;
<div class="wrapper">
<h3>Cool fading text only with css .slogan down class</h3>
<div class="slogan down">
<p>News Item #1<span>lorem</span>
</p>
<p>News Item #2<span>lorem</span>
</p>
<p>News Item #3<span>lorem</span>
</p>
<p>News Item #4<span>lorem</span>
</p>
</div>
</div>
&#13;
希望你喜欢它,真的很有帮助!