溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

javascript實(shí)現(xiàn)彈幕墻效果

發(fā)布時(shí)間:2020-10-25 11:10:59 來(lái)源:腳本之家 閱讀:150 作者:Flora1108 欄目:web開(kāi)發(fā)

剛開(kāi)始入門(mén)前端,想仿照FreeCodeCamp中的一個(gè)項(xiàng)目制作簡(jiǎn)單的彈幕墻。

步驟如下:

1、編寫(xiě)HTML代碼:

創(chuàng)建一個(gè)彈幕顯示墻,以及兩個(gè)按鈕,分別為“發(fā)送”和“清屏”,并在文本框中設(shè)置placeholder為“說(shuō)點(diǎn)什么吧?”以提示用戶(hù)在此輸入彈幕信息。

<body>
    <div class="con">      
      <div id="screen">
        <div class="dm_show">
          <!-- <div>text message</div> -->
        </div>
      </div>
      <div class="edit">
        <p>
          <input placeholder="說(shuō)點(diǎn)什么吧?" class="content" type="text" />
        </p>
        <p>
          <input type="button" class="send" value="發(fā)送" />
          <input type="button" class="clear" value="清屏" />
        </p>
      </div>   
    </div>
  </body>

2、設(shè)置各標(biāo)簽的CSS樣式:

<style>
      .con {
        background-color: floralwhite;
        padding: 40px 80px 80px;
      }
      #screen {
        background-color: #fff;
        width: 100%;
        height: 380px;
        border: 1px solid rgb(229, 229, 229);
        font-size: 14px;
      }

      .content {
        border: 1px solid rgb(204, 204, 204);
        border-radius: 3px;
        width: 320px;
        height: 35px;
        font-size: 14px;
        margin-top: 30px;

      }

      .send {
        border: 1px solid rgb(230, 80, 30);
        color: rgb(230, 80, 0);
        border-radius: 3px;
        text-align: center;
        padding: 0;
        height: 35px;
        line-height: 35px;
        font-size: 14px;
        width: 159px;
        background-color: white;
      }

      .clear {
        border: 1px solid;
        color: darkgray;
        border-radius: 3px;
        text-align: center;
        padding: 0;
        height: 35px;
        line-height: 35px;
        font-size: 14px;
        width: 159px;
        background-color: white;
      }

      .edit {
        margin: 20px;
        text-align: center;
      }

      .text {
        position: absolute;
      }
      *{
        margin: 0;
        padding: 0;
      }

      .dm_show{
        margin: 30px;
      }
</style>

CSS代碼完成后效果如下:

完成后的效果如下:

javascript實(shí)現(xiàn)彈幕墻效果

3、編寫(xiě)JavaScript代碼,添加按鈕點(diǎn)擊事件

<script type="text/javascript" src="../jquery-easyui-1.3.5/jquery.min.js"></script>
<script>
      $(function() {
        //設(shè)置“發(fā)送”按鈕點(diǎn)擊事件,將彈幕體顯示在彈幕墻上
        $('.send').click(function() {
          //獲取文本輸入框的內(nèi)容
          var val = $('.content').val();
          //將文本框的內(nèi)容賦值給val后,將文本框的內(nèi)容清除,以便用戶(hù)下一次輸入
          $('.content').val('');
          //將文本框內(nèi)容用div包裹起來(lái),便于后續(xù)處理
          var $content = $('<div class="text">' + val + '</div>');
          //獲取彈幕墻對(duì)象
          $screen = $(document.getElementById("screen"));
          //設(shè)置彈幕體出現(xiàn)時(shí)的上邊距,為任意值
          var top = Math.random() * $screen.height()+40;
          //設(shè)置彈幕體的上邊距和左邊距
          $content.css({
            top: top + "px",
            left: 80
          });
          //將彈幕體添加到彈幕墻中
          $('.dm_show').append($content);
          //彈幕體從左端移動(dòng)到最右側(cè),時(shí)間為8秒,然后直接刪除該元素
          $content.animate({
            left: $screen.width()+80-$content.width()
          }, 8000, function() {
            $(this).remove();
          });
        });
        //設(shè)置“清屏”點(diǎn)擊事件,清除彈幕墻中的所有內(nèi)容
        $('.clear').click(function() {
          $('.dm_show').empty();
        });
      });
</script>

最終效果如下:

javascript實(shí)現(xiàn)彈幕墻效果

至此,一個(gè)簡(jiǎn)易的彈幕墻就完成了,因本人經(jīng)驗(yàn)有限,所以彈幕墻還比較粗糙,還請(qǐng)各位批評(píng)指正。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI