移动端H5开发问题记录

1. 当弹出键盘时,会改变页面高度,影响页面样式

通过window.onsize事件可以控制键盘弹出或消失的时候的样式 

    var h = document.body.scrollHeight  // 用onresize事件监控窗口或框架被调整大小,先把一开始的高度记录下来
    window.onresize = function () { // 如果当前窗口小于一开始记录的窗口高度,那就让当前窗口等于一开始窗口的高度
    // alert("h:" + h + "; <br> height:" + document.body.scrollHeight)
      if (document.body.scrollHeight < h) {
        document.body.style.height = h + "px"
      }
    }

2. H5无法控制手机横屏的操作(安卓和ios可以),为了避免某些情况下横屏,解决方案如下

(function noTransformX(){
    var orientation=window.orientation;
    var pd = null;
    function createPd(){
        if(document.getElementById(‘preventTran‘) === null){
            var imgData = ‘data:image/png;base64,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‘;
            pd = document.createElement(‘div‘);
            pd.setAttribute(‘id‘,‘preventTran‘);
            pd.style.position = ‘fixed‘;
            pd.style.left = ‘0‘;
            pd.style.top = ‘0‘;
            pd.style.width = ‘100%‘;
            pd.style.height = ‘100%‘;
            pd.style.overflow = ‘hidden‘;
            pd.style.backgroundColor = ‘#2e2e2e‘;
            pd.style.textAlign = ‘center‘;
            pd.style.zIndex = ‘99999‘;
            document.getElementsByTagName(‘body‘)[0].appendChild(pd);
            var img = document.createElement(‘img‘);
            img.src = imgData;
            pd.appendChild(img);
            img.style.margin = ‘60px auto 30px‘
            var br = document.createElement(‘br‘);
            var p = document.createElement(‘p‘);
            p.style.width = ‘100%‘;
            p.style.height = ‘auto‘;
            p.style.fontSize = ‘22px‘;
            p.style.color = ‘#626262‘;
            p.style.lineHeight = ‘34px‘;
            p.style.textAlign = ‘center‘;
            p.innerHTML = ‘为了您的良好体验‘;
            p.appendChild(br);
            p.innerHTML += ‘请将手机/平板竖屏操作‘;
            pd.appendChild(p);
        }
    }
    if(orientation==90||orientation==-90){
        if(pd == null && document.getElementById(‘preventTran‘) === null) createPd();
        document.getElementById(‘preventTran‘).style.display = ‘block‘;
    }
    window.onorientationchange=function(){
        if(pd == null && document.getElementById(‘preventTran‘) == null) createPd();
        document.getElementById(‘preventTran‘).style.display=‘none‘;
        noTransformX();
    };
})();

参考自: https://www.cnblogs.com/hanguozhi/p/7405840.html

原文地址:https://www.cnblogs.com/zhuxingqing/p/12082888.html

时间: 2024-11-13 09:59:11

移动端H5开发问题记录的相关文章

移动端 h5开发相关内容总结——CSS篇

移动端 h5开发相关内容总结——CSS篇 标签: css移动 2016-01-06 15:59 5536人阅读 评论(3) 收藏 举报  分类: HTML+CSS(17)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 1.移动端开发视窗口的添加 h5端开发下面这段话是必须配置的 <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=n

移动端 h5 开发相关内容总结——JavaScript 篇

1.改变页面标题的内容 有时候我们开发 h5页面的时候需要动态的去更新title 的名字,这个时候使用 document.titile='修改后的名字'; 就可以解决我们的问题. 或者使用 //当前firefox对 title 参数不支持 history.pushstate(state,title,url); 这种方法不仅能够修改 title 而且能够修改 url 的值,并且将这些信息存储到浏览器的历史堆栈中,当用户使用返回按钮的时候能够得到更加好的体验. 当我们在做一个无刷新更新页面数据的时候

移动端 h5开发相关内容总结(三)

之前写过两篇开发中遇到的问题和解决方案.当时是CSS 和 JavaScript 分开写的.现在写这篇文章的时候感觉很多内容都是有内在联系的,所以不好分开. 给大家分享一下这半年来的感受吧: 知道和理解之间是有很大距离的.别人谈到一个知识点,能接上嘴并且能发表一下自己的意见,这叫知道.遇到问题能够想到用什么知识点解决问题,这叫理解. 所以有很多知识点自己确实在书上都看到过但是在平时遇到问题的时候却不知道怎么去用或者说想到去用,有时候会有同事给一下指导说用什么解决问题.关键时候还是多看(看书,看别人

转---移动端 h5开发相关内容总结——CSS篇

作者:伯乐在线专栏作者 - zhiqiang21 如有好文章投稿,请点击 → 这里了解详情 如需转载,发送「转载」二字查看说明 1.移动端开发视窗口的添加 h5端开发下面这段话是必须配置的 meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> 其它相关配置内容如下: width viewport 宽度(数值/device-width) heig

移动端h5开发相关内容总结css篇--自己总结

原文参考http://mp.weixin.qq.com/s/Nho2DHj-Y59j2F62vpN9jQ 1.开发移动端,头部必要的配置<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">(各属性值不在介绍,在开发中小米(2016年小米4)测试user-scalable=no是不起作用的)2.rem的使用设置根节点的font-size,开发

移动端H5开发 (滑动事件)

最近一直在做手机App H5的开发,在开发过程中,经常会遇到很多滑动事件,写个demo,分享自己的一些写法.(如写的不好,轻喷!) 直接贴代码 html css代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>touch demo</title> <style type="text/css"> #demo{

移动端H5开发入门

零.一些资料 1. http://www.w3school.com.cn/h.asp 2. http://www.imooc.com/learn/33     # 感觉这个还是有些难度的,可以看一些其他的视频资料."慕课网"  nice~ 一.前言 首先声明一下自己吧.对JS和CSS都属于.马马虎虎的那种.昨天才发现 原来页面中的JS可以这样写. (function ( window ) {     function aax( str ) {         alert(str);  

web移动端h5开发--ios的坑

一号坑:ios上点击事件失效问题? 解决方法: 1.将 click 事件直接绑定到目标?元素(??即 .target)上2.将目标?元素换成 <a> 或者 button 等可点击的?元素3.将 click 事件委托到?????非 document 或 body 的??父级元素上4.给?目标元素加一条样式规则 cursor: pointer; 原文地址:https://www.cnblogs.com/wangchengb/p/11434377.html

移动端H5页面高清多屏适配方案

背景 开发移动端H5页面 面对不同分辨率的手机 面对不同屏幕尺寸的手机 视觉稿 在前端开发之前,视觉MM会给我们一个psd文件,称之为视觉稿. 对于移动端开发而言,为了做到页面高清的效果,视觉稿的规范往往会遵循以下两点: 1)首先,选取一款手机的屏幕宽高作为基准(以前是iPhone4的320×480,现在更多的是iphone6的375×667). 2)对于retina屏幕(如: dpr=2),为了达到高清效果,视觉稿的画布大小会是基准的2倍,也就是说像素点个数是原来的4倍(对iphone6而言: