使用jQuery實現的平滑滾動輪播圖
使用jQuery實現的平滑滾動輪播圖
<script type="text/javascript">
/*
* 功能說明:
* 1.點選向左(右)的圖示 ,平滑的切換到上(下)頁。
* 2,無限的迴圈切換:第一頁的商業為最後一頁 ,最後一頁的下,一張為第一頁
* 3,每隔3秒自動切換到下一頁
* 4,當滑鼠進入圖片區域時,自動切換停止 ,當滑鼠離開時,又開始自動切換
* 5,切換頁面時 ,下面的圓點也跟著同步切換
* 6,點選圓點切換對應的頁。
* */
//-------------------------------頁面的平滑翻頁-------------
$(function() {
//點選向右或向左的圖形進行翻頁
var $content = $(`#content`);
var $list = $(`#img_list`);
var $points = $(`#points>span`);
var $prev = $(`#but_1`);
var $next = $(`#but_2`);
var IMG_WIDTH = 1000; //定義單張圖片的長度
var TIME = 400; //時間
var ITEM_TIME = 10; //單張圖片移動的時間
var imgCount = 7;
var index = 0; //起始圓點的索引
var moving = false;
/*
* @
* 手動的向左和向右的按鈕
*/
$prev.click(function() {
nextPage(true);
})
$next.click(function() {
nextPage(false);
})
/*
*@
* 自動翻頁(true : 左 false : 右)
*/
var $fanye = setInterval(function() {
nextPage(false);
}, 3000);
/*
*滑鼠移入時自動翻頁停止,箭頭顯示
* 滑鼠移出時自動翻頁啟動,箭頭消失
*/
$content.hover(function() {
//清除迴圈
clearInterval($fanye);
$next.css(`display`, `block`);
$prev.css(`display`, `block`);
},
function() {
$next.css(`display`, `none`);
$prev.css(`display`, `none`);
$fanye = setInterval(function() {
nextPage(false);
}, 3000);
})
/*
* @
* 點選圓點切換圖片,並更新圓點的樣式
*/
$points.click(function() {
var targetIndex = $(this).index();
//計算目標頁的下標
if (targetIndex != index) {
nextPage(targetIndex);
}
})
/*
* 移到下一頁的方法
*/
function nextPage(next) {
//定義一個標誌位,當標誌位為true時表示當前的頁面為翻頁的過程中
if (moving) {
return; //當標誌為為true時退出(也就是說在翻頁的過程中禁止其他的事件呼叫nextPage()方法)
}
moving = true;
var offset = 0; //所需要移動的距離,單張 或 單張*next
//判斷引數是boolean 還是整型的(boolean型的就是向左右移動,整型的就是移動到指定的圖片)
if (typeof next == `boolean`) {
offset = next ? IMG_WIDTH : -IMG_WIDTH; //左移還是右移
} else {
offset = -(next - index) * IMG_WIDTH;
}
var itemoffset = offset / (TIME / ITEM_TIME); //單位移動的距離
var now_margin_left = parseInt($list.css(`margin-left`)); //獲得當前移動前的距離
//圖片的停止位置
var targetLeft = now_margin_left + offset; //目標位置
var xunhuan = setInterval(function() {
now_margin_left += itemoffset; //獲得當前的位置
if (now_margin_left === targetLeft) {
clearInterval(xunhuan); //到達目標的位置,並清除定時器
moving = false; //在翻頁結束時(清除定時器)
//判斷是否到達左邊和右邊的邊界
if (now_margin_left == -(imgCount - 1) * IMG_WIDTH) {
now_margin_left = (-IMG_WIDTH);
}
if (now_margin_left === 0) {
now_margin_left = -(imgCount - 2) * IMG_WIDTH;
}
}
$list.css(`margin-left`, now_margin_left + `px`); //修改css樣式
}, ITEM_TIME);
updatePoints(next); //更新圓點的樣式
/*
* 更新圓點的的方法
*/
function updatePoints(next) { //將目標圓點更新為targetIndex
var targetIndex = 0; //目標圓點
//計算出目標圓點的下標,給目標圓點新增 class on屬性
/*
* 判斷引數是boolean型的還是整型的
* (如果是boolean型的直接左右移動,如果是整型的直接跳轉到圖片的索引)
*
*/
if (typeof next == `boolean`) {
if (next) {
targetIndex = index - 1; // 0 ~ imgCount-1
//判斷是否到達最左邊或最右邊
if (targetIndex == -(imgCount - 2)) { //第一個圓點
targetIndex = 0;
}
} else {
targetIndex = index + 1;
if (targetIndex == imgCount - 2) { //跳轉到第5個圖片
targetIndex = 0;
}
}
} else {
targetIndex = next;
}
//清除上一個圓點的樣式,給目標圓點新增樣式
$points.eq(index).removeClass(`on`);
$points.eq(targetIndex).addClass(`on`);
index = targetIndex; //移動方法
}
}
})
</script>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
詳細程式碼地址:https://download.csdn.net/download/wangzijian121/10630705
原文地址https://blog.csdn.net/wangzijian121/article/details/82143748
相關文章
- JQuery實現圖片輪播無縫滾動jQuery
- js、jQuery實現文字上下無縫輪播、滾動效果JSjQuery
- css實現滾動輪播CSS
- jQuery實現輪播效果jQuery
- 邏輯難理解版本的輪播圖(實現無縫滾動)
- jQuery輪播圖之上下輪播jQuery
- java學習---前端---使用JavaScript和jQuery實現圖片輪播圖前端JavaScriptjQuery
- react無縫滾動輪播圖React
- 直播app原始碼,HTML + jQuery 實現輪播圖APP原始碼HTMLjQuery
- jQuery實現3D圖片輪播詳解jQuery3D
- 如何在 pyqt 中使用動畫實現平滑滾動的 QScrollAreaQT動畫
- js實現輪播圖JS
- ViewPage實現輪播圖View
- Banner實現輪播圖
- 2020 用html jQuery實現廣告輪播圖自動切換 滾動頁面 滑鼠懸浮下標且左右切換圖片HTMLjQuery
- 手動實現輪播圖(二):迴圈滾動、定時切換與指示器
- 原生js實現輪播圖JS
- vue元件之輪播圖的實現Vue元件
- 原生JS實現輪播圖的效果JS
- vue2.0使用vue-seamless-scroll實現表格平滑滾動Vue
- spring boot+bootstrap實現動態輪播圖實戰Spring Boot
- 兩種方式實現輪播圖
- php短視訊原始碼,jQuery實現自定義輪播圖外掛PHP原始碼jQuery
- 移動端輪播圖實現方法(dGun.js)JS
- 原生JS實現輪播圖--第二章動畫實現JS動畫
- vue元件之路之輪播圖的實現Vue元件
- vue3.0使用vue3-seamless-scroll實現表格平滑滾動Vue
- TWEEN動畫、JQUERY、ES6 — 3、 輪播圖-左右運動版本動畫jQuery
- 用CSS實現一個輪播圖CSS
- [分享會]只用CSS實現輪播圖CSS
- ViewFlipper探索與使用——順便實現Android圖片輪播ViewAndroid
- 基於 flex 的 order 實現 carousel 輪播圖Flex
- 仿小米官網輪播圖(Banner)的實現
- 網頁佈局------輪播圖效果實現網頁
- 用原生js實現圖片輪播器JS
- 直播app開發,實現輪播圖上下自動滑動展示效果APP
- unity 實現輪盤方式的按鈕滾動效果Unity
- 三種方式實現平滑滾動頁面到頂部的功能