仅在特定页面上使用CSS3动画 [英] CSS3 animation only on certain pages

查看:71
本文介绍了仅在特定页面上使用CSS3动画的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的CSS3动画代码:我在其中一个导航链接上应用了摇动。它像一个魅力,但我希望它关闭时,有人打开它链接到它的网页。



我该如何解决这个问题?



 #menu-item-313 {animation:shake 1.4s; -webkit-animation-iteration-count:10; / * Chrome,Safari,Opera * / animation-iteration-count:6; transform:translate3d(0,0,0);} @ keyframes shake {10%,90%{transform:translate3d(-2px,0,0); } 20%,80%{transform:translate3d(4px,0,0); } 30%,50%,70%{transform:translate3d(-8px,0,0); } 40%,60%{transform:translate3d(8px,0,0); 

解决方案

One方法是在body上设置一个类,如下所示,并使用:not 选择器





  body:not(.pg313)#menu-item-313 {animation:shake 1.4s; -webkit-animation-iteration-count:10; / * Chrome,Safari,Opera * / animation-iteration-count:6; transform:translate3d(0,0,0);} @ keyframes shake {10%,90%{transform:translate3d(-2px,0,0); } 20%,80%{transform:translate3d(4px,0,0); } 30%,50%,70%{transform:translate3d(-8px,0,0); } 40%,60%{transform:translate3d(8px,0,0); }}  

 < body class =pg313> < div id =menu-item-313>菜单项313< / div> < div id =menu-item-314>菜单项314< / div> < / body>  




$ b

  body:not(.pg313)#menu-item-313 {animation:shake 1.4s; -webkit-animation-iteration-count:10; / * Chrome,Safari,Opera * / animation-iteration-count:6; transform:translate3d(0,0,0);} @ keyframes shake {10%,90%{transform:translate3d(-2px,0,0); } 20%,80%{transform:translate3d(4px,0,0); } 30%,50%,70%{transform:translate3d(-8px,0,0); } 40%,60%{transform:translate3d(8px,0,0); }}  

 < body class =pg314> < div id =menu-item-313>菜单项313< / div> < div id =menu-item-314>菜单项314< / div> < / body>  


This is my code for CSS3 animation: shake that I applied on one of the nav links. It works like a charm, but I want it turned off when someone opens the page that it is linked to it.

How can I solve this problem?

#menu-item-313 {
animation: shake 1.4s;
-webkit-animation-iteration-count: 10; /* Chrome, Safari, Opera */
    animation-iteration-count: 6;
  transform: translate3d(0, 0, 0);
}

@keyframes shake {
  10%, 90% {
    transform: translate3d(-2px, 0, 0);
  }
  
  20%, 80% {
    transform: translate3d(4px, 0, 0);
  }

  30%, 50%, 70% {
    transform: translate3d(-8px, 0, 0);
  }

  40%, 60% {
    transform: translate3d(8px, 0, 0);
  }
}

解决方案

One way is to set a class on the body, like this, and use the :not selector

Sample not shaking

body:not(.pg313) #menu-item-313 {
  animation: shake 1.4s;
  -webkit-animation-iteration-count: 10; /* Chrome, Safari, Opera */
  animation-iteration-count: 6;
  transform: translate3d(0, 0, 0);
}

@keyframes shake {
  10%, 90% {
    transform: translate3d(-2px, 0, 0);
  }

  20%, 80% {
    transform: translate3d(4px, 0, 0);
  }

  30%, 50%, 70% {
    transform: translate3d(-8px, 0, 0);
  }

  40%, 60% {
    transform: translate3d(8px, 0, 0);
  }
}

<body class="pg313">

  <div id="menu-item-313">
     Menu item 313
  </div>
  <div id="menu-item-314">
     Menu item 314
  </div>
  
</body>

Sample shaking

body:not(.pg313) #menu-item-313 {
  animation: shake 1.4s;
  -webkit-animation-iteration-count: 10; /* Chrome, Safari, Opera */
  animation-iteration-count: 6;
  transform: translate3d(0, 0, 0);
}

@keyframes shake {
  10%, 90% {
    transform: translate3d(-2px, 0, 0);
  }

  20%, 80% {
    transform: translate3d(4px, 0, 0);
  }

  30%, 50%, 70% {
    transform: translate3d(-8px, 0, 0);
  }

  40%, 60% {
    transform: translate3d(8px, 0, 0);
  }
}

<body class="pg314">

  <div id="menu-item-313">
     Menu item 313
  </div>
  <div id="menu-item-314">
     Menu item 314
  </div>
  
</body>

这篇关于仅在特定页面上使用CSS3动画的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆