溫馨提示×

溫馨提示×

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

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

CSS Flex 布局如何實現(xiàn)無縫滾動

發(fā)布時間:2020-07-21 14:47:55 來源:億速云 閱讀:629 作者:Leah 欄目:web開發(fā)

CSS Flex 布局如何實現(xiàn)無縫滾動?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

本文主要介紹了flex布局實現(xiàn)無縫滾動的示例代碼,分享給大家,具體如下:

案例的演示

CSS Flex 布局如何實現(xiàn)無縫滾動

flex布局

所謂flex布局就是彈性盒布局,這種布局在移動端比較常用,但隨著瀏覽器的版本更新,flex布局因為自身的優(yōu)點,日漸常用。

思路:

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

  • 上方是個導航,上邊是個ul,下面我們就可以用兩個p,寬度的100%,高度自定義。

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

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

  • 我們接下來放li,你一看,li里面的也是上下結構,所以呢,嘿嘿!li是不是也要開啟flex呀 flex-wrap: wrap;。上方p是放img,下邊一個a標簽。

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

動畫效果

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

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

  • 我們是不是可以將五個li,在后面再復制一份,放在后邊呀。 答案是可以的??!當我們的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;
}

.p-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;
    }
}

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

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

AI