我期待获得的效果是用户第一次看到没有箭头的提示文本,然后文本缩小到0%宽度,您将只看到箭头。容器也应该只有足够的空间来填充其中的文本,只需填充一点点即可。不知道这是否足够清楚。因此,容器缩小了内容的大小,并且在一段时间之后内容从文本变为图像。CSS动画文本到图像
这是我的HTML下面。
<a href="javascript:void(0);" class="ScrollDownArrow">
<div class="Relative">
<div class="Hint">
<p>Skip to next section</p>
<img src="Assets/IMG/"INSERT ARROW IMG HERE".png" />
</div>
</div>
</a>
CSS
*{
padding:0;
margin:0;
}
.Hint
{
display: block;
height: 38px;
line-height: 34px;
text-align: center;
border:2px solid #f6473e;
border-radius: 20px;
-o-border-radius: 20px;
-moz-border-radius: 20px;
-wbkit-border-radius: 20px;
text-transform: uppercase;
color: #fff;
white-space: nowrap;
transition: width 0.8s ease 2.6s, margin 0.8s ease 2.6s , padding 0.8s ease 2.6s;
-o-transition: width 0.8s ease 2.6s, margin 0.8s ease 2.6s, padding 0.8s ease 2.6s;
-moz-transition: width 0.8s ease 2.6s, margin 0.8s ease 2.6s, padding 0.8s ease 2.6s;
-webkit-transition: width 0.8s ease 2.6s, margin 0.8s ease 2.6s, padding 0.8s ease 2.6s;
width:100%;
overflow:hidden;
position:relative;
margin:0;
padding: 0 20px;
}
.Hint.Show
{
}
.Hint.Show p
{
display:inline-block;
}
.Hint p
{
color:#000;
width:100%;
font-size: 0.8em;
display:none;
transition: width 0.8s ease 2.6s, opacity 0.8s ease 2s;
-o-transition: width 0.8s ease 2.6s, opacity 0.8s ease 2s;
-moz-transition: width 0.8s ease 2.6s, opacity 0.8s ease 2s;
-webkit-transition: width 0.8s ease 2.6s, opacity 0.8s ease 2s;
}
.Hint.Show img
{
display:none;
}
.Hint img
{
display:inline-block;
width:100%;
max-width:38px;
transition: width 0.8s ease 2.6s, opacity 0.8s ease 2s;
-o-transition: width 0.8s ease 2.6s, opacity 0.8s ease 2s;
-moz-transition: width 0.8s ease 2.6s, opacity 0.8s ease 2s;
-webkit-transition: width 0.8s ease 2.6s, opacity 0.8s ease 2s;
position:absolute;
top:-2px;
transform:translateX(-50%);
-o-transform:translateX(-50%);
-moz-transform:translateX(-50%);
-webkit-transform:translateX(-50%);
}
.ScrollDownArrow
{
display: block;
height: 38px;
width: auto;
position: absolute;
bottom: 10px;
left: 50%;
transform:translateX(-50%);
-o-transform:translateX(-50%);
-moz-transform:translateX(-50%);
-webkit-transform:translateX(-50%);
background-size: 100%;
z-index: 1000;
transition: bottom 0.8s ease 1.6s, width 0.8s ease 0s;
-o-transition: bottom 0.8s ease 1.6s, width 0.8s ease 0s;
-moz-transition: bottom 0.8s ease 1.6s, width 0.8s ease 0s;
-webkit-transition: bottom 0.8s ease 1.6s, width 0.8s ease 0s;
-webkit-backface-visibility: hidden;
}
JS
$(document).ready(function(){
$('.ScrollDownArrow').click(function(){
if ($(this).hasClass('Clicked')){
$(this).removeClass('Clicked');
$('.Hint').removeClass('Show');
}else{
$(this).addClass('Clicked');
$('.Hint').addClass('Show');
}
});
});
将是理想的,如果提示是由边框包围,整个容器的收缩以适应里面的文本和文本也可以变化在宽度,所以我不能使用固定的宽度。
这里有一个小提琴,我刚才做的非常接近我使用的代码http://jsfiddle.net/bfh55npj/3/问题是,宽度不是过渡,而是只是捕捉到它需要的宽度。
编辑:http://jsfiddle.net/bfh55npj/6/更新了小提琴的答案,我正在寻找的情况下,任何人都想要使用它。这种效果在反向时效果不佳,但我想只需要以某种方式工作,所以这很好,我已经考虑了相反的情况,并且它仅用于显示目的,因此您可以在不刷新的情况下再次执行动画。
到目前为止,你的最佳尝试是什么,到底是什么?你得到了多少,在哪里,如何*,失败了? – 2014-11-04 11:38:10
我刚刚添加了一个小提琴,所以你可以看到它看起来像什么,我面临的主要问题是提示内的提示,我相信需要定位绝对,以便他们无法获得他们需要的宽度。也许有办法解决这个问题? – 2014-11-04 11:48:49
谢谢,现在:您能否将相关代码添加到您的问题中,因此可以立即为那些可能想要尝试和帮助您的人员使用?此外,清楚地表达你想要发生什么事件以回应什么事件;假设我们对你的意图一无所知,因为,严肃地说,我们*不*,直到你告诉我们。 – 2014-11-04 11:52:09