微信浏览器中弹窗高度适配

在微信浏览器中,分享弹窗高度适配,原理就是使弹窗高度由内容撑开,主要应用于分享内容为一张很长的图片时,当图片过长,在小屏手机上显示不完全时,等比缩小一定尺寸使其能完全显示,大屏手机则按照原图尺寸显示。

效果图如下:

实现过程如下:

1. html结构

<section v-show="isShare" class="canvas_share">
    <div class="share_wrap">
        <div id="canvas_area" class="top">
            <img class="share_bg" :src="groupInfo.sharePic" alt="">
            <img class="share_code" :src="qcode" alt="">
            <p>识别二维码,马上拼团</p>
        </div>
        <div class="bottom">
            <span>长按保存图片,分享好友参团</span>
            <img @click="closeShare" src="<?= $staticUrl.‘images/group/close.png‘ ?>" alt="">
        </div>
    </div>
</section>

2. css样式

.canvas_share {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 20;
    .share_wrap {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        -webkit-transform: translate(-50%, -50%);
        .top {
            width: 100%;
            height: 86%;
            position: relative;
            img.share_bg {
                width: 100%;
                height: 100%;
                position: absolute;
                left: 0;
                top: 0;
            }
            img.share_code {
                position: absolute;
                bottom: 7.8%;
                right: -6%;
                width: 54px;
                height: 54px;
                -webkit-transform: translateX(-50%);
                -moz-transform: translateX(-50%);
                -ms-transform: translateX(-50%);
                -o-transform: translateX(-50%);
                transform: translateX(-50%);
            }
            p {
                position: absolute;
                bottom: 2%;
                right: 4%;
                color: @color-white;
            }
        }
        .bottom {
            width: 100%;
            height: 14%;
            text-align: center;
            span {
                display: inline-block;
                color: @color-white;
                font-size: .15rem;
                font-weight: bolder;
                margin-top: .2rem;
            }
            img {
                float: right;
                width: .3rem;
                height: .75rem;
            }
        }
    }
}

3. js逻辑

以iphone6为基准,以下描述均已px为单位,设备物理像素高667*2,微信浏览器头部导航32*2,现设计稿要求弹窗内容为:头部分享图+bottom关闭按钮,总高度为1000+150=1150,我们需要计算两个比例,C1 = 弹窗总高度 /(设备物理像素高-微信浏览器头部导航高度); C2 = 弹窗总宽度 / 弹窗总高度,则适配逻辑如下:

var windowHeight = $(window).height(), shareWrapHeight, shareWrapWidth;
if (windowHeight > 弹窗总高度/2) {
    shareWrapHeight = 弹窗总高度/2 * C1;
    shareWrapWidth = 弹窗总高度/2 * C1 * C2;
} else {
    shareWrapHeight = windowHeight * C1;
    shareWrapWidth = windowHeight * C1 * C2;
}
$(‘.share_wrap‘).css({
    "width": shareWrapWidth + "px",
    "height": shareWrapHeight + "px"
})

原文地址:https://www.cnblogs.com/onlycare/p/9698507.html

时间: 2024-11-09 16:17:21

微信浏览器中弹窗高度适配的相关文章

微信浏览器中调用支付宝支付

众所周知,在微信浏览器中是无法唤起支付宝的,会提示请在浏览器中打开,如果非要在微信浏览器中调起支付宝的话,只能是跳出微信浏览器,关于这一点,在支付宝官网给出了一个例子.但是,话说回去,后来我仔细想想,其实真的没有必要非要在微信浏览器中调起支付宝支付(当时真是一根筋啊啊啊...) 支付宝手机网站支付的官方文档: https://doc.open.alipay.com/docs/doc.htm?treeId=203&articleId=105288&docType=1 快速接入: https:

在iOS微信浏览器中自动播放HTML5 audio(音乐)的2种正确方式

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"

部分安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法

前端JS中使用XMLHttpRequest 2上传图片到服务器,PC端和大部分手机上都正常,但在少部分安卓手机上上传失败,服务器上查看图片,显示字节数为0.下面是上传图片的核心代码: HTML <input type="file" id="choose" capture="camera" accept="image/*"> JavaScript var filechooser = document.getEleme

[JavaScript] js判断是否在微信浏览器中打开

用JS来判断了,经过查找资料终于实现了效果, function is_weixn(){     var ua = navigator.userAgent.toLowerCase();     if(ua.match(/MicroMessenger/i)=="micromessenger") {         return true;     } else {         return false;     } } 通过测试完全通过,无论是android 还是iphone,ipad

关于安卓手机在微信浏览器中无法调起相机的原因

最近功在做公司的一个项目,遇到安卓手机在微信浏览器中更换头像无法调起相机的问题,特来此记录一下. 1.微信没有相机权限,开启就行了. 2.〈input type=“file” accept=“image/*”/〉.图库和相机都能调起. 3.部分冷门手机因系统原因不开放调起相机的权限,无法解决. 原文地址:https://www.cnblogs.com/EassieLee/p/10625427.html

js判断是否是在微信浏览器中打开

// js判断是否是在微信浏览器中打开 function is_weixn(){ var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i)=="micromessenger") { return true; } else { return false; } } console.log(is_weixn()); 原文地址:https://www.cnblogs.com/Knowledge-is-i

微信浏览器中关闭网页

在微信内置浏览器中被访问的网页,可使用该JavaScript代码关闭当前网页. 主要使用场景: 微信用户在公众号会话中点击外链到达公众号的网页,在用户完成操作后,公众号(网页方)可调用此接口关闭当前网页窗口,使用户返回会话. 接口调用代码(JavaScript) WeixinJSBridge.invoke('closeWindow',{},function(res){ //alert(res.err_msg); }); 返回说明 返回值 说明 err_msg 关闭成功返回"close_windo

解决安卓微信浏览器中location.reload 或者 location.href失效的问题

出自:http://www.cnblogs.com/joshua317/p/6163471.html 在移动wap中,经常会使用window.location.href去跳转页面,这个方法在绝大多数浏览器中都不会 存在问题,但早上测试的同学会提出了一个bug:在安卓手机的微信自带浏览器中,这个是失效的,并没有跳转: 原来的代码: window.location.reload(location.href); 初步判断可能是缓存的问题,首先想到的解决办法就是在要跳转的url后面加个时间戳,告知浏览器

CSS - Select 标签在不同浏览器中的高度设置

当使用Select标签时,在不同浏览器中显示的高度不同,如何解决此问题: 解决方法链接:http://stackoverflow.com/questions/20477823/select-html-element-with-height Demo:http://jsfiddle.net/64px3yg5/1/ HTML: <select> <option>Here's one option</option> <option>here's another o