2017-04-11 66 views
0

我试图在导航栏中设置动画标题。就像一个在这个网站:导航栏中的动画标题

http://www.danielspatzek.com/Home

我试过被动画孔字,但它不是我在寻找:

<a>Contact</a> 
a { 
letter-spacing: 1px; 
    transition: all .1s ease-in; 
} 
a:hover { 
letter-spacing: 0.2em; 
} 

我知道,我应该使用动画信通过信件,但我怎么能让他们摊开?

谢谢

+0

安置自己的努力 –

+2

请发表您的代码在这里,我们可以看到你已经尝试过什么。 – freginold

+0

已更新。谢谢! – MuaathAli

回答

1

你可以解决它像这样

var spread = document.getElementsByClassName('spread'); 
 
[].forEach.call(spread, function(el) { 
 
    // replace the content width divs 
 
    el.innerHTML = '<span>' + el.innerText.split('').join('</span><span>') + '</span>' 
 
    // custom :hover 
 
    el.onmouseenter = function(e) { 
 
    var childern = e.target.childNodes 
 
    var width = e.target.offsetWidth/childern.length 
 
    for (var i = 0, child; child = childern[i]; i++) child.style.minWidth = width + 'px' 
 
    } 
 
    // remove custom style again 
 
    el.onmouseleave = function(e) { 
 
    var childern = e.target.childNodes 
 
    for (var i = 0, child; child = childern[i]; i++) child.style.minWidth = '0' 
 
    } 
 
})
.spread { 
 
    text-align:center; 
 
} 
 
.spread span { 
 
    display: inline-block; 
 
    transition: all .5s ease; 
 
    text-align:center; 
 
    min-width: 0; 
 
}
<h1 class="spread"> 
 
    Title 
 
</h1>

+0

完美的作品!谢谢! – MuaathAli

3

上给例如动画已经由著名动画库Greensock实现。

如果您确实想要制作这类动画,请使用TimelineliteTweenmax类让您的手变得有点脏。

+0

会看看那个!谢谢! – MuaathAli