首頁 > web前端 > 前端問答 > jquery打字特效停止回刪

jquery打字特效停止回刪

WBOY
發布: 2023-05-23 13:25:08
原創
650 人瀏覽過

隨著網路的普及,打字特效的應用越來越廣泛,jquery打字特效也成為了許多網站開發人員的首選。然而,在實現這種特效的過程中,細節問題常常會影響使用者體驗,例如打字特效的回刪問題。本文將介紹如何利用jquery打字特效停止回刪,提升使用者的瀏覽體驗。

jquery打字特效的實作可以使用現成的插件,如typed.js和jQuery.Typewriter等。這些插件都是基於jquery的,使用前需要先引入jquery庫檔案。以下以typed.js為例,簡單介紹如何實作jquery打字特效。

首先,需要在HTML頁面中引入jquery和typed.js的庫檔:

<script src="jquery.min.js"></script>
<script src="typed.min.js"></script>
登入後複製

接著,在HTML頁面中建立

元素,用來展示打字特效:

<div id="typewriter"></div>
登入後複製

然後,利用jquery選擇器選取該元素,並使用typed.js的初始化函數,配置打字特效。在初始化函數中可以設定打字速度、回刪速度、遊標樣式以及需要打出的文字等參數:

<script>
$(function(){
    $("#typewriter").typed({
        strings:["Hello world!","This is a jquery typewriter effect demo."],
        typeSpeed: 120,     //打字速度
        backSpeed: 50,      //回删速度
        cursorChar: "|",    //光标样式
        loop: true          //是否循环
    });
});
</script>
登入後複製

至此,一個簡單的jquery打字特效就實現了。然而,在使用者體驗方面,還有一個關鍵問題需要解決,那就是回刪。

一般來說,當打字特效打完一行文字後,遊標會暫停一段時間,然後開始回刪。但是,在回刪過程中,如果使用者進行了操作,例如點擊滑鼠或鍵盤輸入,打字特效會停止回刪,直到使用者停止操作後才繼續回刪,這樣就會影響使用者的瀏覽體驗。

為了解決這個問題,我們需要利用jquery綁定滑鼠事件和鍵盤事件,以及typed.js的API函數來實現停止回刪。

首先,我們需要定義一個變量,用於保存目前打字特效的狀態。在typed.js中,利用isRunning()函數可以判斷打字特效是否正在進行中。因此,我們可以在初始化函數中定義一個變量,並將其賦值為true,表示打字特效正在進行中:

$(function(){
    var isTyping = true;    //打字特效正在进行中
    $("#typewriter").typed({
        strings:["Hello world!","This is a jquery typewriter effect demo."],
        typeSpeed: 120,
        backSpeed: 50,
        cursorChar: "|",
        loop: true,
        onTypingPaused: function(){  //打字特效暂停事件
            isTyping = false;   //设置打字特效状态为暂停
        },
        onTypingResumed: function(){ //打字特效恢复事件
            isTyping = true;    //设置打字特效状态为恢复
        },
        onTypingStopped: function(){ //打字特效停止事件
            isTyping = false;   //设置打字特效状态为停止
        }
    });
});
登入後複製

在打字特效的回刪過程中,我們需要監聽使用者的滑鼠事件和鍵盤事件。當使用者進行操作時,需要停止回刪,並將打字特效的狀態設為暫停。當使用者停止操作後,需要恢復回刪,並將打字特效的狀態設為恢復。

利用jquery實作滑鼠事件和鍵盤事件的監聽,需要on()方法。我們可以在初始化函數中,在$(window)選擇器上綁定mousedown、mousemove、keydown和keypress事件,並在這些事件的處理函數中,透過isTyping變數來判斷打字特效是否正在進行中。如果打字特效正在進行中,則停止回刪,並將打字特效的狀態設為暫停。如果打字特效處於暫停狀態,則忽略滑鼠事件和鍵盤事件,直到使用者停止操作後才繼續回刪。

以下是實作程式碼:

$(function(){
    var isTyping = true;    //打字特效正在进行中
    $("#typewriter").typed({
        strings:["Hello world!","This is a jquery typewriter effect demo."],
        typeSpeed: 120,
        backSpeed: 50,
        cursorChar: "|",
        loop: true,
        onTypingPaused: function(){  //打字特效暂停事件
            isTyping = false;   //设置打字特效状态为暂停
        },
        onTypingResumed: function(){ //打字特效恢复事件
            isTyping = true;    //设置打字特效状态为恢复
        },
        onTypingStopped: function(){ //打字特效停止事件
            isTyping = false;   //设置打字特效状态为停止
        }
    });

    $(window).on("mousedown mousemove keydown keypress", function(event){
        //当打字特效正在进行中时
        if(isTyping){
            $("#typewriter").typed("toggle");    //停止回删
            isTyping = false;   //设置打字特效状态为暂停
        }
        //当打字特效处于暂停状态时
        else{
            isTyping = true;    //设置打字特效状态为恢复
            $("#typewriter").typed("backspace"); //恢复回删
            $("#typewriter").typed("toggle");    //继续回删
        }
    });
});
登入後複製

在上述程式碼中,我們利用了jquery的toggle()方法來實現打字特效的停止和恢復,backspace()方法來實現回刪,相比手動實現的方法,更加簡潔。

總結一下,利用jquery實現打字特效可以提高網站的展示效果和使用者體驗。在實作回刪的過程中,利用typed.js提供的API函數和判斷打字特效狀態的變量,以及jquery的滑鼠事件和鍵盤事件綁定方法,可以實現停止回刪,並保持良好的使用者體驗。

以上是jquery打字特效停止回刪的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板