swiper移入暫停_react中swiper注意事項及鼠標劃入停止輪播

首先是實例化swiper

這里有一個注意點,就是實例化的時機

如果你的swiper內容是寫死的,可以在componentDidMount中實例化,但是如果你的內容是通過接口異步請求過來的,就必須在componentDidUpdate里實例化,因為如果在 componentDidMount 中實例化,異步請求過來的內容可能還沒有掛載完就實例化就會出現問題

componentDidUpdate(){

this.initialBannerSwiper()

}

這里還用到了一個知識點,就是單例模式,因為componentDidMount會多次執行,所以使用單例模式避免生成多個實例

initialBannerSwiper =()=>{

if(this.bannerSwiper){

return this.bannerSwiper //單例模式

}

this.bannerSwiper = new Swiper('#swiper-banner', {

slidesPerView: 1, //設置slider容器能夠同時顯示的slides數量(carousel模式) 默認值為1。

observer: true, //當改變swiper的樣式(例如隱藏/顯示)或者修改swiper的子元素時,自動初始化swiper。

observeParents: true, //將observe應用于Swiper的父元素。當Swiper的父元素變化時,例如window.resize,Swiper更新。

shortSwipes: false, // 這個屬性后面會說

slideToClickedSlide: false, //設置為true則點擊slide會過渡到這個slide。

loop: true, //開啟循環

autoplay: true, //設置為true啟動自動切換,并使用默認的切換設置。

pagination: {

clickable: true, //此參數設置為true時,點擊分頁器的指示點分頁器會控制Swiper切換。

el: '#swiper-pagination-banner',

}

})

this.hoverStop()

}

鼠標劃入停止輪播

swiper居然沒有這個api來控制,好吧 只能自己來用js來控制了

bannerSwiper.$el

swiper的container的Dom7/jQuery對象

Swiper4自帶有DOM7庫,因此無需另外加載Jquery等庫即可對Dom7對象使用以下常用的DOM操作

this.bannerSwiper.$el[0]就可以拿到 實例的container的dom節點

hoverStop = ()=>{

let that = this.bannerSwiper.$el[0] // 實例的container的dom節點

that.addEventListener("mouseenter", () => {

this.bannerSwiper.autoplay.stop()

that.addEventListener("mousemove", () => {

})

})

that.addEventListener("mouseleave",()=>{

this.bannerSwiper.autoplay.start()

})

}

你可能還會遇到一個小問題

這也是我遇到的,那就是鼠標劃到輪播圖的時候點擊輪播圖 會偶爾出現切換的情況,swiper有一個屬性可以控制 shortSwipes ,官方描述是這樣的

默認允許短切換。設置為false時,只能長切換,進行快速且短距離的滑動無法觸發切換。

為什么會出現這種情況呢,因為swiper是專注于移動端的,劃上swiper點擊的時候可能鼠標方向偏了一點,swiper會以為你是手機上的滑動,設置為false時,短距離的滑動就不會發生切換了,下面是官方的說法

Swiper常用于移動端網站的內容觸摸滑動

Swiper是純javascript打造的滑動特效插件,面向手機、平板電腦等移動終端。

Swiper能實現觸屏焦點圖、觸屏Tab切換、觸屏多圖切換等常用效果。

Swiper開源、免費、穩定、使用簡單、功能強大,是架構移動終端網站的重要選擇!

最后

記得在組件卸載的時候解綁事件和銷毀swiper實例哦

componentWillUnmount(){

if(this.bannerSwiper){

this.bannerSwiper.detachEvents()

this.bannerSwiper.destroy()

}

}

swiper真的強大,了解更多請參考 swiper 文檔

如果對您有幫助記得給個 喜歡 哦

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276178.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276178.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276178.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

轉Excel的一種簡單方法

寫了這么久的程序﹐越來越喜歡那種簡單的解決方法﹐這段時間在做一個報表系統﹐其中有需要轉Excel﹐而且要求兼容openoffice﹐遂利用asp語法,asp.net的控件封裝特性以及excel 2003的xml試算清格式做了一個看起來比較"清爽"的excel轉檔方案。一.開始原理很簡單﹐excel…

詳解MySQL中EXPLAIN解釋命令

轉載鏈接:http://database.51cto.com/art/200912/168453.htm explain顯示了mysql如何使用索引來處理select語句以及連接表。可以幫助選擇更好的索引和寫出更優化的查詢語句。 使用方法,在select語句前加上explain就可以了: 如:…

Shell編程基礎

我們可以使用任意一種文字編輯器,比如gedit、kedit、emacs、vi等來編寫shell腳本,它必須以如下行開始(必須放在文件的第一行): # !/bin/sh ...注意:最好使用“!/bin/bash”而不是“!/bin/sh”,…

總結:自學前端的高效學習路線

提到前端,大多數人都會想到薪資高。也正因為如此,很多人想要從事前端開發這個崗位,也由此衍生出來一個問題:為什么前端工程師供不應求,但還是有很多學前端的人找不到工作?其實行業不是缺前端工程師&#xf…

機器人出魔切還是三相_英雄聯盟:輔助也要去上單,機器人布里茨玩法介紹

英雄聯盟:輔助也要去上單,機器人布里茨玩法介紹出裝方面我們都知道他的被動是可以將法力值化為機的護盾的,而這樣的話裝備就可以選擇魔切,然后再出一個鞋子,為什么不先出三項呢?三項的性價比是比較高的&…

vmware創建虛擬機不識別網卡

今天在給虛擬機添加網卡的時候,出現了虛擬機不識別新加的網卡,很納悶,連的一樣的端口組,為什么新加的網卡識別不了呢 然后查看pci設備,發現網卡的驅動為 AMD 79C970 PCnet32- LANCE 然后都vc上查看,果真驅動…

轉:26個Jquery使用小技巧(jQuery tips, tricks solutions)

26個Jquery使用小技巧(jQuery tips, tricks & solutions) 前段時間發布了Jquery類庫1.4版本,使用者也越來越多,為了方便大家對Jquery的使用,下面列出了一些Jquery使用技巧。比如有禁止右鍵點擊、隱藏搜索文本框文字、在新窗口中打開鏈接…

周末包郵送書和小紅包中獎名單公布

大家好,我是若川。周末送福利,給大家送紅包、包郵送新書!這篇文章中,準備了3本自選前端新書,10個2元小紅包,在看抽10人每人5元紅包,2月28日晚8點開獎。現將名單公布如下:在看抽獎&am…

Ubuntu 命令行修改網絡配置方法

轉載鏈接:http://www.jb51.net/article/15807.htm Ubuntu 命令行修改網絡配置方法 /etc/network/interfaces 打開后里面可設置DHCP或手動設置靜態ip。前面auto eth0,讓網卡開機自動掛載. 1. 以DHCP方式配置網卡 編輯文件/etc/network/interfaces: sudo v…

python treeview底部加個按鈕_Python爬取京東商品信息(GUI版本)

前言本文的文字及圖片來源于網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理。作者:DYblog轉載:https://www.cnblogs.com/dy8888/p/13257918.htmlPS:如有需要Python學習資料的小伙伴可以加點擊…

Linux下編譯安裝Mysql簡單步驟

常規方式編譯安裝MySQL時,適合用第一條最正宗的MySQL產品線5.2及以前版本:所謂常規方式編譯安裝MySQL就是延續早期MySQL的3部曲安裝方式,即./configure;make;make install,下面是老男孩在早期的企業生產場景下操作過的具體命令及參…

Vue.js 3.0 響應式 API 比 2.x 好在哪兒?

Hello,各位小伙伴,接下來的一段時間里,我會把我的課程《Vue.js 3.0 核心源碼解析》中問題的答案陸續在我的公眾號發布,由于課程的問題大多數都是開放性的問題,所以我的答案也不一定是標準的,僅供你參考喔。…

招聘.NET程序員

人才難找啊,順便發個招聘啟事。 西安瀚博科技有限公司招聘.NET程序員,有工作經驗者優先 如有意向,請發郵件到 slzhanghiweb.cn 轉載于:https://www.cnblogs.com/shengli/archive/2010/03/08/1680861.html

xml解析類

轉載鏈接:http://zyan.cc/post/253 今天在PHP4環境下重新寫一個接口程序,需要大量分析解析XML,PHP的xml_parse_into_struct()函數不能直接生成便于使用的數組,而SimpleXML擴展在PHP5中才支持,于是逛逛搜索引擎&#x…

jmeter學習指南之聚合報告

jmeter視頻地址:https://edu.51cto.com/course/14305.html 上一篇文章中我們講了Jmeter結果分析最常用的一個Listener查看結果樹,今天接著講另一個最常用的listener--聚合報告Aggregate Report。我們先來看看聚合報告中的主要名稱的含意:Labe…

敏捷開發概述

敏捷方法強調適應性而非預見性。 目前列入敏捷方法的有: 軟件開發節奏,Software Development Rhythms 敏捷數據庫技術,AD/Agile Database Techniques 敏捷建模,AM/Agile Modeling 自適應軟件開發,ASD/Adaptive Softwar…

2021 整理的最全學習資源,送給每一個努力著的人

時間來到了 2021 年,新的一年有新的期待,而我亦有新的祝福如果說在過去的一年,經歷太多,心酸、迷茫、焦慮、幸福、喜悅那么在 2021 年,希望你可以去過一種遇見自己的生活,恬淡、熱情,喜歡自己而…

ubuntu+php環境下的Memcached 安裝方法

轉載鏈接:http://www.jb51.net/article/28887.htm Memcached是一套分散式的高速緩存系統,當初是Danga Interactive為了LiveJournal所發展。 目前被很多系統所使用,例如Flick、Twitter等。這是一套開放源代碼軟件,以BSD license授…

php移動簽批源碼_PHP讓網站移動訪問更加友好方法

PHP都是在服務器上處理的,所以當代碼到達用戶時,它只是HTML。基本上,用戶從你的服務器請求你網站的一個頁面,然后你的服務器運行所有的PHP并向用戶發送PHP的結果。設備實際上從未看到或必須使用實際的PHP代碼。這使得使用PHP完成的…

Chrome OS 設備或將允許用戶自行選擇 Linux 發行版

百度智能云 云生態狂歡季 熱門云產品1折起>>> 谷歌去年宣布在 Chrome OS 上支持運行 Linux 應用,前不久又有消息稱其將為運行這些 Linux 應用提供 GPU 加速支持,而現在,Chrome OS 似乎將在 Linux 的方向上更進一步,讓 …