jquery - 通过 CSS 实现不同的动画

标签 jquery html css

我的 HTML 页面中的元素很少,只有图像和工具提示。我希望它们根据我在 CSS 部分制作的动画随机制作动画。

目前,当页面加载时,所有元素都会一起动画,我不希望这样。

我正在考虑一个一个地从 jQuery 调用 CSS 类,但是查看元素的数量,因为它只是一个基本的翻译动画,有没有更好的方法来做到这一点?

元素如下:

<div class="twitter-animate">
  <div id="twitter-wrap"><a href="#" id="twitter"><img src="img/link-twitter.png"></a></div>
    <div id="twitter-tooltip"><span>Tweet!</span></div>
</div>


    <div id="youtube-wrap"><a href="#" id="youtube"><img src="img/link-youtube.png"></a></div>
    <div id="youtube-tooltip"><span>YouTube</span></div>

    <div id="facebook-wrap"><a href="#" id="facebook"><img src="img/link-fb.png"></a></div>
    <div id="facebook-tooltip"><span>Facebook</span></div>

    <div id="newspaper-wrap"><a href="#" id="newspaper"><img src="img/link-newspaper.png"></a></div>
    <div id="newspaper-tooltip"><span>Newspaper</span></div>

    <div id="www-wrap"><a href="#" id="www"><img src="img/link-www.png"></a></div>
    <div id="www-tooltip"><span>Put your URL!</span></div>

    <div id="email-wrap"><a href="#" id="email"><img src="img/link-email.png"></a></div>
    <div id="email-tooltip"><span>Mail me!</span></div>

最佳答案

为了简单起见,我假设您希望元素从左向右平移。工具提示也不相关,所以我将删除它们。

您需要做的第一件事是为所有元素添加一个公共(public)类。在这里,我将 share 添加为一个类:

<div id="twitter-wrap" class="share"><a href="#" id="twitter">Twitter</a></div>
<div id="youtube-wrap" class="share"><a href="#" id="youtube">YouTube</a></div>
<div id="facebook-wrap" class="share"><a href="#" id="facebook">Facebook</a></div>
<div id="newspaper-wrap" class="share"><a href="#" id="newspaper">Newspaper</a></div>
<div id="www-wrap" class="share"><a href="#" id="www">WWW</a></div>
<div id="email-wrap" class="share"><a href="#" id="email">Email</a></div>

那么你的 CSS 应该看起来像这样......

.share {
  width: 100px;
  background-color: #333;
  padding: 3px  0 3px 10px;
  margin-bottom: 3px;
  -webkit-transform: translate(-100px, 0);
  -moz-transform: translate(-100px, 0); 
  -o-transform: translate(-100px, 0);  
  -ms-transform: translate(-100px, 0); 
   transform: translate(-100px, 0); 
  -webkit-transition: all 500ms ease;
  -moz-transition: all 500ms ease; 
  -o-transition: all 500ms ease;  
  -ms-transition: all 500ms ease;
   transition: all 500ms ease;    
}

.share.animate {
  -webkit-transform: translate(0, 0);
  -moz-transform: translate(0, 0); 
  -o-transform: translate(0, 0);  
  -ms-transform: translate(0, 0); 
   transform: translate(0, 0); 
}

然后你需要一点 javascript 来触发第一个动画,然后在每个 trasition 结束时监听以触发下一个...

//after document ready
$(".share").first().addClass("animate")

$(".share").bind("webkitTransitionEnd oTransitionEnd msTransitionEnd transitionend", function(e){
  $(e.target).next('.share').addClass("animate");
})

您可以在这里找到所有内容:http://jsfiddle.net/HYAWj/

关于jquery - 通过 CSS 实现不同的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11838059/

相关文章:

php - 使用AJAX从html表中的单行输入提交到MySQL数据库

html - 单击时 ulink 失火

javascript - 页面的 CSS 输入动画

jquery - 使用 jQuery 将 <td> 替换为 <tr><td>

javascript - 单击自动完成内的按钮

没有图像文件的 JQuery UI

html - 如果 CSS flexbox 中的最后一行,则在第一行中填充剩余宽度

html - 小数字体大小 html5 Canvas ?

javascript - 鼠标悬停后div发生变化,div不显示

带有变换旋转(90 度)的 html div 元素在 chrome 中消失