我有以下问题:
我希望动画能够在单击已准备就绪的情况下启动...它在设置为.ready时有效但在启用时没有.click
$('div.main').ready(function() {
setTimeout("$('div#tl').css({'top' : '-175px', 'left' : '-175px'})", 100);
setTimeout("$('div#t').css({'top' : '-175px'})", 300);
setTimeout("$('div#tr').css({'top' : '-175px', 'left' : '325px'})", 500);
setTimeout("$('div#r').css({'left' : '325px'})", 700);
setTimeout("$('div#br').css({'top' : '325px', 'left' : '325px'})", 900);
setTimeout("$('div#b').css({'top' : '325px'})", 1100);
setTimeout("$('div#bl').css({'top' : '325px', 'left' : '-175px'})", 1300);
setTimeout("$('div#l').css({'left' : '-175px'})", 1500);
});
这是HTML:
<div class="main">
<div class="sub" id="tl"></div>
<div class="sub" id="t"></div>
<div class="sub" id="tr"></div>
<div class="sub" id="r"></div>
<div class="sub" id="br"></div>
<div class="sub" id="b"></div>
<div class="sub" id="bl"></div>
<div class="sub" id="l"></div>
</div>
这里是CSS:
div.main {
position: relative;
z-index: 2;
width: 300px;
height: 300px;
margin: 0px auto;
top: 50%;
margin-top: -150px;
background-color: #eee;
}
div.sub {
position: absolute;
z-index: 1;
top: 75px;
left: 75px;
width: 150px;
height: 150px;
background-color: rgba(0,0,0,0.5);
-webkit-transition: all 0.3s ease-in-out;
}
答案 0 :(得分:2)
您应该将它们包含在文档就绪功能中。
$(document).ready(function() {
$('div.main').click(function() {
setTimeout("$('div#tl').css({'top' : '-175px', 'left' : '-175px'})", 100);
setTimeout("$('div#t').css({'top' : '-175px'})", 300);
setTimeout("$('div#tr').css({'top' : '-175px', 'left' : '325px'})", 500);
setTimeout("$('div#r').css({'left' : '325px'})", 700);
setTimeout("$('div#br').css({'top' : '325px', 'left' : '325px'})", 900);
setTimeout("$('div#b').css({'top' : '325px'})", 1100);
setTimeout("$('div#bl').css({'top' : '325px', 'left' : '-175px'})", 1300);
setTimeout("$('div#l').css({'left' : '-175px'})", 1500);
});
});
答案 1 :(得分:1)
您只需将代码放入dom ready函数
即可$(function() {
$('div.main').click(function() {
setTimeout("$('div#tl').css({'top' : '-175px', 'left' : '-175px'})", 100);
setTimeout("$('div#t').css({'top' : '-175px'})", 300);
setTimeout("$('div#tr').css({'top' : '-175px', 'left' : '325px'})", 500);
setTimeout("$('div#r').css({'left' : '325px'})", 700);
setTimeout("$('div#br').css({'top' : '325px', 'left' : '325px'})", 900);
setTimeout("$('div#b').css({'top' : '325px'})", 1100);
setTimeout("$('div#bl').css({'top' : '325px', 'left' : '-175px'})", 1300);
setTimeout("$('div#l').css({'left' : '-175px'})", 1500);
});
});
问题是执行js时你的div不存在。当所有元素都准备就绪时,将调用dom ready函数。