日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JS 简单实现公告消息自动逐条切换

發布時間:2025/3/21 javascript 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JS 简单实现公告消息自动逐条切换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JS實現公告消息滾動

因為要適配iOS前端,所以在想最簡實現一個靜態數據的抽獎滾動欄,研究時直接用了當前運行的ReactJS框架實現,于是昨天先打了個草稿。經測試在iPhone6S Plus A1699 Version 12.1.2上顯示正常。

import React from 'react'class ScrollMessagePage {componentDidMount() {//消息關鍵字數據const loanUserList = ['趙', '錢', '孫', '宋', '王', '徐', '丘', '駱', '高', '夏', '蔡', '田', '樊', '胡', '陳', '霍', '潘', '萬', '李', '洪', '莫', '王']const loanMoneyList = [10, 12, 8, 5, 8, 7, 6, 23, 18, 10, 2, 1]const loanSexList = ['先生', '先生', '先生', '女士', '女士']function getText() {const randomSex = loanSexList[parseInt(Math.random() * loanSexList.length)]const randomName = loanUserList[parseInt(Math.random() * loanUserList.length)]const randomMoney = loanMoneyList[parseInt(Math.random() * loanMoneyList.length)]return randomName + randomSex + '獲得' + randomMoney + '元紅包'}let messageList = []for (let i = 0; i < 3; i++) {messageList.push(getText())}let box = document.getElementById('scroll-message')box.style.height = '30px'box.style.overflow = 'hidden'function createElement(text) {let Text = document.createElement('div')Text.style.height = '30px'Text.style.transition = 'margin-top 1s'Text.innerText = textbox.appendChild(Text)}messageList.map(text => {createElement(text)})this.timer = setInterval(() => {createElement(getText())box.childNodes[1].style.marginTop = '-30px'box.removeChild(box.childNodes[0])}, 3000)}componentWillUnMount() {clearInterval(this.timer)}render() {return (<div className="match"><div id="scroll-message"/></div>)}}export default ScrollMessagePage

經過今天的測試發現,在第一次加載計時器的時候滾動條會將滾動數據第二條數據快速跳過,造成不好的用戶體驗,另外頻繁的操作DOM也會造成性能損耗,于是使用了文檔碎片對滾動條進行優化

let box = document.getElementById('scroll-message')let fragement = document.createDocumentFragment('div')let message = document.createElement('div')message.style.height = '30px'message.style.overflow = 'hidden'fragement.appendChild(message)function createElement(text, style, ele = message) {let Text = document.createElement('div')Text.style.height = '30px'Text.style.lineHeight = '30px'Text.style.transition = 'margin-top 1s'style && Object.keys(style).map(key => Text.style[key] = style[key])Text.innerText = textele.appendChild(Text)}let messageList = []for (let i = 0; i < 2; i++) {messageList.push(getText())}messageList.map((text, index) => createElement(text, index===0?{marginTop:'-30px'}:null))this.timer = setInterval(() => {createElement(getText())message.childNodes[1].style.marginTop = '-30px'message.removeChild(message.childNodes[0])}, 3000)box.appendChild(fragement)

【如何修復數據跳過BUG】此次更新修復了滾動條在第一次計時器運行時跳過第二條數據的問題,發生問題的原因是因為初始化公告欄數據的時候并未添加marginTop,在計時器執行之后第二條數據原本會替換第一條數據的位置,然而因為第一條數據被刪除所以跑到第一條數據位置上面,我通過直接將第二條數據初始化到第一條數據的位置解決了該問題。

【處理性能損耗】使用計時器頻繁對dom進行操作,會使整個頁面頻繁進行DOM渲染,解決性能損耗的問題我參考 createDocumentFragment();方法實現,將該公告欄DOM插入到該方法創建的文檔碎片,將子元素插入到文檔片段時不會引起頁面回流。

小結

初次向大家分享我的想法,有更好的實現方法可以評論留言,關于性能損耗的問題我認識有些不足,請大家多多指教。

總結

以上是生活随笔為你收集整理的JS 简单实现公告消息自动逐条切换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本在线不卡一区二区三区 | 国产亚洲精品久久久久久777 | 伊人成人在线 | 成人精品二区 | 久久精品免费网站 | 国产男女猛烈无遮挡免费观看网站 | 久久久一二三四 | 91美女免费看 | 日韩视频一区二区 | 国产乱妇乱子 | 国内一区二区 | 中文字幕一区二区三区乱码不卡 | 国产又黄又猛的视频 | 国产免费无码一区二区视频 | 国产精品一级片 | 国产免费色视频 | 成av在线| 欧美日韩一二三四区 | 亚洲男人网站 | 熟妇高潮喷沈阳45熟妇高潮喷 | 日本欧美中文字幕 | 蜜臀一区二区三区精品免费视频 | 日韩欧美在线一区 | 国产精品一区二区人人爽 | 亚洲熟女乱综合一区二区 | 成人亚洲一区二区 | 亚洲天堂导航 | 久久久久18 | 综合中文字幕 | 男人喷出精子视频 | 麻豆国产视频 | 谁有免费黄色网址 | 午夜激情视频 | 国产精品夜夜夜爽阿娇 | 视频在线| 亚洲男人av| 亚洲天天影视 | 久久精品10 | 美国少妇性做爰 | 亚洲欧美在线视频 | 国产主播一区二区三区 | 玉足女爽爽91 | 欧美性极品 | 久操精品视频 | 亚洲六月丁香色婷婷综合久久 | 国产古装艳史毛片hd | 日韩精品极品 | 亚洲色图制服丝袜 | 久久久久国产一区二区三区潘金莲 | 日韩精品中文字幕一区二区 | www成人| 日韩精品视频一区二区三区 | 午夜中出 | 东北少妇露脸无套对白 | 午夜不卡av| 亚洲精品一区二区三区影院忠贞 | 日本欧美在线观看 | 国产主播精品 | 伊人久久青青草 | 欧美成人免费高清视频 | 免费色网 | 婷婷网五月天 | 青青自拍视频 | 精品人妻无码一区 | 精品视频网站 | 欧美另类69 | 96精品视频在线观看 | 欧美一级爆毛片 | 视频在线免费观看 | 人人干人人澡 | 黄色一级视频免费观看 | 性感美女视频一二三 | 日本一区二区在线视频 | 欧美一区二区性久久久 | 美女被娇喘流出白 | 亚洲一区二区中文字幕 | 理论片av| 风流少妇一区二区三区91 | 在线观看av中文字幕 | 久草热在线观看 | 亚洲 精品 综合 精品 自拍 | 精品无码黑人又粗又大又长 | 免费国产黄色网址 | 琪琪色影音先锋 | 中文字幕xxx | 三级视频在线看 | 风韵多水的老熟妇 | 97成人在线视频 | 成人激情电影在线观看 | 在线看黄色av | 少妇一级淫免费播放 | 女人又爽又黄免费女仆 | 欧美一级片观看 | 日本特级黄色录像 | 国产精品成人在线 | 国产一区在线播放 | 成人做爰的视频 | 天天爱天天干天天操 | 美女av免费 |