如何在图像 CSS 上放置一个思想气泡
How to place a thought bubble on top of an image CSS
我有一个工作项目,需要从用户那里获取图像,并根据该图像在该图像上放置一个思想气泡或语音气泡。我必须考虑放置等等,但我首先想要一个工作版本。我正在使用jQuery面部识别库来显示图像,但我找不到有关如何在图像上获得气泡的任何信息。
这样的事情呢?
您可以将图像放置在border-radius
为 50% 且overflow: hidden
的<div>
中。这会将图像裁剪为圆形。
然后,使用 CSS 伪元素 :before
和 :after
,您可以创建两个思想气泡轨迹。
我还添加了一些动画来使气泡漂浮。
body {
text-align: center;
}
.bubble-inner {
overflow: hidden;
border-radius: 50%;
animation: float 2s ease-in-out infinite;
}
.bubble img {
display: block;
max-width: 100%;
}
.bubble {
position: relative;
display: inline-block;
}
.bubble:before,
.bubble:after {
content: '';
position: absolute;
background-color: rgba(255,255,255,0.5);
box-shadow: inset 0px 0px 2px 0px #000;
border-radius: 50%;
}
.bubble:after {
padding: 40px;
bottom: -40px;
left: 0;
animation: float 2s ease-in-out 0.2s infinite;
}
.bubble:before {
padding: 20px;
bottom: -60px;
left: -20px;
animation: float 2s ease-in-out 0.3 infinite;
}
@keyframes float {
0% {transform: translate(0,0) scale(1,1);}
50% {transform: translate(0px,10px) scale(1.05,1);}
100% {transform: translate(0,0) scale(1,1);}
}
<div class="bubble">
<div class="bubble-inner">
<img src="http://lorempixel.com/output/people-q-c-200-200-1.jpg" alt="Person" >
</div>
</div>
由于您的问题留下了非常广泛的答案,因此我将在这里为您提供最简单的方法:
-
从用户获取图像,假设:
- 您有自己的方式从用户那里获取图像,并且在此类实现中不需要帮助,但能够以类似于以下内容的方式在 HTML 中生成此图像:
- 不要有自己的获取图像的方式。在这种情况下,您需要任何类型的实现帮助;根据您的标签:javascript/jquery/css/html允许种类繁多,这意味着我可以提供一个非常简单的PHP替代方案:PHP 上传图片并显示在页面上
-
在图像上有一个气泡:再次非常广泛,但考虑到我们有可用的 CSS(以及作为标签的一部分),那么我可以轻松地向您推荐无数完成此操作的方法(包括这里已经提供的答案): 带有阴影的语音气泡。然后,您将使用纯CSS或Javascript,以便在图像成功加载到页面上后在图像上动态显示语音气泡。
.HTML:
<span class="bubble">Speech bubble with a shadow</span>
.CSS:
body {
background: #d6d6d6;
padding: 100px;
}
/* Speech bubble with a shadow */
.bubble {
background-color: #fff0a0;
background-image: -webkit-linear-gradient(top, hsla(0,0%,100%,.5), hsla(0,0%,100%,0));
background-image: -moz-linear-gradient(top, hsla(0,0%,100%,.5), hsla(0,0%,100%,0));
background-image: -ms-linear-gradient(top, hsla(0,0%,100%,.5), hsla(0,0%,100%,0));
background-image: -o-linear-gradient(top, hsla(0,0%,100%,.5), hsla(0,0%,100%,0));
background-image: linear-gradient(top, hsla(0,0%,100%,.5), hsla(0,0%,100%,0));
border-radius: 5px;
box-shadow: inset 0 1px 1px hsla(0,0%,100%,.5),
3px 3px 0 hsla(0,0%,0%,.1);
color: #333;
display: inline-block;
font: 16px/25px sans-serif;
padding: 15px 25px;
position: relative;
text-shadow: 0 1px 1px hsla(0,0%,100%,.5);
}
.bubble:after, .bubble:before {
border-bottom: 25px solid transparent;
border-right: 25px solid #fff0a0;
bottom: -25px;
content: '';
position: absolute;
right: 25px;
}
.bubble:before {
border-right: 25px solid hsla(0,0%,0%,.1);
bottom: -28px;
right: 22px;
}
- 担心什么:自定义工作,在那个时间点你应该回来提出更多问题(请编写代码)。
无论您希望使其工作多么整洁,除非我们从您那里看到更多代码,否则您都不会从任何人那里得到直接而准确的答案。除此之外,我相信从简单开始并从那里开始工作会带你很长的路......祝你好运!
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- jQuery:循环一个具有不同超时值的循环
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 从javascript创建一个列表
- 节点导出返回一个空对象
- 使用clickToggle并在单击另一个元素时关闭元素
- 我可以在json对象中添加一个函数吗
- 使用javascript将动态表从一个html页面打印到另一个html页
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 表追加而不附加最后一个元素
- 我如何找到一个句子中的所有空格并替换忽略它们
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 使用类从一个标记中双击事件
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何用angular.js在jqplot中创建一个气泡图
- 高图:改变一个系列中气泡的颜色
- 如何在HERE Maps Javascript API中创建一个可拖动的信息气泡
- 如何在图像 CSS 上放置一个思想气泡
- 如何把一个onclick上的气泡创建的javascript