关于大图片居中显示~适应移动端

今天修改项目的时候碰到一个问题,移动端点击小图片后,打开一个大图片显示;由于这个大图片的比例是不确定的,所以如何显示就成了一个问题。

最初的这个功能是设置了一个css3的属性,然后在Android手机上出了问题,

-webkit-align-self: center;
-ms-flex-item-align: center;
align-self: center;

然后我查了一下这个属性:

因为版本的原因,一些Android机没法使用这个属性。

我找了找居中显示的资料,看了看百度图片的图片显示方法,发现他们是每个图片做了计算大小,然后显示;想来想去也只能借助js了。

首先使用table方式足以做出图片居中显示

<div class="box">
     <div class="table">
         <div class="td">
             <img src="dmn.png" alt="">
         </div>
     </div>
</div>
*{
    margin: 0px;
    padding: 0px;
}
.box{
    width: 300px;
    height: 300px;
    border: 2px solid #ccc;
}
.table{
    display: table;
    width: 100%;
    height: 100%;
}
.td{
    display: table-cell;
    vertical-align: middle;
    text-align: center;
}

接下来在手机上显示,想着大图片在小屏手机上也能显示完全,而且根据长宽比显示完整,就需要js判断一下。

// 判断图片大小-不同图片大小在不同的屏幕上的显示
          var w = $(".box").width();
          var h = $(".box").height();
          $(".box img").each(function(){
            var imgW = $(this).width();
            var imgH = $(this).height();
            if(imgH/imgW > h/w && imgH>=h){
              $(this).height(h);
            }else if(imgH/imgW <= h/w && imgW>=w) {
              $(this).width(w);
            }
          })

用jq写的,去百度的公共资源库(http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js)加载一个就好,很方便。

技术有限,东西很简单,主要是抱着交流的心态;也希望能给新手朋友们提供一些思路。

欢迎批评指正,有更好的想法多多交流~

时间: 2024-12-05 09:25:56

关于大图片居中显示~适应移动端的相关文章

图片大小不改动,根据屏幕大小自动把图片居中显示

background属性 background-image: url('../img/1_1.jpg'); <!-- 背景图片路径 --> background-repeat: no-repeat; <!-- 背景图片是否重复显示 --> background-position: center; <!-- 若背景图片小于div,则居中显示 --> background-attachment: fixed; <!-- 背景图片固定,不随scroll拖动而变动 --&

html基础 img标记 设置图片的宽度和边框 利用div使图片居中显示

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

HTML中使图片居中显示

注:imageId为图片id<style type="text/css"> #imageId{ display:block; position:relative; margin:auto; } </style>

图片居中显示

h1 {   position: relative;   z-index: 2;   border: solid red 5px;   width: 540px;   height: 0;   margin: 110px auto 15px;   padding: 230px 0 0;   overflow: hidden;   xxxxborder: 1px solid;   background-image: url(/aone2/images/error/404_2.jpg?_av_=12

图片居中显示-1

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

微信小程序,图片居中显示,适配不同机型

<view style='width:100%;height:100%;text-align:center;' class="picture-2"> <image style='width:94.5%;' class="infoImage" src="/pages/image/2.jpg" mode='widthFix'></image> <view> 原文地址:https://www.cnblog

Android开发教程--设置ImageView图片的显示比例

为适应不同屏幕的手机,ImageView图片的显示比例,可以使用android:scaleType属性来处理,处理方式的有以下几种: 1.在xml配置中使用:android:scaleType="centerCrop" 2.在代码中使用:   imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); ScaleType的值分别代表的意义:ImageView是Android中的基础图片显示控件,该控件有个重要的属性是ScaleTyp

Android调用系统相机、自定义相机、处理大图片

Android调用系统相机和自定义相机实例 本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显示出来,该例子也会涉及到Android加载大图片时候的处理(避免OOM),还有简要提一下有些人SurfaceView出现黑屏的原因. Android应用拍照的两种方式,下面为两种形式的Demo展示出来的效果.    知识点: 一.调用系统自带的相机应用 二.自定义我们自己的拍照界面 三.关于计算机解析图片原理(如何正确加载图片到Android应用中) 所需

Android:属性scaleType与图片的显示

ImageView是Android中的基础图片显示控件,该控件有个重要的属性是ScaleType,该属性用以表示显示图片的方式, 共有8种取值 matrix 用矩阵来绘制(从左上角起始的矩阵区域) fitXY 把图片不按比例扩大/缩小到View的大小显示(确保图片会完整显示,并充满View) fitStart 把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置(图片会完整显示) fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示(图片会完整显示) fitEnd