react 原生實現(xiàn)頭像滾動播放的示例
本文介紹了react 原生實現(xiàn)頭像滾動播放的示例,分享給大家,具體如下:
之前需要的是下面這個效果
現(xiàn)在。。。
憋說話,先看看效果。
感覺很簡單呀,直接渲染,transform就可以了,嗯嗯,是的沒錯。
渲染出來,獲取元素,然后添加css,美中不足銜接不是很順暢,不過還是做出來了。
<div className="avatar-transform" ref={this.tmall}> {!!personAvatar.length && personAvatar.map((item, index) => { return <div className="avatar-wrap" key={index}> <div><img src={item.avatar} alt="" /></div> <div className="avatar-name">{item.nickname.substring(0, 2)}***已參與活動</div> </div> })} </div>
changeCss(){ if(this.index === 31){ this.tmall.current.style = `transform: translateY(${this.index * 4}rem);` this.getAvatar()//獲取數(shù)據 this.index = 0 return } this.tmall.current.style = `transform: translateY(-${this.index * 4}rem);transition: all 1s ease;` ++this.index setTimeout(()=>{ this.changeCss() },3000) }
但是問題還是來了
一次性返回幾百條數(shù)據,什么鬼,難道還直接渲染嗎,我的天,100多個,渲染出來,那酸爽,得了吧,全部渲染出來是不可能的了,這輩子都不可能全部渲染出來的了,看一下有沒什么方法沒有。
網上搜了一下,搜出來的是什么鬼,算了算了,還是得自己寫
思路:想了一下,可不可以,在后面添加一個節(jié)點,然后刪除最前面的節(jié)點
嗯?好像可以
還是原來的配方原來的味道
<div className="avatar-transform" ref={this.tmall}> {!!personAvatar.length && personAvatar.map((item, index) => { return <div className="avatar-wrap" key={index}> <div><img src={item.avatar} alt="" /></div> <div className="avatar-name">{item.nickname.substring(0, 2)}***已參與活動</div> </div> })} </div>
getAvatar(target = false) { //獲取數(shù)據 http.get('********').json(r => { if (r.error) { return Alert(r.msg); } //判斷一下,不是第一次請求 if (target) { this.listData = r.users this.changeCss() return } //裝起來 this.listData = r.users this.setState({ personAvatar: this.listData.splice(0, 5) //先來5個 }) //最開始是在下面的transform: translateY(7rem),所以得上來 this.tmall.current.style = `transform: translateY(0);transition: all 1s ease;` setTimeout(() => { this.changeCss() }, 3000) }); }
.avatar-transform { transform: translateY(7rem); }
changeCss() { let data = this.listData.shift() if (!data) { this.getAvatar(1) return } let div = document.createElement('div') div.className = "avatar-wrap" div.innerHTML = `<div><img src='${data.avatar}' alt="" /></div> <div class="avatar-name">${data.nickname.substring(0, 2)}***已參與活動</div>` this.tmall.current.style = `transform: translateY(-${4}rem);transition: all 1s ease;` this.tmall.current.appendChild(div) //添加節(jié)點 setTimeout(() => { this.tmall.current.style = `transform: translateY(0);` this.tmall.current.removeChild(this.tmall.current.childNodes[0]) //刪除第一個節(jié)點 }, 1000) setTimeout(() => { this.changeCss() }, 3000) }
到此這篇關于react 原生實現(xiàn)頭像滾動播放的示例的文章就介紹到這了,更多相關react 頭像滾動播放內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
React實現(xiàn)控制減少useContext導致非必要的渲染詳解
這篇文章主要介紹了React如何有效減少使用useContext導致的不必要渲染,使用useContext在改變一個數(shù)據時,是通過自己逐級查找對比改變的數(shù)據然后渲染,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-11-11詳解開發(fā)react應用最好用的腳手架 create-react-app
本篇文章主要介紹了詳解開發(fā)react應用最好用的腳手架 create-react-app,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04使用 React hooks 實現(xiàn)類所有生命周期
react 自 16.8 開始,引入了 Hooks 概念,使得函數(shù)組件中也可以擁有自己的狀態(tài),并且可以模擬對應的生命周期,這篇文章主要介紹了使用 React hooks 怎么實現(xiàn)類里面的所有生命周期,需要的朋友可以參考下2023-02-02React?TypeScript?應用中便捷使用Redux?Toolkit方法詳解
這篇文章主要為大家介紹了React?TypeScript?應用中便捷使用Redux?Toolkit方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11