javascript - jQuery + CSS : Creating a pulsating heart

标签 javascript jquery html css

我使用纯 CSS 完成了简单的心脏。 它由两 block 组成,所以一 block 有白色 box-shadow,另一 block 有红色。

可在此处找到示例:JsFiddle (它有一个没有渐变的简化样式,所以它可能看起来不漂亮:)

那么,问题是:如何创建动画阴影?我所需要的只是让白色和红色的阴影脉动以产生心跳的效果。

我已经完成了一些类似的问题,但不幸的是,它们不起作用,只是因为在我的例子中我使用了 :after:before 伪类,不能通过 jQuery 操作。

最佳答案

我将它设置为无限,这样它就会不停地跳动(这是一件好事,所以心脏不会死,对吧?)但是你可以将它更改为 n 次数代替。此外,您可以明显地将 5 秒更改为更长或更短。如果您不希望框阴影变为 0,您可以随时将其更改为 10px 或其他值。

#b:before {
    animation: heartbeat 5s infinite;
}

@keyframes heartbeat {
    0% { box-shadow: 0 0 50px #fff; }
    25% { box-shadow: 0 0 0 #fff; }
    50% { box-shadow: 0 0 50px #fff; }
    75% { box-shadow: 0 0 0 #fff; }
    100% { box-shadow: 0 0 50px #fff; }
}

body {
    width:100%;
    margin:0;
    background: #000;
}
#b {
    position:relative;
    width:500px;
    height:90px;
    margin: 100px auto;
    font-size: 12px;
}
#b:before {
    position: absolute;
    content:"";
    left: 208px;
    top: 10px;
    width: 208px;
    height: 320px;
    background: red;
    border-radius: 200px 200px 0 0;
    box-shadow: 0 0 50px #fff;
    animation: heartbeat 5s infinite;
}
#b:before {
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
    -webkit-transform-origin: 0 100%;
    -moz-transform-origin: 0 100%;
    -ms-transform-origin: 0 100%;
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
}
#b:after {
    position:absolute;
    content:"BlaBla!";
    color: #fff;
    left:0;
    top:10px;
    width:208px;
    height:320px;
    background: red;
    border-radius:200px 200px 0 0;
    -webkit-transform:rotate(45deg);
    -moz-transform:rotate(45deg);
    -ms-transform:rotate(45deg);
    -o-transform:rotate(45deg);
    transform:rotate(45deg);
    -webkit-transform-origin:100% 100%;
    -moz-transform-origin:100% 100%;
    -ms-transform-origin:100% 100%;
    -o-transform-origin:100% 100%;
    transform-origin:100% 100%;
    box-shadow: 10px 10px 100px #6d0019;
}

@keyframes heartbeat {
    0% { box-shadow: 0 0 50px #fff; }
    25% { box-shadow: 0 0 0 #fff; }
    50% { box-shadow: 0 0 50px #fff; }
    75% { box-shadow: 0 0 0 #fff; }
    100% { box-shadow: 0 0 50px #fff; }
}
<div class="a">
    <div id="b"></div>
</div>

关于javascript - jQuery + CSS : Creating a pulsating heart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21766128/

相关文章:

javascript - 禁用输入框的编辑部分

html - 用css给SVG和DIV设置相同的背景色

javascript - Div 溢出,滚动只在那里工作,直到 div 被删除并触发该溢出 offsetheight div 的偏移量

带有可自定义拼写检查波浪线的 HTML 输入文本

javascript - 处理双击时的第二个 mousedown 事件

javascript - 聚合物 Selenium 测试访问子元素数据

javascript - jquery datepicker 和 asp.net c# 空值

javascript - 管道 'AsyncPipe' 的参数无效

javascript - Jquery/Ajax/CSS 在使用 Ajax 提交表单后显示/隐藏 div

javascript - 将按钮与 ui-modal 对话框的右上角重叠