又又又又是swiper問題
背景:
pc端項目,rem布局,swiper作為步驟條(上一步,下一步)的功能。
發現在屏幕拖動,寬高的變化,窗口大小的變化 會引起swiper自動滑動(到下一步)。
在下載文件鏈接時候回輕微引起一點點寬高的變化,導致直接滑到下一步。
Chrome瀏覽關閉底部下載內容時候也會導致滑動
思考:
1.剛開始以為是某個地方不小心多加了下一步的操作,一直在查找
2.然后以為是下載的方法導致的,更換了多種下載方案
3.實在沒有找出,准備debugger的時候發現,屏幕變化也會引起滑動,准備查找相關內容
行動:
但是無奈swiper的中文api太多不想一個一個的查找,直接搜索,篩選出以下可能有戲的內容↓
//博客鏈接:https://blog.csdn.net/gengsm2/article/details/43193785
//重點:通過調用swiper.resizeFix()方法,通知swiper需要重新計算頁面尺寸。
//博客鏈接:https://blog.csdn.net/u012217533/article/details/46335075?utm_source=copy //重點:mySwiper.destroy(removeResizeEvent) -移除所有綁定的事件監聽(窗口的尺寸改變事件【如果removeResizeEvent的值不等於“false”】,容器(wrapper)的觸控事件,以及文檔的鼠標事件),對於添加/移除滑塊,頁面到文檔時非常有用,能夠釋放瀏覽器內存。
結果:
到我正准備嘗試resize()方式的時候,發現原來我在開始的時候就設置過,每次在初始化的時候都要翻到下一頁!啊啊啊啊,不能圖省事直接復制demo里的代碼呀~
1 var mySwiper = $('.swiper-container').swiper({ 2 loop: false, 3 simulateTouch : false,//鼠標無效 4 followFinger : false,//拖動后釋放鼠標或手指時slide滑動 5 keyboardControl : false,//設置為true時,能使用鍵盤方向鍵控制slide滑動。 6 touchMoveStopPropagation : false,//阻止當和iscoll插件一起時的a標簽跳轉的冒泡事件 7 observer:true,//修改swiper自己或子元素時,自動初始化swiper 8 observeParents:true,//修改swiper的父元素時,自動初始化swiper 9 onInit: function(swiper){ 10 // swiper.swipeNext()//就是這里!!!!每次init,重繪的時候都會跳轉到下一頁 11 } 12 });
結論:
但是萬變不離其宗,如果有類型情況,排除多寫的跳轉下一步的方法,那么肯定是在重繪,重新init swiper 容器的時候出了什么問題,向着這個方向去找一定有結果的。
轉載注明出處,蟹蟹