ホームページ  >  記事  >  ウェブフロントエンド  >  css3で衝撃波効果を実現

css3で衝撃波効果を実現

小云云
小云云オリジナル
2018-01-13 10:00:171631ブラウズ

この記事では主に衝撃波効果を実現するためのCSS3のサンプルコードを紹介していますが、編集者が非常に良いと思ったので、参考として共有させていただきます。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。

最近、多くのブラウザのボタンをクリックすると、次のような衝撃波エフェクトが表示されるようになりました。興味本位で、インターネット上の情報を参照して、このエフェクトを研究して実装しました。

実装のアイデア:

関係する css3 属性の変更は、疑似クラスを通じて衝撃波レイヤーを実装します。同時に、衝撃波の前後の中心を設定する必要があります (ここには少し数学的な知識が必要です。2 つの点の位置を計算するには絵を描きます)。最後に、transition-duration: 0 を設定して瞬時に到達します。 PS は、a:active を使用するとマウス クリックの効果をシミュレートできることを学びました

次の図を描画するだけです (非常に良い):

実装されたコード:


  <html>
  <head>
  <meta charset="UTF-8">
  <title>实现冲击波--数学知识很重要</title>
  <style>
  *{
  margin:0;
  padding:0;
  box-sizing:border-box;
  }
  html,body{
  font-family:"微软雅黑";
  }
  .wave{
  position:relative;
  float:left;
  width:50%;
  height:420px;
  }
  .wave a{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  display:inline-block;
  width:120px;
  height:50px;
  /*margin-left:-60px;
  margin-top:-25px;*/
  line-height:50px;
  text-align:center;
  border-radius:5px;
  color:#fff;
  font-size:16px;
  cursor:pointer;
  /*overflow:hidden;*/
  
  }
  #wave1{
  background-color:#00BFFF;
  }
  #wave2{
  background-color:#009955;
  }
  #wave1 a{
  background-color:burlywood;
  }
  #wave2 a{/*宽度不确定长度*/
  width:50%;
  height:50px;
  background-color:cadetblue;
  }
  .wave a:after{
  /*画图
 ,假设left:0;top:0然后画出两个中心点的水平和垂直距离*/
  content: "";
  display: block;
  position: absolute;
  left: -40px;
  top: -75px;
  width: 200px;
  height: 200px;
  background: rgba(255,255,255,0.8);
  border-radius: 50%;
  opacity:0;
  transition: all 1s;
  }
  .wave a:active:after{
  /*位于中间即是a的中点*/
  width: 0; 
  height: 0; 
  left:60px; 
  top: 25px;
  opacity: 1; 
  transition-duration: 0s;
  }
  
  #wave2 a:after{
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  }
  #wave2 a:active:after{
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  }
  </style>
  </head>
  <body>
  <!--实现冲击波按钮确定长度-->
  <p class="wave" id="wave1">
  <a>点我</a>
  </p>
  <!--实现冲击波按钮不确定长度时-->
  <p class="wave" id="wave2">
  <a>点我哈哈</a>
  </p>
  </body>
  </html>

達成される効果:

関連する推奨事項:


css3 で円を描くローディング サークル アニメーションの例を共有

javascript、html5、css3 カスタム ポップアップ ウィンドウ

css3 アニメーション特殊効果のアニメーション シーケンスについて詳しく説明します

以上がcss3で衝撃波効果を実現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。