12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- // Additionally Task 10.3
- // Объявить функцию-конструктор User
- // Конструктор должен принимать аргументы, описывающие юзера
- var User = function ( name = "user",
- email = "user@sample.com",
- photo = User.getAvatar() ) {
- this.name = name
- this.email = email
- this.photoURL = photo
- this.info = ''
- }
- User.admin = {
- photoURL: "https://i.pinimg.com/originals/3d/47/4f/3d474f82ff71595e8081f9a120892ae8.gif",
- name: "admin"
- }
- User.getAvatar = function () {
- return this.avatars.shift ()
- }
- User.avatars = [
- "https://pngimage.net/wp-content/uploads/2018/05/avatar-png-5.png",
- "https://pngimg.com/uploads/avatar/avatar_PNG47.png",
- "https://cdn4.iconfinder.com/data/icons/user-avatar-flat-icons/512/User_Avatar-31-512.png",
- "http://icons.iconarchive.com/icons/hopstarter/face-avatars/256/Male-Face-L3-icon.png",
- "https://findicons.com/files/icons/1072/face_avatars/300/i05.png",
- "http://www.iconarchive.com/download/i51043/hopstarter/halloween-avatars/Gomez.ico",
- "http://icons.iconarchive.com/icons/hopstarter/halloween-avatars/256/Zombie-2-icon.png",
- "https://vignette.wikia.nocookie.net/yogscast/images/8/8a/Avatar_Turps_2015.jpg"
- ]
- User.prototype.messageBox = ( function () {
- var box = document.createElement ( 'div' )
- document.body.appendChild ( box )
- box.style = `
- position: fixed;
- bottom: 0;
- right: 0;
- width: 300px;
- height: 200px;
- overflow: auto;
- border: 1px solid gray;
- padding: 10px;
- background-color: #000;
- `
- box.picture = box.appendChild ( document.createElement ( 'img' ) )
- box.picture.style.width = "50px"
- box.name = box.appendChild ( document.createElement ( 'span' ) )
- box.name.style = "font-weight: bold; color: #9ab; padding-left:10px;"
- box.message = box.appendChild ( document.createElement ( 'textarea' ) )
- box.message.placeholder = "Сообщение"
- box.message.oninput = function ( event ) {
- event.target.parentNode.querySelector ( 'img' ).src = User.admin.photoURL
- event.target.parentNode.querySelector ( 'span' ).innerHTML = User.admin.name
- }
- box.message.style = "width: 100%; height: 100%;"
- return box
- })()
- User.prototype.write = function ( text ) {
- this.messageBox.picture.src = this.photoURL
- this.messageBox.name.innerHTML = this.name
- this.messageBox.message.value = text
- }
- User.prototype.read = function () {
- this.messageBox.picture.src = this.photoURL
- this.messageBox.name.innerHTML = this.name
- this.info = this.messageBox.message.value
- console.log ( `${this.name} прочитал сообщение:\n${this.info}` )
- this.messageBox.message.value = "OK"
- }
- var users = []
- users.push ( new User ( "Иван" ) )
- users.push ( new User ( 'Alex', "alex@gmail.com" ) )
- users.push ( new User ( 'Bob', "bob777@gmail.com" ) )
- users.push ( new User ( 'Dima', "dima888@gmail.com" ) )
- users.push ( new User ( 'Fima', "fima999@gmail.com" ) )
- var k = 1
- users.forEach (
- function ( user ) {
- setTimeout (
- function () {
- user.write ( `Hello, I'm ${user.name}` )
- }, 3000 * k++
- )
- } )
|