自適應(yīng)淡入淡出輪播(添加觸摸)

前端入坑紀(jì) 28

確切的說(shuō),這個(gè)算是偽更新了孕似。只是改了幾行代碼鱼填,原諒這拙劣的套路。算是為了讓更多人看到臀晃,其實(shí)很多js的東西,稍微改改就行了介劫,不用特地找一摸一樣的效果徽惋。當(dāng)然拉,前提是你必須熟悉改之前的代碼座韵。

效果圖

OK险绘,first things first!項(xiàng)目鏈接

HTML 結(jié)構(gòu)
    <div class="swipWrp">
        <div id="swiper">
            ![](http://upload-images.jianshu.io/upload_images/4732938-ad15e96a780c2e91.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
            ![](http://upload-images.jianshu.io/upload_images/4732938-03189dc7ac3bd4fa.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
            ![](http://upload-images.jianshu.io/upload_images/4732938-289ad952c7bcf84c.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
            ![](http://upload-images.jianshu.io/upload_images/4732938-bcb76626b6649927.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
        </div>
    </div>
CSS結(jié)構(gòu)
        .swipWrp {
            position: relative;
            width: 100%;
            margin: 0 auto;
            overflow: hidden;
        }
        
        #swiper {
            position: relative;
            overflow: hidden;
            text-align: center;
            background-color: #fff;
        }
        
        #swiper img {
            display: none;
            margin: 0 auto;
            width: 100%;
            transition: all 300ms linear 60ms;
        }
        
        #tags {
            position: absolute;
            bottom: 6px;
            left: 0;
            width: 100%;
            text-align: center;
        }
        
        #tags a {
            display: inline-block;
            transition: all 1s ease;
            width: 12px;
            height: 12px;
            margin: 3px 6px;
            border-radius: 8px;
            background-color: rgba(255, 255, 255, .8)
        }
        
        #tags a.on {
            transform: scale(1.2, 1.2);
            background-color: rgba(255, 255, 255, .5)
        }

JS結(jié)構(gòu)
            var swiper = document.getElementById("swiper");
            var imgs = swiper.getElementsByTagName("img");
            var indx = 0;
            var timers = null;
            var nodeFgmt = document.createDocumentFragment();
            newNode = document.createElement("div");
            newNode.id = "tags";

            for (var i = 0; i < imgs.length; i++) {
                var ond = document.createElement("a");
                ond.href = "javascript:;";
                ond.setAttribute("data-indx", i);
                nodeFgmt.appendChild(ond);
            }
            newNode.appendChild(nodeFgmt);

            swiper.appendChild(newNode);
            var tagsA = document.getElementById("tags").getElementsByTagName("a");

            for (var s = 0; s < tagsA.length; s++) {
                tagsA[s].onmouseover = function() {
                    offEft();
                    hideAll();
                    var indxA = this.getAttribute("data-indx");
                    changeEffect(indxA);
                    this.className = "on"

                }
                tagsA[s].onmouseout = function() {
                    onEft();
                }
            }

            tagsA[0].className = "on";
            imgs[0].style.display = "block";
            imgs[0].style.opacity = "1";

            function hideAll() {
                for (var i = 0; i < imgs.length; i++) {
                    imgs[i].style.display = "none";
                    imgs[i].style.opacity = "0";
                    tagsA[i].className = ""
                }
            }

            function scrollIntvel() {
                timers = setInterval(function() {
                    hideAll();
                    if (indx < imgs.length - 1) {
                        indx++;
                    } else {
                        indx = 0;
                    }
                    changeEffect(indx);
                }, 3600);
            }



            function changeEffect(indx) {
                imgs[indx].style.display = "block";
                setTimeout(function() {
                    imgs[indx].style.opacity = "1";
                    tagsA[indx].className = "on";
                }, 30);
            }


            function onEft() {
                scrollIntvel()
            }

            function offEft() {
                clearInterval(timers);
            }

            scrollIntvel()

            function swiperLeft() {
                hideAll();
                if (indx > 0) {
                    indx--;
                } else {
                    indx = imgs.length - 1;
                }
                changeEffect(indx);
            }

            function swiperRight() {
                hideAll();
                if (indx < imgs.length - 1) {
                    indx++;
                } else {
                    indx = 0;
                }
                changeEffect(indx);
            }


            // 這里的代碼和 第26篇幅《左右滑動(dòng)出按鈕&刪除效果》類似
            var startX = endX = 0;
            // 觸摸開(kāi)始時(shí)誉碴,獲取觸摸開(kāi)始時(shí)的clientX值 宦棺,并暫停輪播的計(jì)時(shí)
            swiper.addEventListener("touchstart", function(evt) {
                startX = evt.targetTouches[0].clientX;
                offEft();
            });

            // 移動(dòng)時(shí)計(jì)算滑動(dòng)的clientX值
            swiper.addEventListener("touchmove", function(evt) {
                endX = evt.targetTouches[0].clientX;
            });


            // 移動(dòng)結(jié)束時(shí)獲得滑動(dòng)的clientX值,判斷大小黔帕,以便確定左右方向代咸,最后繼續(xù)開(kāi)啟輪播計(jì)時(shí)
            swiper.addEventListener("touchend", function(evt) {
                if (endX - startX < 0) {
                    swiperRight()
                } else {
                    swiperLeft()
                }
                onEft()
            });

把變更的js添加了備注,其實(shí)這里的代碼和原先左右箭頭里的代碼基本是一樣的成黄。

好了呐芥,到此逻杖,本文告一段落!感謝您的閱讀思瘟!祝你身體健康荸百,闔家幸福!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末潮太,一起剝皮案震驚了整個(gè)濱河市管搪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铡买,老刑警劉巖更鲁,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異奇钞,居然都是意外死亡澡为,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門景埃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)媒至,“玉大人,你說(shuō)我怎么就攤上這事谷徙【軉” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵完慧,是天一觀的道長(zhǎng)谋旦。 經(jīng)常有香客問(wèn)我,道長(zhǎng)屈尼,這世上最難降的妖魔是什么册着? 我笑而不...
    開(kāi)封第一講書人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮脾歧,結(jié)果婚禮上甲捏,老公的妹妹穿的比我還像新娘。我一直安慰自己鞭执,他們只是感情好司顿,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著兄纺,像睡著了一般免猾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上囤热,一...
    開(kāi)封第一講書人閱讀 52,196評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音获三,去河邊找鬼旁蔼。 笑死锨苏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的棺聊。 我是一名探鬼主播伞租,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼限佩!你這毒婦竟也來(lái)了葵诈?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤祟同,失蹤者是張志新(化名)和其女友劉穎作喘,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體晕城,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡泞坦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了砖顷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贰锁。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖滤蝠,靈堂內(nèi)的尸體忽然破棺而出豌熄,到底是詐尸還是另有隱情,我是刑警寧澤物咳,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布锣险,位于F島的核電站,受9級(jí)特大地震影響所森,放射性物質(zhì)發(fā)生泄漏囱持。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一焕济、第九天 我趴在偏房一處隱蔽的房頂上張望纷妆。 院中可真熱鬧,春花似錦晴弃、人聲如沸掩幢。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)际邻。三九已至,卻和暖如春芍阎,著一層夾襖步出監(jiān)牢的瞬間世曾,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工谴咸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留轮听,地道東北人骗露。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像血巍,于是被迫代替她去往敵國(guó)和親萧锉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,275評(píng)論 25 707
  • 前端入坑紀(jì) 39 今天碰到個(gè)如題的效果(原諒我這長(zhǎng)長(zhǎng)的一大段形容詞)述寡,本來(lái)是想隨意找個(gè)插件就完事的柿隙。可誰(shuí)料到找了老...
    kerush閱讀 431評(píng)論 0 1
  • 前端入坑紀(jì) 33 挖坑了鲫凶,最近忙著寫html5的小游戲禀崖,少了更新。 這會(huì)兒掀序,乘著有空帆焕,稍微更新一個(gè)先前的輪播效果。...
    kerush閱讀 915評(píng)論 0 1
  • 主動(dòng)成長(zhǎng)的特點(diǎn)是尋求信息不恭,進(jìn)行交流叶雹,不斷尋找最合理的交換條件或合作條件。最后换吧,繼續(xù)搜集更多的信息折晦,反思實(shí)現(xiàn)更高水平...
    秦默閱讀 170評(píng)論 0 0
  • 都說(shuō)夜深人靜是思想最洶涌時(shí)候贯莺,嗯风喇,沒(méi)錯(cuò)的啊,它放蕩不羈澎湃激情缕探,以致荷爾蒙泛濫內(nèi)分泌失調(diào)魂莫,然后夜夜笙歌…… 這是...
    green健閱讀 316評(píng)論 1 4