亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript滾動(dòng)輪播圖制作原理詳解

 更新時(shí)間:2022年03月29日 18:52:02   作者:周帥帥Love  
這篇文章主要為大家詳細(xì)介紹了JavaScript滾動(dòng)輪播圖制作原理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了JavaScript滾動(dòng)輪播圖制作原理,供大家參考,具體內(nèi)容如下

滾動(dòng)輪播圖

滾動(dòng)輪播圖布局關(guān)鍵:是所有圖片并排在一起,所以u(píng)nit的寬要足夠?qū)挕?br />克隆第一張圖片追加到最后一張
右按鈕拉動(dòng)策略:先拉動(dòng),再瞬移
左按鈕拉動(dòng)策略:先瞬移,再拉動(dòng)
與呼吸輪播圖一樣,需要做防流氓策略

復(fù)制代碼:將我代碼中的圖片更換為你的圖片,注意圖片路徑,還需要引入js庫,我引入的是jquery-1.12.3.min.js的版本,引入的時(shí)候注意路徑

舉例:

<!DOCTYPE html>
<html lang="en">
<head>
?? ?<meta charset="UTF-8">
?? ?<title>Document</title>
?? ?<style type="text/css">
?? ??? ?* {
?? ??? ??? ?margin: 0;
?? ??? ??? ?padding: 0;
?? ??? ?}
?? ??? ?ul, ol {
?? ??? ??? ?list-style: none;
?? ??? ?}
?? ??? ?a {
?? ??? ??? ?text-decoration: none;
?? ??? ?}
?? ??? ?.carousel {
?? ??? ??? ?width: 560px;
?? ??? ??? ?height: 300px;
?? ??? ??? ?margin: 50px auto;
?? ??? ??? ?border: 5px solid red;
?? ??? ??? ?position: relative;
?? ??? ??? ?overflow: hidden;
?? ??? ?}
?? ??? ?/* 滾動(dòng)輪播圖布局關(guān)鍵,是所有圖片并排在一起
?? ??? ??? ?unit的寬要足夠?qū)?
?? ??? ? */
?? ??? ? .carousel .unit {
?? ??? ? ?? ?position: absolute;
?? ??? ? ?? ?width: 9999px;
?? ??? ? ?? ?left: 0;
?? ??? ? ?? ?top: 0;
?? ??? ? }
?? ??? ? .carousel .unit li {
?? ??? ? ?? ?float: left;
?? ??? ? ?? ?width: 560px;
?? ??? ? ?? ?height: 300px;
?? ??? ? }
?? ??? ? .btns a {
?? ??? ? ?? ?position: absolute;
?? ??? ? ?? ?width: 30px;
?? ??? ? ?? ?height: 60px;
?? ??? ? ?? ?top: 50%;
?? ??? ? ?? ?margin-top: -30px;
?? ??? ? ?? ?background-color: rgba(0, 0, 0, .5);
?? ??? ? ?? ?color: #fff;
?? ??? ? ?? ?font-size: 20px;
?? ??? ? ?? ?line-height: 60px;
?? ??? ? ?? ?text-align: center;
?? ??? ? }
?? ??? ? .btns a:first-child {
?? ??? ? ?? ?left: 10px;
?? ??? ? }
?? ??? ? .btns a:last-child {
?? ??? ? ?? ?right: 10px;
?? ??? ? }
?? ??? ? .circles {
?? ??? ? ?? ?position: absolute;
?? ??? ? ?? ?width: 140px;
?? ??? ? ?? ?height: 20px;
?? ??? ? ?? ?left: 50%;
?? ??? ? ?? ?margin-left: -70px;
?? ??? ? ?? ?bottom: 30px;
?? ??? ? }
?? ??? ? .circles ol {
?? ??? ? ?? ?width: 150px;
?? ??? ? }
?? ??? ? .circles ol li {
?? ??? ? ?? ?float: left;
?? ??? ? ?? ?width: 20px;
?? ??? ? ?? ?height: 20px;
?? ??? ? ?? ?margin-right: 10px;
?? ??? ? ?? ?background-color: orange;
?? ??? ? ?? ?border-radius: 50%;
?? ??? ? }
?? ??? ? .circles ol li.cur {
?? ??? ? ?? ?background-color: yellow;
?? ??? ? }
?? ?</style>
</head>
<body>
?? ?<div class="carousel" id="carousel">
?? ??? ?<ul class="unit" id="unit">
?? ??? ??? ?<li><img src="images/0.jpg" alt=""></li>
?? ??? ??? ?<li><img src="images/1.jpg" alt=""></li>
?? ??? ??? ?<li><img src="images/2.jpg" alt=""></li>
?? ??? ??? ?<li><img src="images/3.jpg" alt=""></li>
?? ??? ??? ?<li><img src="images/4.jpg" alt=""></li>
?? ??? ?</ul>
?? ??? ?<div class="btns">
?? ??? ??? ?<a href="javascript:void(0)" id="leftBtn">&lt;</a>
?? ??? ??? ?<a href="javascript:void(0)" id="rightBtn">&gt;</a>
?? ??? ?</div>
?? ??? ?<div class="circles" id="circles">
?? ??? ??? ?<ol>
?? ??? ??? ??? ?<li class="cur"></li>
?? ??? ??? ??? ?<li></li>
?? ??? ??? ??? ?<li></li>
?? ??? ??? ??? ?<li></li>
?? ??? ??? ??? ?<li></li>
?? ??? ??? ?</ol>
?? ??? ?</div>
?? ?</div>
?? ?<script type="text/javascript" src="js/jquery-1.12.3.min.js"></script>
?? ?<script type="text/javascript">
?? ?// 獲取元素
?? ?var $unit = $("#unit");
?? ?var $leftBtn = $("#leftBtn");
?? ?var $rightBtn = $("#rightBtn");
?? ?var $circles = $("#circles ol li");
?? ?var length = $circles.length;
?? ?// console.log(length);

?? ?// 定義信號(hào)量 有效范圍: 0, 1, 2, 3, 4
?? ?var idx = 0;

?? ?// 克隆第一張圖片追加到最后一張
?? ?$unit.children("li:first").clone().appendTo($unit);

?? ?// 右按鈕的點(diǎn)擊事件
?? ?$rightBtn.click(function() {
?? ??? ?// 防流氓
?? ??? ?if ($unit.is(":animated")) {
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?// 拉動(dòng)策略: 先拉動(dòng), 再瞬移
?? ??? ?idx++;
?? ??? ?console.log(idx);
?? ??? ?// 信號(hào)量 有效值是: 0, 1, 2, 3, 4, 5(5是貓膩圖)
?? ??? ?$unit.animate({"left": -560 * idx}, 1000, function() {
?? ??? ??? ?// 當(dāng)貓膩圖完全顯示之后驗(yàn)證信號(hào)量
?? ??? ??? ?if (idx > length - 1) {
?? ??? ??? ??? ?// idx 歸零
?? ??? ??? ??? ?idx = 0;
?? ??? ??? ??? ?// 瞬間移動(dòng)到真圖
?? ??? ??? ??? ?$unit.css("left", 0);
?? ??? ??? ?}

?? ??? ?})
?? ??? ?// 小圓點(diǎn)在1000ms之內(nèi),對(duì)應(yīng)的是idx = 5 是貓膩圖
?? ??? ?// 0 - 4 是有效值, 5對(duì)應(yīng)的是貓膩圖
?? ??? ?// 定義一個(gè)變量用于中轉(zhuǎn)信號(hào)量
?? ??? ?var i = idx <= 4 ? idx : 0;
?? ??? ?$circles.eq(i).addClass("cur").siblings().removeClass("cur");

?? ?})


?? ?// 左按鈕點(diǎn)擊事件
?? ?$leftBtn.click(function() {
?? ??? ?// 防流氓
?? ??? ?if ($unit.is(":animated")) {
?? ??? ??? ?return;
?? ??? ?}

?? ??? ?// 左按鈕的拉動(dòng)策略: 先瞬移, 再拉動(dòng)
?? ??? ?idx--;
?? ??? ?// 邊界判斷
?? ??? ?if (idx < 0) {
?? ??? ??? ?idx = length - 1;
?? ??? ??? ?// 瞬間移動(dòng)到貓膩圖
?? ??? ??? ?$unit.css("left", -560 * length);
?? ??? ?}
?? ??? ?console.log(idx);
?? ??? ?// 拉動(dòng)
?? ??? ?$unit.animate({"left": -560 * idx}, 1000);

?? ??? ?// 當(dāng)前小圓點(diǎn)加cur
?? ??? ?$circles.eq(idx).addClass("cur").siblings().removeClass("cur");
?? ?})

?? ?// 小圓點(diǎn)事件
?? ?$circles.mouseenter(function() {
?? ??? ?// 改變信號(hào)量
?? ??? ?idx = $(this).index();
?? ??? ?console.log(idx);
?? ??? ?// 拉動(dòng)
?? ??? ?$unit.stop(true).animate({"left": -560 * idx}, 600);
?? ??? ?// 小圓點(diǎn)加cur
?? ??? ?$(this).addClass("cur").siblings().removeClass("cur");
?? ?})


?? ?</script>
</body>
</html>

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • uniapp 封裝組件的方法實(shí)例分析

    uniapp 封裝組件的方法實(shí)例分析

    這篇文章主要介紹了uniapp 封裝組件的方法,結(jié)合實(shí)例形式分析了uniapp父級(jí)頁與子頁面組件封裝與傳參交互相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2023-06-06
  • 前端uniapp封裝網(wǎng)絡(luò)請(qǐng)求以及實(shí)際應(yīng)用教程

    前端uniapp封裝網(wǎng)絡(luò)請(qǐng)求以及實(shí)際應(yīng)用教程

    這篇文章主要給大家介紹了關(guān)于前端uniapp封裝網(wǎng)絡(luò)請(qǐng)求以及實(shí)際應(yīng)用的相關(guān)資料,在uniapp中進(jìn)行網(wǎng)絡(luò)測(cè)試請(qǐng)求可以通過封裝網(wǎng)絡(luò)請(qǐng)求來實(shí)現(xiàn),文中給出了詳細(xì)的代碼實(shí)例,需要的朋友可以參考下
    2024-01-01
  • 16個(gè)最流行的JavaScript框架[推薦]

    16個(gè)最流行的JavaScript框架[推薦]

    這篇文章列舉了當(dāng)下最流行的16個(gè) JavaScript 框架,既包含 jQuery 和 Mootools 等常規(guī)框架,也有Zepo這種支持智能手機(jī)觸摸功能的移動(dòng)JavaScript框架,如果你有更好的框架推薦,歡迎與我們分享。
    2011-05-05
  • 使用SyntaxHighlighter實(shí)現(xiàn)HTML高亮顯示代碼的方法

    使用SyntaxHighlighter實(shí)現(xiàn)HTML高亮顯示代碼的方法

    syntaxhighlighter是一個(gè)小開源項(xiàng)目,它可以在網(wǎng)頁中對(duì)各種程序源代碼語法進(jìn)行加亮顯示。
    2010-02-02
  • JS一次前端面試經(jīng)歷記錄

    JS一次前端面試經(jīng)歷記錄

    這篇文章主要介紹了JS一次前端面試經(jīng)歷,結(jié)合具體案例形式分析了JS前端面試過程中遇到的問題以及響應(yīng)的注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • JavaScript中DOM操作常用事件總結(jié)

    JavaScript中DOM操作常用事件總結(jié)

    這篇文章主要為大家詳細(xì)介紹了JavaScript中常用的幾個(gè)DOM事件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-04-04
  • javascript實(shí)現(xiàn)Table間隔色以及選擇高亮(和動(dòng)態(tài)切換數(shù)據(jù))的方法

    javascript實(shí)現(xiàn)Table間隔色以及選擇高亮(和動(dòng)態(tài)切換數(shù)據(jù))的方法

    這篇文章主要介紹了javascript實(shí)現(xiàn)Table間隔色以及選擇高亮(和動(dòng)態(tài)切換數(shù)據(jù))的方法,涉及javascript表格操作及按鈕實(shí)現(xiàn)表格切換的技巧,需要的朋友可以參考下
    2015-05-05
  • 手動(dòng)實(shí)現(xiàn)js短信驗(yàn)證碼輸入框

    手動(dòng)實(shí)現(xiàn)js短信驗(yàn)證碼輸入框

    本文記錄一下自己手動(dòng)實(shí)現(xiàn)的一個(gè)前端常見的短信驗(yàn)證碼輸入組件,從需求到實(shí)現(xiàn)逐步優(yōu)化的過程。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • javascript操作cookie方法函數(shù)集合

    javascript操作cookie方法函數(shù)集合

    很多朋友需要使用到cookies操作,腳本之家以前也發(fā)表了不少相關(guān)的文章。這篇文章,雖然亂了點(diǎn),但知識(shí)點(diǎn)比較多。
    2010-07-07
  • 詳解JavaScript 浮點(diǎn)數(shù)運(yùn)算的精度問題

    詳解JavaScript 浮點(diǎn)數(shù)運(yùn)算的精度問題

    這篇文章主要介紹了詳解JavaScript 浮點(diǎn)數(shù)運(yùn)算的精度問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評(píng)論