h5移動(dòng)端,類似qq空間、朋友圈不規(guī)則圖片顯示適配功能

前言

最近再做個(gè)H5移動(dòng)端社交類型項(xiàng)目的時(shí)候,里面有一塊 類似朋友圈、qq空間展示的模塊,開發(fā)的時(shí)候發(fā)現(xiàn)了一個(gè)問題,就是展示用戶上傳的圖片,因?yàn)橛脩羯蟼鞯膱D片 可能是相機(jī)拍的,可能是截圖、可能是網(wǎng)上找的,但是這樣會(huì)存在一個(gè)圖片不規(guī)則的問題,因?yàn)槲覀兪切枰故究s略圖的,如果圖片的尺寸不滿足我們的要求,我們既不能 設(shè)置高寬為100%,因?yàn)檫@樣可能會(huì)存在圖片拉伸、擠壓的情況;如下是我的解決方法。

不規(guī)則素材

效果圖

image.png

主要代碼

主要html

<!-- _1_2 圖片顯示數(shù)量為1-2張的樣式   _3_9 圖片顯示數(shù)量為3-9張的樣式 -->
            <div class="img_body _3_9">
                <div class="img_ctx">
                    <img src="imgs/test2.png" alt="">
                </div>
                <div class="img_ctx">
                    <img src="imgs/test_phone.png" alt="">
                </div>
                <div class="img_ctx">
                    <img src="imgs/test_phone.png" alt="">
                </div>
                <div class="img_ctx">
                    <img src="imgs/test2.png" alt="">
                </div>
                <div class="img_ctx">
                    <img src="imgs/test_phone.png" alt="">
                </div>
                <div class="img_ctx">
                    <img src="imgs/test_phone.png" alt="">
                </div>
                <div class="clear"></div>
            </div>

主要css

            .img_body .img_ctx {
                display: block;
                float: left;
                border-radius: 5px;
                box-shadow: 0px 2px 5px 0px rgba(6, 190, 188, 0.2);
                background-position: center center;
            }
            .img_body .img_ctx img{display: none;}


            .img_body._1_2 .img_ctx {
                width: 49%;
                margin-right: 2%;
                margin-top: 2%;
            }
            .img_body._1_2 .img_ctx:nth-child(2) {
                margin-right: 0;
            }
            
            .img_body._3_9 .img_ctx {
                width: 32.5%;
                margin-right: 1.25%;
                margin-top: 1.25%;
            }
            .img_body._3_9 .img_ctx:nth-child(3){margin-right: 0;}
            .img_body._3_9 .img_ctx:nth-child(6){margin-right: 0;}
            .img_body._3_9 .img_ctx:nth-child(9){margin-right: 0;}

主要js

        $(function(){
            //獲取所有沒處理的 img
            $.each($('.img_ctx img'),function(i,v){
                //獲取包裹img的div
                var $img_parent= $(v).parent();
                //設(shè)置這個(gè)div的高度
                $img_parent.height($img_parent.width());
                //設(shè)置背景圖為 當(dāng)前的img
                $img_parent.css({backgroundImage:'url('+$(v).attr('src')+')'}) 
                
                //如果圖片長寬一樣 則設(shè)置寬度百分之百
                if($(v).width()==$(v).height()){
                    $img_parent.css({backgroundSize:'100% 100%'}) 
                }
                
                //如果寬大于高 高度100%
                if($(v).width()>$(v).height()){
                    //縮略百分比后的寬度
                    var _width=$(v).width()*($img_parent.width()/$(v).height());
                    $img_parent.css({backgroundSize: _width +'px 100%'}) 
                }else{//寬度 100%
                    $img_parent.css({backgroundSize:'100%'}) 
                }
                
                //處理完圖片后 把 img刪掉,代表這個(gè)img已經(jīng)處理過了
                $(v).remove();
            }) 
        })
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 點(diǎn)擊查看原文 Web SDK 開發(fā)手冊(cè) SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 14,283評(píng)論 0 15
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 28,774評(píng)論 1 45
  • 社交網(wǎng)絡(luò)日新月異,需要更快,更靈活的技術(shù)架構(gòu)才能滿足用戶日益豐富的媒體需求,Hybrid App架構(gòu)具備了快速發(fā)布...
    架構(gòu)師ArchSummit閱讀 1,211評(píng)論 0 5
  • 加班到深夜,一個(gè)人在諾大的辦公室。 突然特別想念她,那個(gè)唯一會(huì)對(duì)我溫柔的女人。 不知道是最近的壓力、委屈、或者是其...
    墨跡女王閱讀 476評(píng)論 0 1
  • 首先類別跟擴(kuò)展都可以添加新的方法,擴(kuò)展或者說是一種默認(rèn)的類別,不需要添加名稱形如@interface NSObje...
    miliPolo閱讀 1,667評(píng)論 1 2

友情鏈接更多精彩內(nèi)容