日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

react中使用better-scroll滾動插件的實現示例

瀏覽:35日期:2022-06-13 08:12:52

在react中使用better-scroll滾動插件最近公司使用react項目中有一些滾動的效果需要有一些插件來支持,比如iScroll,或者react-scroll,最后還是選擇了better-scroll文檔比較友好。

進入正題:首先當然是npm安裝啦

npm install better-scroll --save

安裝完成后開始使用首先在要用到的組件引入better-scroll

import BScroll from 'better-scroll'

準備工作完成首先在render里寫下官方定義的DOM

<div class='wrapper'> <ul class='content'> <li>...</li> <li>...</li> ... </ul> <!-- 這里可以放一些其它的 DOM,但不會影響滾動 --></div>

在生命周期里進行初始實例化

componentDidMount() { const wrapper = document.querySelector('.wrapper') //選中DOM中定義的 .wrapper 進行初始化 const scroll = new BScroll(wrapper, { scrollX: true, //開啟橫向滾動 click: true, // better-scroll 默認會阻止瀏覽器的原生 click 事件 scrollY: false, //關閉豎向滾動 }) }

切記不可以在render里進行實例化因為在第一次觸發render的時候DOM還未生成所以需要在componentDidMount里進行。滾動原理

很多人已經用過 better-scroll,但是最多的問題是:

better-scroll 初始化了, 但是沒法滾動。

不能滾動是現象,我們得搞清楚這其中的根本原因。在這之前,我們先來看一下瀏覽器的滾動原理: 瀏覽器的滾動條大家都會遇到,當頁面內容的高度超過視口高度的時候,會出現縱向滾動條;當頁面內容的寬度超過視口寬度的時候,會出現橫向滾動條。也就是當我們的視口展示不下內容的時候,會通過滾動條的方式讓用戶滾動屏幕看到剩余的內容。

better-scroll 也是一樣的原理,我們可以用一張圖更直觀的感受一下:

布局

綠色部分為 wrapper,也就是父容器,它會有固定的高度。黃色部分為 content,它是父容器的第一個子元素,它的高度會隨著內容的大小而撐高。那么,當 content 的高度不超過父容器的高度,是不能滾動的,而它一旦超過了父容器的高度,我們就可以滾動內容區了,這就是 better-scroll 的滾動原理。

完成后就開始css以及style了

<div className='wrapper'> <ul className='content' style={{ width: `${210 * _flattenDeep(list).length}px` }}> { _map(_flattenDeep(list), (v, i) => { return (<li className='scroll_prod' key={i}> <img src={v.img} /> <div>{v.product}</div></li> ) }) } </ul></div>

這里實例是橫行滾動因為看到關于解決better-scroll橫向滾動的問題的帖子較荒。首先需要給wrapper設置css

.wrapper{ width: 100%; white-space: nowrap; //讓子元素超出不換行 padding: 25px 13px; overflow: hidden; }

content元素需要設置動態的width,可以去估算出每個元素的寬度

<ul className='content' style={{ width: `${210 * _flattenDeep(list).length}px` }} ></ul>

在這里我根據數組元素的length來置換ul的總寬度然后就可以滾動啦!當然要是需要豎向滾動需要設置在初始化時

componentDidMount() { const wrapper = document.querySelector('.wrapper') //選中DOM中定義的 .wrapper 進行初始化 const scroll = new BScroll(wrapper, { click: true, // better-scroll 默認會阻止瀏覽器的原生 click 事件 scrollY: true, //關閉豎向滾動 }) }

開啟scrollY配置。

結言:當然better-scroll不只是這兩個API官網有很多更好用的API可以根據官網操作(http://ustbhuangyi.github.io/better-scroll/doc/zh-hans/)如果要操作實例上面的方法的話固然在componentDidMount函數里是訪問不到已經實例化的BScroll的,所以我們可以將實例掛載到state中。

import BScroll from 'better-scroll'class Commodity extends Component { constructor(props) { super(props) this.state = { Bscroll: '', } } componentDidMount() { const wrapper = document.querySelector('.wrapper') const scroll = new BScroll(wrapper, { scrollX: true, click: true, scrollY: false, }) this.setState({ Bscroll: scroll, }) } render() { const { Bscroll } = this.state render(){return(<><div className='wrapper'> <ul className='content' style={{ width: `${210 * _flattenDeep(list).length}px` }}> { _map(_flattenDeep(list), (v, i) => { return (<li className='scroll_prod' key={i}> <img src={v.img} /> <div>{v.product}</div> <a className='buy'>立即購買</a></li> ) }) } </ul></div></>)}

到此這篇關于react中使用better-scroll滾動插件的實現示例的文章就介紹到這了,更多相關react better-scroll滾動內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: JavaScript
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久精品九色| 欧美激情视频一区二区三区免费| 视频在线不卡免费观看| 欧美日本精品| 国产精品亚洲片在线播放| 欧美日韩一区二区国产| 日本午夜精品| 日韩毛片一区| 国产精品一区二区精品视频观看| 欧美日韩18| 麻豆精品av| 久久uomeier| 欧美一级精品| 91精品蜜臀一区二区三区在线 | 欧美黄页在线免费观看| 国产一区二区三区四区| 欧美成人a交片免费看| 亚洲成av在线| 在线视频日韩| 日韩av不卡在线观看| 乱一区二区av| 香蕉久久精品| 亚洲久草在线| 欧美专区一区| 久久av国产紧身裤| 婷婷激情一区| 中文无码久久精品| 国产亚洲观看| 亚洲四虎影院| 每日更新成人在线视频| 91伊人久久| 在线手机中文字幕| 在线亚洲成人| 久久亚州av| 狠狠爱www人成狠狠爱综合网| 一级欧美视频| 国产一区二区视频在线看| 免费黄色成人| 日本国产亚洲| 日本一区二区高清不卡| 成人久久一区| 91精品尤物| 精品黄色一级片| 欧美日韩一二三四| 亚洲欧美日韩一区在线观看| 日本一区中文字幕| 日本一二区不卡| 在线亚洲观看| 国产精品久久久久久av公交车| 国产高清不卡| 亚洲ww精品| 狠狠躁少妇一区二区三区| 亚洲欧洲一区二区天堂久久| 亚洲人成高清| 国产一区二区精品福利地址| 在线视频精品| 久久精品福利| 免播放器亚洲| 精品日韩一区| 噜噜噜躁狠狠躁狠狠精品视频| 久久不见久久见中文字幕免费| 婷婷中文字幕一区| 麻豆国产精品一区二区三区| 国产欧美69| 国产aⅴ精品一区二区四区| 亚洲激精日韩激精欧美精品| 91精品国产经典在线观看| 韩国精品主播一区二区在线观看| 老鸭窝毛片一区二区三区| 国产在线观看91一区二区三区| 免费日韩一区二区| 精品72久久久久中文字幕| 蜜桃av一区| 国产网站在线| 国产视频一区二区在线播放| 欧美特黄a级高清免费大片a级| 久久一区亚洲| 日韩欧美美女在线观看| 国产综合激情| 国产成人久久精品一区二区三区| 一二三区精品| 欧美va天堂| av中文字幕在线观看第一页| 日韩av网站在线免费观看| 久久影视一区| 久久久久久婷| 国产精品夜夜夜| 亚洲va久久| 黄色精品网站| 日韩电影二区| 麻豆视频观看网址久久| 日韩欧美中文字幕在线视频| 日韩亚洲精品在线| 久久国产日本精品| 久久男人av资源站| 精品五月天堂| 国产精品视频一区视频二区| 亚洲精品成a人ⅴ香蕉片| 亚洲免费成人| 久久久蜜桃一区二区人| 成人一二三区| 精品一区二区三区在线观看视频 | 久久男人av| 欧美日韩伊人| 日本综合视频| 国产精品一卡| 亚洲欧美综合| 久久婷婷激情| 国产精品成人a在线观看| 亚洲精品网址| 久久久一本精品| 日本不良网站在线观看| 国产精品二区不卡| 久久精品国产亚洲aⅴ| 欧美a在线观看| 国产精品亚洲综合色区韩国| 欧美日韩中文| 欧美日韩亚洲一区三区| 日韩福利视频网| 日本不卡一区二区三区| 亚洲+小说+欧美+激情+另类| 亚洲精品系列| 日韩av在线免费观看不卡| 亚洲精品影视| 91精品日本| 奇米777国产一区国产二区| 日本久久一区| 欧美在线看片| 国产精品mm| 欧美国产免费| 色爱综合网欧美| 精品国模一区二区三区| 久久国产中文字幕| 五月天激情综合网| 老司机精品久久| 亚洲精品影院在线观看| 日本国产欧美| 麻豆精品蜜桃视频网站| 国产高潮在线| 在线日韩一区| 国产精品片aa在线观看| 日本伊人久久| 免费亚洲婷婷| 午夜国产欧美理论在线播放| 性欧美长视频| 欧美影院精品| 国产成人久久| 蜜臀av免费一区二区三区| 久热re这里精品视频在线6| 日韩精品1区2区3区| 久久av综合| 亚洲婷婷免费| 天海翼亚洲一区二区三区| 国产精品v亚洲精品v日韩精品| 丰满少妇一区| 午夜久久99| 日韩综合小视频| 久久99国产精品视频| 久久久人人人| 亚洲精品大全| 久久精品国产99国产| 91精品国产乱码久久久久久久| 香蕉久久久久久久av网站| 91av一区| 久久婷婷一区| 亚洲精品系列| 国产乱码午夜在线视频| 99视频精品| 国产精品一页| 99热精品久久| 日本aⅴ免费视频一区二区三区| 国产精品久久久一区二区| 欧洲一级精品| 日韩精品久久理论片| 不卡福利视频| 中文字幕亚洲在线观看| 午夜精品影院| 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 日韩天堂av| 欧美日一区二区在线观看| 日韩欧美精品一区| 亚洲三级精品| 91一区二区三区四区| 激情久久中文字幕| 日韩精品免费一区二区夜夜嗨 | 爽好多水快深点欧美视频| 国产精品日韩精品在线播放 | 999精品色在线播放| 日韩精品久久久久久| 日韩毛片在线| 国产丝袜一区| 99国产精品99久久久久久粉嫩| 国产精品香蕉| 亚洲综合另类| 欧美aaaaaa午夜精品| 99国产精品视频免费观看一公开| 国产精品22p| 视频精品一区二区| www.com.cn成人| 国产乱子精品一区二区在线观看|