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

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

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

瀏覽:30日期: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久久,三上悠亚国产精品一区二区三区
国产精品亲子伦av一区二区三区| 日本在线高清| 亚洲福利久久| 免费污视频在线一区| 日本少妇一区| 91精品国产调教在线观看| 亚洲www啪成人一区二区| 亚洲va中文在线播放免费| 九九精品调教| 日韩不卡免费高清视频| 激情综合激情| 免播放器亚洲一区| 中文字幕日韩亚洲| 欧美精品三级在线| 麻豆精品视频在线观看免费| 美女视频免费精品| 88xx成人免费观看视频库| 国产综合激情| 亚洲精品自拍| 美女视频黄久久| 人人精品亚洲| 视频在线观看一区二区三区| 日本成人在线网站| 久久99蜜桃| 日本一区二区免费高清| 久久免费国产| 一区二区三区四区精品视频| 国产欧美一区二区精品久久久 | 国产精品国产三级国产在线观看| 97国产成人高清在线观看| 欧美亚洲精品在线| 一区二区91| 国产福利一区二区精品秒拍| av资源中文在线| 亚洲高清影视| 亚洲18在线| 亚洲精品黄色| 久久国产精品美女| 久久中文字幕二区| 日韩综合一区二区三区| 日韩av专区| 欧美日韩水蜜桃| 日本91福利区| 久久久精品午夜少妇| 亚洲字幕久久| 日本高清不卡一区二区三区视频| 手机精品视频在线观看| 精品一区二区三区视频在线播放| 九一成人免费视频| 青青草91久久久久久久久| 国产传媒av在线| 老牛国产精品一区的观看方式| 欧美日韩中出| 欧美日韩国产高清| 精品伊人久久| 国产精品普通话对白| 免费日韩成人| 野花国产精品入口| 狠狠久久伊人中文字幕| 蜜臀久久99精品久久久久久9| 国产精品最新| 91久久中文| 高清一区二区| 亚洲精品欧美| 日韩在线短视频| 日韩精品福利一区二区三区| 91综合网人人| 日韩 欧美一区二区三区| 国产资源在线观看入口av| 亚洲午夜国产成人| 日韩免费视频| 国产精品任我爽爆在线播放 | 热久久免费视频| 色网在线免费观看| 欧美色综合网| 中文日韩在线| 91日韩欧美| 国产情侣久久| 亚洲伊人精品酒店| 亚洲福利一区| 国产在线一区不卡| 青草国产精品久久久久久| 日韩午夜av| 日韩伦理福利| 久久99久久人婷婷精品综合| 中文字幕一区二区三区四区久久 | 四虎国产精品免费观看| 日韩欧美中文字幕一区二区三区| 久久精品99久久无色码中文字幕| 免费一区二区三区在线视频| 日精品一区二区三区| 久久国产精品毛片| 久久在线电影| 国产精品国产三级国产在线观看| 国产日韩欧美三区| 亚洲日本欧美| 欧美特黄一级| 激情五月色综合国产精品| 国产不卡人人| 国产中文欧美日韩在线 | 久久国产婷婷国产香蕉| 免费在线观看不卡| 欧洲毛片在线视频免费观看| 四虎8848精品成人免费网站| 国产精品久久久久久久久久妞妞 | 美女av一区| 国产午夜久久av| 国产日韩欧美一区二区三区| 日韩超碰人人爽人人做人人添| 中文字幕一区二区三区四区久久| 女人天堂亚洲aⅴ在线观看| 欧美不卡高清一区二区三区| 日本激情一区| 在线一区av| 国产成人精品亚洲日本在线观看| 免费观看亚洲| 人在线成免费视频| 91欧美日韩| 中文字幕色婷婷在线视频| 成人在线免费观看网站| 高清av一区| 欧洲av不卡| 欧美亚洲国产激情| 五月天久久777| 午夜宅男久久久| 久久福利影视| 亚洲精品一二三**| 欧美精品观看| 精品久久国产一区| 国产在线视频欧美一区| 国产99在线| 亚洲福利久久| 石原莉奈在线亚洲二区| 亚洲毛片视频| 国产精品久一| 成人一二三区| 久久一级电影| 首页国产欧美久久| 日本欧美在线| 国产一区二区三区亚洲综合| 91亚洲国产高清| 国产在线不卡| 蜜臀久久99精品久久久久宅男| 视频精品一区| 国产精品一线天粉嫩av| 国产成人精品福利| 激情视频一区二区三区| 老司机久久99久久精品播放免费| 日本亚洲三级在线| 国产一级成人av| 国产不卡人人| 国产精品日本欧美一区二区三区| 日本国产亚洲| 久久精品福利| 久久在线视频免费观看| 99国产精品视频免费观看一公开 | 亚洲天堂久久| 亚洲精品欧美| 麻豆精品久久久| 91精品久久久久久久久久不卡| 欧美一级专区| 国产精品久久免费视频| 日韩久久电影| 亚洲欧美专区| 精品深夜福利视频| 1000部精品久久久久久久久| 亚洲97av| 国产一区二区三区网| 国产亚洲精品久久久久婷婷瑜伽| 日韩高清国产一区在线| 成人精品久久| 久久福利一区| 激情综合婷婷| 首页国产欧美久久| 久久精品一区二区三区中文字幕| 久久五月天小说| 欧美一区二区三区免费看| 欧美国产美女| 亚洲综合婷婷| 国产精品久久久久蜜臀| 中文不卡在线| 国产在线看片免费视频在线观看| 9色国产精品| 久久成人高清| 国产婷婷精品| 国产精品99视频| 亚洲精品极品| 999精品一区| 国产日韩视频在线| 日韩午夜黄色| 亚洲最新无码中文字幕久久| 亚洲aa在线| 久久国产小视频| 欧美偷窥清纯综合图区| 欧美一级精品| 国产精品久久久免费| 99在线精品视频在线观看 | 国产亚洲一区二区三区啪| 免费欧美一区| 电影91久久久|