JS+CSS實現圖片預加載與背景圖上中下切圖

圖片預加載

為什麼使用圖片預加載

為什麼會考慮使用圖片預加載呢?你是否曾有個網站,在那個網站你要滾動你的導航然後有個延遲直到圖片被加載完……預加載將在這方面幫助你。

它將在頁面加載的時候加載那些圖片並將其存儲在瀏覽器的緩存裡面。這樣當用戶滾動導航的時候,很漂亮而且流暢,沒有延遲。

下面整理常用的圖片預加載:

1.使用純的css進行圖片預加載

body:after {
    content: "";
    display: block;
    position: absolute;
    background:
    url("../image/manage/help/01.png") no-repeat -10000px -1000px,
    url("../image/manage/help/02.png") no-repeat -10000px -1000px,
    url("../image/manage/help/03.png") no-repeat -10000px -1000px,
    url("../image/manage/help/04.png") no-repeat -10000px -1000px,
    url("../image/manage/help/05.png") no-repeat -10000px -1000px,
    width: 0;
    height: 0
}

2.使用純javascript進行圖片預加載

(function(){
    var imgSrcArr = [
        'image/1.png',
        'image/2.png',
        'image/3.png',
        'image/4.png',
        'image/5.png',
        'image/6.png',
        'image/7.png'
    ];
    var imgWrap = [];
    function preloadImg(arr) {
        for(var i =0; i< arr.length ;i++) {
            imgWrap[i] = new Image();
            imgWrap[i].src = arr[i];
        }
    }
    setTimeout(function(){preloadImg(imgSrcArr)},5000)
}());

3.使用css+js方式進行圖片預加載

css

.preload-img:after{
    content: "";
    display: block;
    position: absolute;
    background:
    url("../image/manage/help/01.png") no-repeat -10000px -1000px,
    url("../image/manage/help/02.png") no-repeat -10000px -1000px,
    url("../image/manage/help/03.png") no-repeat -10000px -1000px,
    url("../image/manage/help/04.png") no-repeat -10000px -1000px,
    url("../image/manage/help/05.png") no-repeat -10000px -1000px,
    width: 0;
    height: 0
}

js

/*
    比如我們寫瞭上面的這樣一個類,但是頁面中沒有用到,我們在文檔加載完畢之後,給某個元素添加該類
*/
 $("#target").addClass("preload-img")

背景圖上中下切圖方案

工作中經常會遇到將背景圖切為三個部分: 上部、中部、下部。

上部和下部:上部和下部使用容器的多背景圖實現。

中部:使用絕對定位容器的方式解決。

html部分:

<section class="content-wrap">
     <div class="line-wrap">
     </div>
     <p>我是內容</p>
</section>

css部分:

.content-wrap{
    position: relative;
    background:url('/images/top-bg.png') left top no-repeat,
    url('/images/bottom-bg.png') left bottom no-repeat;
    background-size:100% auto;
    .line-wrap{
        position: absolute;left:0;top:4.8rem;bottom:2.73rem;z-index:-1;
        width:100%;
        background:url('/images/middle-bg.png') left top repeat-y;
        background-size:100% auto;
    }
}

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: