Jquery 如何创建动画滚动箭头动画
我想做一个像这样的翻滚按钮 此按钮具有滚动效果。示例:如果在按钮上滚动,则文本应淡出,箭头应从左侧出现并创建。展开后,箭头移到右侧并淡出,文本再次淡入 示例:如果你去那个网站并按下按钮,你就会明白 我研究过他们的代码,CSS我能理解,但是有一个JS问题我不能理解 你能想出我怎样才能使它像这样的滚动效果吗 有类似的html代码Jquery 如何创建动画滚动箭头动画,jquery,html,css,animation,Jquery,Html,Css,Animation,我想做一个像这样的翻滚按钮 此按钮具有滚动效果。示例:如果在按钮上滚动,则文本应淡出,箭头应从左侧出现并创建。展开后,箭头移到右侧并淡出,文本再次淡入 示例:如果你去那个网站并按下按钮,你就会明白 我研究过他们的代码,CSS我能理解,但是有一个JS问题我不能理解 你能想出我怎样才能使它像这样的滚动效果吗 有类似的html代码 <a href="#" class="promo__button" data-module="modules/AnimatedArrowButton" data-c
<a href="#" class="promo__button" data-module="modules/AnimatedArrowButton" data-contact-button>Tell me more</a>
那里的数据属性模块/AnimatedArrowButton
实际上调用js并创建更多span
演示没有效果如果您想要一个简单的解决方案,我建议只使用css
转换
,除了使用javascript更改一个类以具有不同的淡入淡出动画
采取以下结构:
<a class="promo__button exit">
<span class="arrowleft">
<span>*the arrow that comes from the left*</span>
</span>
<span class="message">
<span>*the text*</span>
</span>
<span class="arrowleft">
<span>*the arrow that disappears to the right*</span>
</span>
</a>
现在添加.promo\uu按钮**{transition:left 0.2s,opacity,0.2s}
,用于所有从正常变为悬停的值
使用两个类隐藏不需要的箭头动画:
.promo__button.enter .arrowright {display:none}
.promo__button.exit .arrowleft {display:none}
并使用javascript在MouseCenter上切换进入/退出。我尽量减少额外的加价;唯一添加的是一个环绕文本的跨距。箭头是通过创建的。在我看来,它纯粹是装饰性的,如果是用其他元素构建的,就不会有语义
<a href="#" class="promo__button">
<span>Tell me more</span>
</a>
我尽我最大的努力保持代码的干净和注释。几个重要的方面:
。按钮:悬停span
指令<在标准声明中指定了“鼠标出时的代码>”。按钮span,这有点违反直觉,因此值得一提。毕竟没有:取消悬停
forwards
动画分配中的关键字表示动画将仅向前播放并在此处停止。这是关键。例如,当我们向右滑动文本并将其淡出时,我们希望文本保持在最后一个关键帧上。如果不向前,动画将跳回关键帧1如果你还有其他问题,请告诉我。这是一个有趣的小演示。您可以混合使用css和jQuery来实现这一效果(因为您用jQuery标记了您的问题)
var timeout=null;
var transitionEnd=真;
jQuery('.line').on(“mouseenter”,function(){
如果(!transitionEnd)
返回;
_this=jQuery(this);
_此.addClass(“隐藏文本”);
timeout=setTimeout(函数(){
_本文件为addClass(“in”);
}, 300);
transitionEnd=false;
}).on(“mouseleave”,函数(){
clearTimeout(超时);
jQuery(this).addClass(“out”).one(“transitionend”,function()){
transitionEnd=真;
jQuery(this.removeClass)(“在中隐藏文本”);
});
});代码>
.line{
背景色:红色;
边框:1px实心;
边界半径:5px;
颜色:白色;
光标:指针;
显示:块;
浮动:左;
字体大小:25px;
高度:70像素;
线高:70px;
利润率:30像素;
溢出:隐藏;
位置:相对位置;
文本对齐:居中;
宽度:200px;
}
.行::之后{
内容:“;
边框顶部:1px纯白;
位置:绝对位置;
最高:50%;
右:100%;
左-150%;
过渡:左0.5s,右0.3s;
不透明度:0;
}
.行::之前{
右边框:1px纯白;
边框顶部:1px纯白;
内容:“;
高度:10px;
位置:绝对位置;
右:20%;
顶部:计算值(50%-5px);
变换:旋转(45度)比例(0.2);
过渡:所有0.5秒到0秒;
宽度:10px;
不透明度:0;
}
.线路跨度,
.line.out span{
不透明度:1;
过渡:0.5s;
过渡延迟:0.1s;
}
.line.hide-text span{
不透明度:0;
}
.line.in::之后{
左:20%;
右:20%;
不透明度:1;
}
.line.in::之前{
变换:旋转(45度)比例(1);
不透明度:1;
}
.line.out::之前{
右图:-100%;
转换延迟:0s;
}
.line.out::之后{
左:100%;
右图:-150%;
过渡:左0.3s,右0.3s;
}
按钮文本
我肯定该按钮不需要javascript
以下是仅使用html和css的高级框架:
按钮{
背景色:红色;
边界:无;
填充:1rem;
溢出:隐藏;
位置:相对位置;
}
.阿罗{
可见性:隐藏;
不透明度:0;
位置:绝对位置;
转换:translateX(-30px);
过渡:0.4s;
}
按钮:悬停。箭头{
能见度:可见;
不透明度:1;
转换:translateX(0px);
}
.文本{
能见度:可见;
不透明度:1;
过渡:0.4s;
显示:内联块;
}
/*悬停时隐藏按钮*/
按钮:悬停。文本{
可见性:隐藏;
不透明度:0;
转换:translateX(30px);
}
-->
你好
我知道为时已晚,但可能会很有趣。我使用了大量使用的after和before伪类的css-only动画
正文{
字体系列:“Helvetica Neue”,无衬线;
背景:#f8f8;
}
.宣传片{
颜色:#fff;
文本对齐:居中;
}
.促销按钮{
边框:1px实心#fff;
显示:内联块;
位置:相对位置;
边缘顶部:1.5em;
字体大小:24px;
填充:20px 50px;
文字装饰:无;
文本转换:大写;
字号:700;
线高:1;
字母间距:.025em;
文本对齐:居中;
颜色:
<a href="#" class="promo__button">
<span>Tell me more</span>
</a>