有谁知道如何进行 css 转换?
does anyone know how to do this css transition?
我正在绞尽脑汁想弄清楚如何使用 css 过渡或动画制作此网站的导航栏:http://tabu.realitatea.net/ .
有人知道怎么做吗?甚至给我一个起点?
做起来很有趣,看看吧。 https://jsfiddle.net/6brsm2zt/
JS
var slider = $('#slider');
$('div').on('mouseenter','a',function(){
var box = $(this);
var p = box.position();
slider.animate({
width: box.outerWidth(),
left: p.left,
},250);
})
$('div').on('mouseleave','a',function(){
slider.stop();
})
$('div').on('mouseleave',function(){
$('#slider').animate({
width: 0,
left: 0,
},200);
})
基本思路是在左边有一个零宽度 div,我们称它为滑块。当您将鼠标悬停在某个项目上时,您将滑块的宽度和左侧位置设置为等于该项目的宽度和左侧位置。动画持续时间很短,大约三分之一秒,给人一种反应灵敏的感觉。
当您将鼠标完全移出栏时,只需将滑块的宽度和左侧位置设置为 0,持续时间较短,比如 200 毫秒,它就会缩小到一侧。
一个棘手的部分是来回挥动鼠标。最初,div 会为每个项目播放过渡,让我等待滑块最终来到我的鼠标。我通过在鼠标离开某个项目时取消动画来解决这个问题。由于项目之间的鼠标事件顺序是 mouseenter -> mouseleave -> mouseenter,我已经准备好了 mouseenter 的过渡。现在滑块将无情地追逐你的鼠标 :D.
我正在绞尽脑汁想弄清楚如何使用 css 过渡或动画制作此网站的导航栏:http://tabu.realitatea.net/ .
有人知道怎么做吗?甚至给我一个起点?
做起来很有趣,看看吧。 https://jsfiddle.net/6brsm2zt/
JS
var slider = $('#slider');
$('div').on('mouseenter','a',function(){
var box = $(this);
var p = box.position();
slider.animate({
width: box.outerWidth(),
left: p.left,
},250);
})
$('div').on('mouseleave','a',function(){
slider.stop();
})
$('div').on('mouseleave',function(){
$('#slider').animate({
width: 0,
left: 0,
},200);
})
基本思路是在左边有一个零宽度 div,我们称它为滑块。当您将鼠标悬停在某个项目上时,您将滑块的宽度和左侧位置设置为等于该项目的宽度和左侧位置。动画持续时间很短,大约三分之一秒,给人一种反应灵敏的感觉。
当您将鼠标完全移出栏时,只需将滑块的宽度和左侧位置设置为 0,持续时间较短,比如 200 毫秒,它就会缩小到一侧。
一个棘手的部分是来回挥动鼠标。最初,div 会为每个项目播放过渡,让我等待滑块最终来到我的鼠标。我通过在鼠标离开某个项目时取消动画来解决这个问题。由于项目之间的鼠标事件顺序是 mouseenter -> mouseleave -> mouseenter,我已经准备好了 mouseenter 的过渡。现在滑块将无情地追逐你的鼠标 :D.