簡體   English   中英

typed.js在第二次嘗試中不起作用

[英]typed.js doesn't work for the second attempt

懸停div.logo的第一次嘗試成功完成,並且typed.js輸入了該句子。 之后,當再次在div.logo上懸停時,它將不起作用,也不會鍵入任何內容。

    <script type="text/javascript">
    $( ".logo" ).hover(function() {
        $(this).toggleClass("clicked");
        if ($('.logo').hasClass('clicked')){
              $(function(){
                $('.logo').css('background-position','-20vmin center');
                console.log("n");
                  $(".logo h3").typed({
                    strings: ["Phoenix ^250 Programming ^250 Team"],
                    typeSpeed: 75
                  });
              });
        }
        else{
            $('.logo').find( "h3" ).text("");
            $('.logo span').remove();
            $('.logo').css('background-position','center left+1.5vmin');
        }
    });
    </script>

如您在typed.js源代碼中看到的那樣 ,函數typed()將一些數據分配給目標元素,如果設置了此類數據,則拒絕運行:

var $this = $(this),
    data = $this.data('typed'), // <<<
    options = typeof option == 'object' && option;
if (!data) // <<<
    $this.data('typed', (data = new Typed(this, options)));

因此,您必須在兩次調用typed()之前取消設置它:

$('.logo h3')
    .data('typed', null) // <<<
    .typed({
        strings: ["Phoenix ^250 Programming ^250 Team"],
        typeSpeed: 75
    });

我注意到,Andrea的答案在您的情況下有效,當與具有多個元素的字符串數組一起使用時,會弄亂效果(使其參差不齊)。

如果有人遇到與我相同的問題,他們可能會做我所做的事情。

我使用了一個計數器來檢查typed.js是否第二次被調用,並在完成后重新添加.logo h3。

因此,我添加了一個包裝器。

<div class="wrapper">
<div class="logo"><h3></h3></div>
<div>

然后實施

 if(counter==1){
 $(".logo h3").typed({
        strings: stringArrayWithManyElements,
        typeSpeed: 75
      });
}
else{
    $('wrapper').html('');
    $(".logo h3")
    .typed({
        strings: stringArrayWithManyElements,
        typeSpeed: 75
      });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM