博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js的history
阅读量:5884 次
发布时间:2019-06-19

本文共 1614 字,大约阅读时间需要 5 分钟。

今天写页面的时候遇到一个问题,需求是开发一个手机站,由于各种原因 ,且用了滑屏的插件,因此在最开始定义了用户端不可缩放,

但是遇到一个功能 查看大图,一般的用户操作习惯是通过双指捏合的方式缩放,因此想了以下几种方案

1、利用js插件来判断手势 ,获取手势后更改图片和遮罩层大小

http://www.cnblogs.com/iamlilinfeng/p/4239957.html

这篇文章里介绍该插件的具体用法,经过5s测试  发现比较实用,但是考虑到插件用起来兼容性较差,且时间也不够,于是没来得及运用;

2.为图片设置链接   通过a标签链接到大图的服务器地址, 经测试,在手机浏览器里点击后可以查看大图,且支持缩放(新页面,默认支持缩放),同时,返回时,原来的页面保留原状态,这里要说一下,因为整个手机站是单页面,通过滑屏浏览所有内容,因此浏览器返回后,如果页面不刷新是最好的,因为可以保留之前的浏览屏,但是在微信里测试的时候,问题来了,因为打开图片后 在屏幕左侧拖拽实现返回的时候,微信内置浏览器是默认刷新元页面的,不能保留之前的浏览状态,那么用户又要从第一屏滑到之前的屏,这个体验太差了,于是又基于此目的找了下判断微信浏览器的js代码,

微信客户端

微信客户端                // var his_index=window.history.length;                // var ini_index=0;                // var wx=is_weixn();                // function is_weixn(){
// var ua = navigator.userAgent.toLowerCase(); // if(ua.match(/MicroMessenger/i)=="micromessenger") {
// return true; // } else {
// return false; // } // } // if(wx&&(his_index==2)){
// ini_index=9; // }

初次访问时,history 肯定为1  点返回时肯定为2(仅限于这个特殊项目内)但是太笨了 而且操作习惯太隐蔽 ,被否了

3.在点击图片后开启页面的缩放限制  

var viewport = document.querySelector("meta[name=viewport]");                console.log(viewport);                     viewport.setAttribute('content', 'user-scalable=yes');

但是插入后问题就来了,缩放是可以的 ,但是缩放没有还原的情况下点击关闭遮罩层 ,那么显示效果就特别差,视窗直接变了,而且问题太多了,体验太差

4 最后实现的比较简单的思路就是给一个可滚动的div 让用户自己在里面拖

 

转载于:https://www.cnblogs.com/jingjingpeng/p/4723671.html

你可能感兴趣的文章
webpack资料
查看>>
DotNet加密方式解析--散列加密
查看>>
OpenSSL使用2(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12概念说明)(转)
查看>>
win 下 apache 虚拟主机配置方式
查看>>
第十一篇:基于TCP的一对回射客户/服务器程序及其运行过程分析( 下 )
查看>>
【HDU1219】AC Me(水题)
查看>>
【前端】:HTML
查看>>
从JDBC程序看为什么需要Mybatis
查看>>
ZOJ 1403&&HDU 1015 Safecracker【暴力】
查看>>
更新软件
查看>>
Windows10锁屏壁纸提取
查看>>
SSM框架——使用MyBatis Generator自动创建代码
查看>>
Logstash之Logstash inputs(file和redis插件)、Logstash outputs(elasticsearch 和redis插件)和Filter plugins...
查看>>
利用struts2<s:token>标签防止用户重复提交
查看>>
局域网基本原理与广域网基本原理
查看>>
java数据库操作:JDBC的操作
查看>>
Codeforces Round #247 (Div. 2) D. Random Task
查看>>
解决Ubuntu下博通网卡驱动问题
查看>>
怎样给ExecutorService异步计算设置超时
查看>>
C#高级编程五十七天----位数组
查看>>