vue自定义指令实现打字效果

实现如通义灵码官网关于代码片段中,当鼠标hover上代码上时,出现打字效果,示例地址:https://tongyi.aliyun.com/lingma?spm=5176.28508143.J_ahRFo5CaAe_asSOaCgS4J.14.5421154auHz4xJ&scm=20140722.M_185502201.P_131.MO_2276-ID_10360025-MID_10360025-CID_31292-ST_10352-V_1

通过vue2封装指令的方式实现:

import Vue from 'vue';

const typewrite = {
  bind(el, binding) {
    const typingSpeed = 50; // 打字速度,单位为毫秒
    let typingEffectActive = false;
    let originalText = el.textContent;
    el.textContent = originalText; // 初始化文本内容

    el.addEventListener('mouseenter', function() {
      if (!typingEffectActive){
        typingEffectActive = true;
        el.textContent = '';
        let i = 0;
        let typingEffect = setInterval(function() {
          if (i < originalText.length) {
            el.textContent += originalText.charAt(i);
            i++;
          } else {
            clearInterval(typingEffect); // 清除定时器
            typingEffectActive = false;
          }
        }, typingSpeed); // 设置速度,每100毫秒添加一个字符
      }
    });
  }
}

Vue.directive('typewrite',typewrite);

调用方式:

div v-typewrite class="app-con" style="width: 500px;text-align: left;">
      这里是默认显示的文字,鼠标悬停时将触发打字效果。
      这里是默认显示的文字,鼠标悬停时将触发打字效果。
      这里是默认显示的文字,鼠标悬停时将触发打字效果
    </div>
    <pre v-typewrite>
       var message="欢迎";
          for(var i=1;i<=10;i++)
          {
              alert(message);
          }
    </pre>

当然也可以使用第三方插件,例如:typed.js,参考地址:https://www.cnblogs.com/sexintercourse/p/18113289

+
(^_^)打赏作者喝个咖啡(^_^)
微信支付
支付宝支付
如果觉得文章写得不错或对您有用,请随意打赏。点击文章右下角“喜欢”二字,您的支持是我最大的鼓励
打赏支持
我要收藏
返回顶部
跳到底部
posted @   风雨后见彩虹  阅读(111)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2015-09-24 jQ效果:jQuery和css自定义video播放控件
2015-09-24 HTML5 audio与video标签实现视频播放,音频播放
点击右上角即可分享
微信分享提示