1 ionic.views.Slider = ionic.views.View.inherit({ 2 initialize: function (options) { 3 . 4 . 5 . 6 function setup() { 7 . 8 . 9 . 10 // set continuous to false if only one slide 11 if (slides.length < 2) options.continuous = false; 12 13 //special case if two slides 14 if (browser.transitions && options.continuous && slides.length < 3) { 15 element.appendChild(slides[0].cloneNode(true)); 16 element.appendChild(element.children[1].cloneNode(true)); 17 slides = element.children; 18 } 19 . 20 . 21 . 22 } 23 . 24 . 25 . 26 } 27 });
交流群里一位仁兄問了這么個問題,做圖片輪播的時候,如果是兩張圖片情況下,會出來四張(兩張重復),覺得好神奇,就試了試,果然如此。
於是乎打斷點調試了下,就發現以上代碼。這是ionic.js里面的代碼片段,是slider的定義。注意這句注釋://special case if two slides。雖不知道為何如此設計,但是這就是原因所在了,在slides.length=2的時候就進入此判斷下,於是就復制了兩個出來,兩個輪播圖就變成了四個。
由於學時尚短,不敢亂動框架,現只記在此處,未有解決方案。