直播平臺原始碼,純JS實現左右滑動輪播圖
直播平臺原始碼,純JS實現左右滑動輪播圖
輪播圖需要實現左右無縫切換
輪播圖的動態切換
利用右外邊距或左外邊距的加減來操作整個放有圖片div的移動,同時利用setTimeout()函式和計時器實現自動切換,從而達到圖片無縫切換的效果
//得到圖片的集合 var imgs = document.getElementById('img_list').getElementsByTagName('li'); //得到小圓點的集合 var icons = document.getElementById('icon_list').getElementsByTagName('li'); //初始左外邊距預設為0px var Left = 0; //定義計時器 var timer; run(); function run() { //圖片切換到最後時,重新歸零。 if (Left <= -5120) { img_list.style.marginLeft = "0px"; Left = 0; } //用n表示圖片切換和停留的時間,如果剛好顯示,停2000,否則以10的速度切換(Left持續-10,直到再次剛好顯示圖片) var n = (Left % 1280 == 0 ? 2000 : 10); changeimg(); m = Math.floor(-Left / 1280);//切換小圓點樣式的方法,此處暫且不提 changeicon(m);//切換小圓點樣式的方法,此處暫且不提 Left -= 10; //重複執行run方法。實現一直輪播。 timer = setTimeout(run, n); } function changeimg() { //切換圖片的方法、 img_list.style.marginLeft = Left + "px"; }
需要實現跳轉(放在圓點顯示對應圖片)
為小圓點新增監聽事件,當滑鼠放在圓點上時,呼叫clearTimeout()方法停止輪播,調整計時器引數到固定值,使左右邊距加減的滑動效果轉為直接跳轉到對應圖片的效果,並在滑鼠移出時重新啟動輪播setTimeout()
// 變數作用域兩種:全域性變數、區域性變數。js中函式內部可以讀取全域性變數,函式外部不能讀取函式內部的區域性變數。 // js鏈式作用域:子物件會一級一級向上尋找所有父物件的變數,反之不行。 // f2可以讀取f1中的變數,只要把f2作為返回值,就可以在f1外讀取f1內部變數 for (var i = 0; i < imgs.length; i++) { //根據第幾個圖示片來判斷停止。正常來說,外部i訪問不到下面函式的值,用了閉包後就能夠讀取了 //閉包作用 // 1、讀取函式內部的變數 // 2、讓這些變數的值始終保持在記憶體中。不會再f1呼叫後被自動清除。 // 3、方便呼叫上下文的區域性變數。利於程式碼封裝。 // 原因:f1是f2的父函式,f2被賦給了一個全域性變數,f2始終存在記憶體中,f2的存在依賴f1,因此f1也始終存在記憶體中,不會在呼叫結束後,被垃圾回收機制回收。 // 所以此處的i的值實際上為內部函式的i的值 //閉包()(i) (function(i) { imgs[i].onmousemove = function() { clearTimeout(timer);//停止輪播 Left = -i * 1280;//使距離為完全顯示圖片的距離(以防在切換時放上去卡兩張圖片中間) changeimg();//使用更改的Left去切換圖片 changeicon(i);//切換對應圖示 } imgs[i].onmouseout = function() { run(); } })(i); }
當前圖片的小圓點樣式需要突出
在圖片遍歷時為調整小圓點樣式的function()傳進去一個引數,透過Math.floor()函式計算出當前圖片是第幾張,從而為對應的圓點更改CSS樣式。
function run() { //圖片切換到最後時,重新歸零。 if (Left <= -5120) { img_list.style.marginLeft = "0px"; Left = 0; } //用n表示圖片切換和停留的時間,如果剛好顯示,停2000,否則以10的速度切換(Left持續-10,直到再次剛好顯示圖片) var n = (Left % 1280 == 0 ? 2000 : 10); changeimg(); m = Math.floor(-Left / 1280);//透過計算得出最接近的整數(1、2、3、4) changeicon(m);//切換對應的小圓點的樣式 Left -= 10; //重複執行run方法。實現一直輪播。 timer = setTimeout(run, n); } function changeicon(m) { //切換圖示變色的方法 for (var i = 0; i < icons.length; i++) { //先全部取消顏色 icons[i].style.backgroundColor = ""; } //再根據m的值判斷第幾個圖示變紅。 icons[m].style.backgroundColor = "red"; }
以上就是直播平臺原始碼,純JS實現左右滑動輪播圖, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2952984/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 直播平臺軟體開發,卡片式輪播圖,可左右滑動
- 直播平臺搭建原始碼,bootstrap實現圖片輪播效果原始碼boot
- 直播平臺原始碼,上傳本地圖片實現個人名片背景圖輪播原始碼地圖
- 直播平臺原始碼,數字化大屏地圖輪播的實現echarts原始碼地圖Echarts
- 直播app原始碼,HTML + jQuery 實現輪播圖APP原始碼HTMLjQuery
- 直播軟體app開發,左右自動滑動的輪播圖廣告APP
- 直播平臺搭建原始碼,純js實現編輯器撤消/重做原始碼JS
- 直播app開發,實現輪播圖上下自動滑動展示效果APP
- 小說APP原始碼,手動滑動輪播圖時,輪播圖跟隨移動APP原始碼
- 直播平臺搭建原始碼,XBanner設定只顯示輪播圖原始碼
- 直播系統原始碼,ViewPager載入大圖 左右滑動原始碼Viewpager
- js實現輪播圖JS
- 直播平臺製作,依靠C語言實現圖片輪播C語言
- 直播平臺開發,使用swiper實現輪播效果
- 原生js實現輪播圖JS
- 直播平臺製作,ViewPager自動輪播,手指按住停止輪播Viewpager
- 直播軟體搭建,橫版自動滑動的輪播圖
- 短視訊平臺原始碼,介面支援上下、左右的任意滑動原始碼
- 手機直播原始碼,實現圖片瀑布流式滑動效果原始碼
- 直播軟體原始碼,Android---Banner輪播圖原始碼Android
- 移動端輪播圖實現方法(dGun.js)JS
- 直播平臺搭建原始碼,qt自定義滑動按鈕原始碼QT
- 短視訊平臺搭建,淡入淡出 支援左滑右滑輪播圖
- 原生JS實現輪播圖的效果JS
- 短視訊平臺原始碼,Android 左右滑動顯示和隱藏原始碼Android
- 原生JS實現輪播圖--第二章動畫實現JS動畫
- 手機直播原始碼,android 輪播圖自定製元件原始碼Android元件
- 直播平臺原始碼,迴圈滾動RecyclerView的實現原始碼View
- 用原生js實現圖片輪播器JS
- 圖片輪播--純cssCSS
- 直播電商原始碼,android設定輪播圖轉場動畫特效原始碼Android動畫特效
- 成品直播原始碼,輪播圖無縫切換以及自動懸停原始碼
- 一對一直播系統原始碼,軟體首頁輪播圖輪播效果原始碼
- 直播平臺原始碼,RecycleView實現item重疊水平滑動原始碼View
- 線上直播系統原始碼,利用css和html實現首頁圖片輪播效果原始碼CSSHTML
- 直播小程式原始碼,小程式頁面左右滑動如何解決原始碼
- 成品直播原始碼,頂部導航欄部分支援左右滑動原始碼
- 短視訊直播原始碼,拖動滑塊實現圖片驗證效果原始碼