溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

flex布局如何實(shí)現(xiàn)無縫滾動(dòng)

發(fā)布時(shí)間:2021-03-20 11:46:51 來源:億速云 閱讀:159 作者:小新 欄目:web開發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)flex布局如何實(shí)現(xiàn)無縫滾動(dòng),小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

案例的演示

flex布局如何實(shí)現(xiàn)無縫滾動(dòng)

flex布局

所謂flex布局就是彈性盒布局,這種布局在移動(dòng)端比較常用,但隨著瀏覽器的版本更新,flex布局因?yàn)樽陨淼膬?yōu)點(diǎn),日漸常用。

思路:

  • 首先分析這個(gè)小demo的結(jié)構(gòu),上下結(jié)構(gòu),我們可以用一個(gè)容器,將其包裹(就是所謂的大盒子)。

  • 上方是個(gè)導(dǎo)航,上邊是個(gè)ul,下面我們就可以用兩個(gè)div,寬度的100%,高度自定義。

  • 接下來我們就來開啟和模型,記住一定的父盒子哦!display:flex;,那么怎么上下分呢?在繼續(xù)添加 flex-wrap: wrap;就是上下分離了,是不是很方便。

  • 接下來就是下邊部分了,div里嵌套了ul,而且ul的高度好理解,是div的高度,那么ul多少寬呢?,可以無限寬?。?! 我們讓ul的寬度是3000px

  • 我們接下來放li,你一看,li里面的也是上下結(jié)構(gòu),所以呢,嘿嘿!li是不是也要開啟flex呀 flex-wrap: wrap;。上方div是放img,下邊一個(gè)a標(biāo)簽。

  • 記住哦,li用浮動(dòng)起來哦!并考慮overflow:hidden放在那里

動(dòng)畫效果

  • 我們有五張圖片,我們現(xiàn)在讓它從右向左移動(dòng)。那么我們叫ul移動(dòng),帶動(dòng)li移動(dòng)是不是可以。

  • 我們用@keyframes改變ul的left的值,但是問題來了,我放五張圖片,ul移動(dòng),右邊就沒了,空白了。腫么辦???

  • 我們是不是可以將五個(gè)li,在后面再復(fù)制一份,放在后邊呀。 答案是可以的!!當(dāng)我們的left正好將第一組li,移除,那么第二組就剛好不上來。那么我們用 animation: run 20s linear infinite;無限循環(huán)是不是就好了。

css部分代碼

* {
    margin: 0;
    padding: 0;
}

a {
    text-decoration: none;
}

.box-big {
    position: absolute;
    display: flex;
    left: 50%;
    top: 50%;
    border: 1px solid #9FD6FF;
    transform: translate(-50%, -50%);
    width: 707px;
    height: 170px;
    /* background-color: pink; */
    flex-wrap: wrap;
    overflow: hidden;
}

.box-top {
    width: 707px;
    height: 30px;
    border-bottom: 1px solid #9FD6FF;
    background-color: #FEFEFE;
}

.div-bottom {
    width: 707px;
    height: 136px;
    /* background-color: darkgoldenrod; */
    overflow: hidden;
}

.st-icon-android {
    display: inline-block;
    width: 15px;
    height: 15px;
    background-image: url(../img/hd.gif);
    margin: 8px;
}

h6 {
    position: absolute;
    top: 6PX;
    left: 30px;
    color: #307DD1;
}

ul {
    position: absolute;
    left: 90px;
    width: 3000px;
    height: 100%;
    animation: run 20s linear infinite;
}

li {
    list-style: none;
    float: left;
    width: 140px;
    height: 100%;
    margin: 0 5px 0 5px;
    /* background-color: gold; */
    flex-wrap: wrap;
}

.photo {
    margin-top: 5px;
    width: 140px;
    height: 105px;
    text-align: center;
    /* background-color: springgreen; */
}

p {
    text-align: center;
}

img {
    cursor: pointer;
}

@keyframes run {
    0% {
        left: 0;
    }
    100% {
        left: -745px;
    }
}

關(guān)于“flex布局如何實(shí)現(xiàn)無縫滾動(dòng)”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI