移动端H5一些小坑(持续更新)
来源:互联网 发布:矩阵优化 编辑:程序博客网 时间:2024/06/05 10:37
目录
- 目录
- 前言
- audio标签问题
- video标签问题
- 视频格式
- ios11 下功能不可用
- app里面不能控制随心所欲的控制视频的播放和暂停
- 弹出键盘问题
- 获取文档滚动高度
前言
当下移动端横行,平常我们做一些移动端的项目,接触最多的就是H5,虽然做移动端不用兼容IE,但是我们要兼容微信、app、ios、android... 今天就给写几个平常开发经常会遇到的问题以及解决办法。初入前端,若有不足 欢迎指正!
1.audio标签问题
一般要添加背景音乐的话,我们的第一反应就是使用audio标签,但是这里有一个坑。如果你的项目是一进页面就要播放音乐的话,audio标签在 微信端是不生效的。 这时候我们可以添加如下代码:
document.addEventListener("WeixinJSBridgeReady", function () { audioAutoPlay(‘XXX’);//给一个全局函数 },false); //兼容ios微信不能一打开就播放音乐 function audioAutoPlay(id){ //全局控制播放函数 var audio = document.getElementById(id), play = function(){ audio.play(); document.removeEventListener(“touchstart”,play,false); }; audio.play(); document.addEventListener(“touchstart”,play,false); }
原理:
- 我们给一它一个全局的函数,自动执行一次就可以了。
2.video标签问题
说完audio,我们来说一下video。这个video有很多坑。
1. 视频格式。
这个很少出问题,不多解释,有问题一般都是编码格式不对,自己转换一下就可以了。
2. ios11 下功能不可用。
这个情况暂时我只是知道ios11系统有这个问题。解决方案也很简单:
弄一张缩略图放上去,控制播放和暂停的事件写在图片上面就能解决
3. app里面不能控制随心所欲的控制视频的播放和暂停。
解决办法:```javascript var video=$("#video")[0]; $("#video").click(function(){ if($(this).hasClass("pls")){ video.play(); }else{ video.pause(); } $("#video").toggleClass("pls") })```
如果出现这种情况的话,我们就不能使用系统自带的控制播放和暂停的功能了,需要我们自己封装一段控制播放和
暂停的方法出来。
3.弹出键盘问题
ios手机弹出键盘有时候会遮住输入框,给人一种很不爽的体验,但是这种情况很少出现。下面简单介绍一下解决办法:
keyboardEvent:function($footer,winHeight){ //这里默认软键盘的高度小于屏幕高度的二分之一 $(window).resize(function(){ var currentWinHeight = $(window).height(); if(isInputsFocus($(‘input’)) && currentWinHeight < winHeight/1.2){ //键盘弹出 $footer.hide() } if(currentWinHeight >= winHeight/1.2){ //键盘收起 $footer.show() } });}Var isInputsFocus = function($inputs){ if($inputs && $inputs.length > 0){ for(var i=0;i<$inputs.length;i++){ if($($inputs[i].is(“:focus”))){ return true } } return false } return false}
这段代码可以直接使用。
4.获取文档滚动高度
常用的获取方式是
document.documentElement.scrollTop
但是在手机上不生效。查了好久也不知道哪里有问题。后来偶然发现document.body.scrollTop
就生效了,但是PC又不行了,所以建议大家做一下判断
阅读全文
0 0
- 移动端H5一些小坑(持续更新)
- 一些小技巧,持续更新[C#]
- 一些小问题集锦,持续更新
- 一些小算法(持续更新)
- javascript一些小例子总结,持续更新...
- excel的一些小知识,持续更新
- ESP8266一些小知识(持续更新。。。)
- unity 一些小笔记 持续更新
- H5移动端页面一些坑总结1
- web app遇到的一些坑及小技能(持续更新...) 遇到的一些坑
- 一些小的算法(持续更新…………)
- sql语句的一些小积累 持续更新。。。
- linux 系统相关的一些小知识点(持续更新)
- javascript使用中的一些小功能总结(持续更新中)
- iOS开发中一些有用的小代码(持续更新)
- iOS开发中一些小功能代码(持续更新)
- 一些小问题的解决办法(持续补充更新)
- [持续更新]android stduio的一些小技巧
- 操作系统-最佳适应算法
- 菜鸟学习数据结构算法之路之快速排序
- ValueError: Only call `softmax_cross_entropy_with_logits` with named arguments (labels=..., logits=.
- 简述“自顶向下,逐步求精”——面向过程程序设计方法
- leetcode 659. Split Array into Consecutive Subsequences
- 移动端H5一些小坑(持续更新)
- HashMap的底层原理分析二
- 操作系统实验之处理机调度
- 数据结构--栈的基本操作
- Mysql| Mysql分组函数
- 如何避免内存泄漏?
- LeetCode 15. 3Sum
- ScrollView监听是否滑动到底部
- 自动化测试之页面元素组织