হৃদয় সিএসএস অ্যানিমেশন পলসিং


83

আমি কেবল সিএসএস দিয়ে অ্যানিমেটেড হার্টে কাজ করছি।

আমি এটি 2 বার পালস করতে চাই, একটি ছোট বিরতি নিন এবং তারপরে আবার এটি পুনরাবৃত্তি করুন।

আমার এখন যা আছে:

small ==> big ==> small ==> repeat animation

আমি কি জন্য যাচ্ছি:

small ==> big ==> small ==> big ==> small ==> pause ==> repeat animation

আমি এটা কিভাবে করবো?

আমার কোড:

#button{
  width:450px;
  height:450px;
  position:relative;
  top:48px;
  margin:0 auto;
  text-align:center;
  }
#heart img{
  position:absolute;
  left:0;
  right:0;
  margin:0 auto;
  -webkit-transition: opacity 7s ease-in-out;
  -moz-transition: opacity 7s ease-in-out;
  -o-transition: opacity 7s ease-in-out;
  transition: opacity 7s ease-in-out;}

 @keyframes heartFadeInOut {
  0% {
    opacity:1;
  }
  14% {
    opacity:1;
  }
  28% {
    opacity:0;
  }
  42% {
    opacity:0;
  }
  70% {
    opacity:0;
  }
}

#heart img.top { 
  animation-name: heartFadeInOut; 
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-duration: 1s;
  animation-direction: alternate;

}
<div id="heart" >
  <img class="bottom" src="https://goo.gl/nN8Haf" width="100px">
  <img class="top" src="https://goo.gl/IIW1KE" width="100px">
</div>

আরও দেখুন এই বেহালার


4
প্রশ্নটিতে সংহত স্ট্যাক স্নিপেটের পরিবর্তে আপনি jsfiddle ব্যবহার করার কোনও কারণ আছে কি? আমি যতদূর দেখতে পাচ্ছি স্ট্যাক স্নিপেট আপনার উদাহরণের জন্য দুর্দান্ত কাজ করে।
বাকুরিউ

উত্তর:


118

আপনি বিরতি অ্যানিমেশনে অন্তর্ভুক্ত করতে পারেন। তাই ভালো:

@keyframes heartbeat
{
  0%
  {
    transform: scale( .75 );
  }
  20%
  {
    transform: scale( 1 );
  }
  40%
  {
    transform: scale( .75 );
  }
  60%
  {
    transform: scale( 1 );
  }
  80%
  {
    transform: scale( .75 );
  }
  100%
  {
    transform: scale( .75 );
  }
}

কার্যকারী উদাহরণ: https://jsfiddle.net/t7f97kf4/

সম্পাদনা করুন:

খাঁটি সিএসএস হার্টের আকারের সাথে কাজ করার উদাহরণ: https://jsfiddle.net/qLfg2mrd/


10
@ ফার্নান্দোসুজা আপনি চিত্র ছাড়াই CSS হৃদয়ও তৈরি করতে পারেন - jsfiddle.net/qLfg2mrd
বেনামে

4
@ বেনামে এর জন্য আপনাকে ধন্যবাদ। আমি আমার উত্তরে আপনার লিঙ্ক যুক্ত করেছি।
Rein

আমি সেই ফিডল বুকমার্ক করছি! এটি করার দুর্দান্ত উপায়।
ডেভিড উইলকিনসন

4
@ ডেভিড উইলকিনসন এটিও বুকমার্ক করুন :) - সিএসএস- কৌশলসমূহ / উদাহরণস্বরূপ / শ্যাপসফিসএসএস :)
বেনামে

6
আপনার মানে,? চরিত্র? এটা সহজ, ঠিক আছে &hearts;। সমস্ত transformএস এর প্রয়োজন নেই ।
ইসমাইল মিগুয়েল

35

2 বার পালস করুন, একটি ছোট বিরতি নিন এবং তারপরে এটি আবার করুন

এটা চেষ্টা কর. অ্যানিমেশন সহ যাওয়া opacityখারাপ পছন্দ। transform: scale()কাজ করবে

.heart:before {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  font-family: 'icons';
  font-size: 21px;
  text-indent: 0;
  font-variant: normal;
  line-height: 21px;
}
.heart {
  position: relative;
  width: 500px;
  overflow: inherit;
  margin: 50px auto;
  list-style: none;
  -webkit-animation: animateHeart 2.5s infinite;
  animation: animateHeart 2.5s infinite;
}
.heart:before,
.heart:after {
  position: absolute;
  content: '';
  top: 0;
  left: 50%;
  width: 120px;
    height: 200px;
    background: red;
    border-radius: 100px 100px 0 0;
  -webkit-transform: rotate(-45deg) translateZ(0);
  transform: rotate(-45deg) translateZ(0);
  -webkit-transform-origin: 0 100%;
  transform-origin: 0 100%;
}
.heart:after {
  left: 26%;
  -webkit-transform: rotate(45deg) translateZ(0);
  transform: rotate(45deg) translateZ(0);
  -webkit-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
}
@-webkit-keyframes animateHeart {
  0% {
    -webkit-transform: scale(0.8);
  }
  5% {
    -webkit-transform: scale(0.9);
  }
  10% {
    -webkit-transform: scale(0.8);
  }
  15% {
    -webkit-transform: scale(1);
  }
  50% {
    -webkit-transform: scale(0.8);
  }
  100% {
    -webkit-transform: scale(0.8);
  }
}
@keyframes animateHeart {
  0% {
    transform: scale(0.8);
  }
  5% {
    transform: scale(0.9);
  }
  10% {
    transform: scale(0.8);
  }
  15% {
    transform: scale(1);
  }
  50% {
    transform: scale(0.8);
  }
  100% {
    transform: scale(0.8);
  }
}
span {
  font-family: 'Cantora One', sans-serif;
  font-size: 64px;
  position: absolute;
  top: 165px;
}
<div class="heart">
</div>


4
চূড়ান্ত প্রকল্পে আমাকে খাঁটি সিএসএসের পরিবর্তে চিত্রগুলি ব্যবহার করতে হবে। কিন্তু ধন্যবাদ! আমি আপনার অ্যানিমেশনের সময় ব্যবহার করতে পারি, যা নিখুঁত!
ফার্নান্দো সূজা

কোন পার্থক্য না। আপনি এইভাবে চিত্র স্কেল করতে পারেন। শুধু একবার চেষ্টা করুন :)
জিনু কুরিয়ান

আমি কি এইভাবে বিকল্প চিত্রগুলি বা পটভূমি চিত্র পরিবর্তন করতে পারি?
ফার্নান্দো সুজা

পুনঃটুইট একবার চেষ্টা করে দেখ. আপনার যদি কোনও সমস্যা হয় তবে আমি আপনাকে সহায়তা করব।
জিনু কুরিয়ান

আমি চেষ্টা করছি, তবে প্রথমে কিছু কাঠামো হৃৎপিণ্ডের পাঠ্য হিসাবে পরিবর্তিত হচ্ছে এবং এটি অবশ্যই একই আকারে থাকা উচিত।
ফার্নান্দো সুজা

22

আমি কেতানের উত্তর পছন্দ করি তবে হৃদয় অ্যানিমেশনটিকে আরও বাস্তবসম্মত করতে আমি আরও উন্নত করতে চাই।

  • হার্ট যখন ধড়ফড় করে তখন আকারে দ্বিগুণ হয় না। আকারে 10% পরিবর্তন আমার কাছে আরও ভাল দেখাচ্ছে।
  • আমি এটি বড় এবং ছোট উভয় পেতে পছন্দ
  • যখন এটি পুরোপুরি চলতে বন্ধ করে দেয় তখন তা আমার কাছে মৃত মনে হয়। এমনকি যখন এটি মারধর করে না, তখন এটির কিছুটা প্রসারিত বা চুক্তি করা দরকার
  • আমি "বিকল্প দিকনির্দেশ" কোডটি সরিয়েছি যাতে এটি প্রতিটি সময় একই পথে চলে
  • আমার স্পষ্টতই হার্টের শুরু শেষ এবং স্বাভাবিক স্কেল (1) এবং ক্রমের মাঝখানে অ্যানিমেশন রয়েছে। আমার কাছে এটাই পরিষ্কার মনে হচ্ছে।

#heart img{
  position:absolute;
  left:0;
  right:0;
  margin:0 auto;
 }

 @keyframes heartFadeInOut {
  0% {transform: scale(1);}
  25% {transform: scale(.97);}
  35% {transform: scale(.9);}
  45% {transform: scale(1.1);}
  55% {transform: scale(.9);}
  65% {transform: scale(1.1);}
  75% {transform: scale(1.03);}
  100% {transform: scale(1);}
}

#heart img.bottom { 
  animation-name: heartFadeInOut; 
  animation-iteration-count: infinite;
  animation-duration: 2s;
}
<div id="heart" >
  <img class="bottom" src="https://i.stack.imgur.com/iBCpb.png" width="100px">
</div>


6

বিভিন্ন মন্তব্য এবং ব্যবহারের উপর ভিত্তি করে ♥ আমরা এটি পেয়ে যাব:

body {
  font-size: 40pt;
  color: red;
}
@keyframes heartbeat {
  0% {
    font-size: .75em;
  }
  20% {
    font-size: 1em;
  }
  40% {
    font-size: .75em;
  }
  60% {
    font-size: 1em;
  }
  80% {
    font-size: .75em;
  }
  100% {
    font-size: .75em;
  }
}
div {
  animation: heartbeat 1s infinite;
}
<div>
  &hearts;
</div>


6

body{
  margin: 0;
  padding: 0;
  background: #1f1f1f;
}

body:before
{
  position: absolute;
  content: '';
  left: 50%;
  width: 50%;
  height: 100%;
  background: rgba(0,0,0,.2);

}

.center
{
  position: absolute;
  top:50%;
  left: 50%;
  background: #1f1f1f;
  transform: translate(-50%,-50%);
  padding: 100px;
  border: 5px solid white;
  border-radius: 100%;
  box-shadow:20px 20px 45px rgba(0,0,0,.4);
  z-index: 1;
  overflow: hidden;
}
.heart
{
  position: relative;
  width: 100px;
  height: 100px;
  background:#ff0036;
  transform: rotate(45deg) translate(10px,10px);
  animation: ani 1s linear infinite;
}
.heart:before
{
  content: '';
  width: 100%;
  height: 100%;
  background: #ff0036;
  position: absolute;
  top:-50%;
  left:0;
  border-radius: 50%;
}
.heart:after
{
  content:'';
  width: 100%;
  height: 100%;
  background: #ff0036;
  position: absolute;
  bottom:0;
  right:50%;
  border-radius: 50%;
}
.center:before
{
  content: '';
  position: absolute;
  top:0;
  left:-50%;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,.3);
}

@keyframes ani{
  0%{
    transform: rotate(45deg) translate(10px,10px) scale(1);
  }
  25%{
    transform: rotate(45deg) translate(10px,10px) scale(1);
  }
  30%{
    transform: rotate(45deg) translate(10px,10px) scale(1.4);
  }
  50%{
    transform: rotate(45deg) translate(10px,10px) scale(1.2);
  }
  70%{
    transform: rotate(45deg) translate(10px,10px) scale(1.4);
  }
  90%{
    transform: rotate(45deg) translate(10px,10px) scale(1);
  }
  100%{
    transform: rotate(45deg) translate(10px,10px) scale(1);
  }
}
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>HeartBeat Animation</title>
    <link rel="stylesheet" href="Style.css" type="text/css">
  </head>
  <body>
    <div class="center">
      <div class="heart">
        
      </div>
    </div>
  </body>
</html>

আউটপুট

আরও জন্য: হার্ট বিট অ্যানিমেশন


4

আমি মনে করি আপনি নিজের ইমেজ অ্যানিমেশনের জন্য এটিই চান। শীর্ষ চিত্রের প্রয়োজন নেই। শুধু নীচে ব্যবহার করুন।

#button{
  width:450px;
  height:450px;
  position:relative;
  top:48px;
  margin:0 auto;
  text-align:center;
  }
#heart img{
  position:absolute;
  left:0;
  right:0;
  margin:0 auto;
 }

 @keyframes heartFadeInOut {
  0%
  {    transform: scale( .5 );  }
  20%
  {    transform: scale( 1 );  }
  40%
  {    transform: scale( .5 );  }
  60%
  {    transform: scale( 1 );  }
  80%
  {    transform: scale( .5 );  }
  100%
  {    transform: scale( .5 );  }
}

#heart img.bottom { 
  animation-name: heartFadeInOut; 
  animation-iteration-count: infinite;
  animation-duration: 1.5s;
  animation-direction: alternate;

}
<div id="heart" >
  <img class="bottom" src="https://goo.gl/nN8Haf" width="100px">
</div>


9
আপনার হৃদয়ের ক্রোমে হালকা বাত আছে?

@ লেগোস্টোরমাট্রোপ্র তাই এটি কেবল আমারই নয়। ক্রোম কেন? কেন?
জ্যাকা

4
আমি নিশ্চিত নই, এটি কার্ডিয়াক সিম্ফাইসিস সাইনাস হতে পারে তবে আপনি আরও ভাল নির্ণয়ের জন্য সিএসএস বিশেষজ্ঞের সাথে পরীক্ষা করতে চান।

1

আমি যে প্রকল্পে কাজ করছি তার জন্য আমার এটি দরকার ছিল। আমি এটিকে যতটা সম্ভব বাস্তবসম্মত দেখানোর চেষ্টা করছিলাম এবং এটিই আমি সামনে এলাম।

@keyframes heartbeat {
    0% {
        transform: scale( .95 );
    }

    20% {
        transform: scale( .97 );
    }

    30% {
        transform: scale( .95 );
    }

    40% {
        transform: scale( 1 );
    }

    100% {
        transform: scale( .95 );
    }
}

animation: heartbeat 1s infinite;

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.