原生JS物件導向式程式設計實現彈幕,利用觀察者模式

2021-10-10 17:13:21 字數 1928 閱讀 3828

直接上源**

html檔案

lang

="en"

>

>

charset

="utf-8"

>

name

="viewport"

content

="width=device-width, initial-scale=1.0"

>

>

documenttitle

>

>

input

button

.div0

style

>

head

>

>

class

="div0"

>

src=

"./test3.mp4"

controls

>

video

>

>

type

="text"

>

>

傳送button

>

div>

type

="module"

>

import barrage from

"./js/barrage.js"

;var input=document.

queryselector

("input");

var button=document.

queryselector

("button");

document.

addeventlistener

("keyup"

,keyhandler)

; button.

addeventlistener

("click"

,keyhandler)

;function

keyhandler

(e)return;}

script

>

body

>

html

>

js檔案1

export

default

class

manager

static

getinstance()

)}return manager._instance;

}add

(elem)

remove

(elem)

}update()

)}}

js檔案2

import manager from

"./manager.js"

;export

default

class

barrage

createelem

(text)

) div.textcontent=text;

return div;

}(parent));

this

.x=this

.rect.width;

// 獲取父元素寬度,控制彈幕的初始位置以及清除位置

this

.width=

this

.elem.offsetwidth;

// 獲取元素寬度

manager.instance.

add(

this);

// 將生成好的元素新增至單例manager中,並開啟定時器

}update()

}getrandomcolor

(a, r, g, b)

return col

}}

原生js彈幕實現範例

html lang en head meta charset utf 8 meta name generator content editplus meta name author content natural live meta name keywords content barrage met...

原生JS實現彈幕效果

純屬無聊寫的,可能有很多問題,歡迎批評指教。效果圖 圖一是預設的一些彈幕,圖二是自己發射的彈幕,效果是一樣的。demo位址 首先是彈幕的位置,是要從最右滑到最左,為了防止隨機高度彈幕會覆蓋的問題,設定了通道。每乙個通道是從左到右的一條,高度固定,這樣不同通道的彈幕不會相互覆蓋。彈幕滑動就是簡單設定c...

原生js物件導向實現簡單輪播

平時中我習慣用jquery寫輪播效果,實現過程不是很難,也很方便,為了加深對js物件導向的理解,我打算用物件導向實現乙個簡單的輪播,這裡採用了字面量的方式實現。為了實現這個過程,我們要自己動手封裝乙個運動函式animate,在這裡我採用的是勻速運動的方式,這種方式可能體驗不是很好,後面分析js 我在...