依据文本长度实现滚动文本动画

需求场景:Vue2实现一个文本滚动的效果,超出固定宽度就无限循环的滚动,时间随文本长度变化而变化

效果如下:

动画.gif

需要考虑的点:

  • 1.滚动的效果怎么做
  • 2.什么时候该滚动,什么时候不滚动
  • 3.长文本和短文本的滚动时间肯定不能一样,这个时间怎么定

刚接到需求,因为在此之前看过一篇博文,大致是前段时间在工位装摄像头的事件,掘金有篇敢在我工位装摄像头,吃我一记组合拳的文章,里面取巧用到了css原生的文本滚动效果,在电脑屏幕上滚动着老板看了兴奋不已的打工人激励文字,就想着应该还简单,没想到自己实现起来,却吃了大亏。

1.效果实现

这个刚开始肯定没头绪,先是一顿百度,找了个感觉靠谱的,一顿CV,发现不好使,然后不得不重头开始读他的想法,下面贴个我的代码吧。

大致就是给要滚动的元素的父级盒子 添加个overflow: hidden; ,然后给要滚动的元素添加上滚动动画,不换行,执行xx秒(animation: 10s linear infinite;),然后写个过渡动画,如果只有一个滚动的话,到这就完事了。

<div class="page-text-title">原告:</div>
<div class="scroll">
  <div class="scr
在WPF中,可以使用鼠标指向超长文本动画滚动的方式来提升用户体验。首先,我们可以创建一个超长的文本框,使其内容超出显示区域。然后,通过监测鼠标指向文本框的事件来触发滚动动画。 首先,在XAML中创建一个文本框,并指定其长度超出显示区域,例如设置为宽度为500px。然后,为文本框添加一个鼠标进入的事件处理程序。 ```xml <TextBlock Width="500" Text="超长文本内容" MouseEnter="ScrollTextBlock_MouseEnter" /> ``` 接下来,在C#代码中编写鼠标进入事件的处理程序。在事件处理程序中,我们可以使用WPF的动画功能来实现滚动效果。通过将文本框的Margin属性在一段时间内逐渐改变,从而实现动画滚动效果。 ```csharp private void ScrollTextBlock_MouseEnter(object sender, MouseEventArgs e) { DoubleAnimation animation = new DoubleAnimation(); animation.From = 0; animation.To = -textBlock.ActualWidth; animation.Duration = new Duration(TimeSpan.FromSeconds(5)); // 持续时间为5秒 textBlock.BeginAnimation(TextBlock.MarginProperty, new ThicknessAnimation { From = new Thickness(0), To = new Thickness(animation.To.Value, 0, 0, 0), Duration = animation.Duration }); } ``` 在上述示例代码中,我们创建了一个DoubleAnimation来改变滚动距离,从0到负的文本框宽度。然后,将这个动画应用到文本框的Margin属性上,通过改变Margin的Left值来实现滚动效果。 总结起来,以上就是使用WPF实现鼠标指向超长文本动画滚动的简单示例。通过这种方式,可以让用户在鼠标指向时自动滚动文本内容,提升用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值