当前位置:首页 > 日记 > 正文

JS实现仿UC浏览器前进后退效果的实例代码

JS实现仿UC浏览器前进后退效果的实例代码

测试浏览器为谷歌浏览器(谷歌toggle device toolbar)

var startx, starty, endx, endy, moveX, moveY, seatX, seatY; var clickState = false; //获取输入框dom元素 var text = document.forms[“form”]; //设置样式 function setCss(obj) { var cssStr = “z-index:5;width:37px;height:37px;position:absolute;left:” + seatX + ‘px;top:' + seatY + ‘px;'; //将样式添加到div上,显示div obj.style.cssText = cssStr;}//计算位置 function setPosition(obj) { if (obj == ‘left') { seatX = text.offsetLeft - 37; //横坐标 } else { seatX = text.offsetLeft + text.offsetWidth; //横坐标 } seatY = (text.offsetTop + text.offsetHeight) / 2; //纵坐标 } //创建DIV function createDiv(obj) { //首先创建div var descDiv = document.createElement(‘div'); document.body.appendChild(descDiv); //给div设置样式,比如大小、位置 setPosition(obj); setCss(descDiv); descDiv.innerHTML = ”; descDiv.id = obj; descDiv.style.display = ‘block'; addElementImg(descDiv.id); } //添加IMG function addElementImg(obj) { var div = document.getElementById(obj); //添加 img var img = document.createElement(“img”); //设置 img 属性,如 id img.setAttribute(“id”, “newImg”); //设置 img 图片地址 img.src = “/Themes/TheThemeMachine/Images/” + obj + “.webp”; div.appendChild(img); } //删除DIV function removeDiv(obj) { var el = document.getElementById(obj); el.parentNode.removeChild(el); } //移动DIV function moveDiv(obj, movex) { if (Math.abs(movex) < 37) { var div = document.getElementById(obj); setPosition(obj); seatX = seatX + movex; setCss(div); } } //根据位移改变DIV的位置 function reductionDiv(obj) { var div = document.getElementById(obj); setPosition(obj); setCss(div); } //计算移动坐标 function calculationMoveCoordinate() { moveX = endx - startx; moveY = Math.abs(endy - starty); if (moveX > 0) moveDiv(“left”, moveX); else moveDiv(“right”, moveX); } //判断是否是PC端 function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = new Array(“Android”, “iPhone”, “SymbianOS”, “Windows Phone”, “iPad”, “iPod”); var flag = true; for (var v = 0; v < Agents.length; v++) { if (userAgentInfo.indexOf(Agents[v]) > 0) { flag = false; break; } } return flag; } //PC端鼠标按下 function click() { clickState = true; startx = event.clientX; starty = event.clientY; } //PC端鼠标移动 function pull() { if (1 == event.which) //判断左键是否按下 { endx = event.clientX; endy = event.clientY; calculationMoveCoordinate(); } } //PC端和移动端位移结束 function stopClick() { if (Math.abs(moveX) > 37 && moveY < 20) { if (moveX < 0) { history.(1); } else { history.(-1); } } else { reductionDiv(“left”); reductionDiv(“right”); } } ////移动端注册事件 document.addEventListener(‘touchmove', function (event) { event.preventDefault(); }, false); //touchstart事件 function touchSatrtFunc(evt) { //evt.preventDefault(); //阻止触摸时浏览器的缩放、滚动条滚动等 var touch = evt.touches[0]; //获取第一个触点 startx = Number(touch.pageX); //页面触点X坐标 starty = Number(touch.pageY); //页面触点Y坐标 }//touchmove事件,这个事件无法获取坐标 function touchMoveFunc(evt) { //evt.preventDefault(); //阻止触摸时浏览器的缩放、滚动条滚动等 var touch = evt.touches[0]; //获取第一个触点 endx = Number(touch.pageX); //页面触点X坐标 endy = Number(touch.pageY); //页面触点Y坐标 calculationMoveCoordinate(); }//touchend事件 function touchEndFunc(evt) { //evt.preventDefault(); //阻止触摸时浏览器的缩放、滚动条滚动等 stopClick(); }//加载 if (IsPC()) { document.onmousedown = click; document.onmousemove = pull; document.onmouseup = stopClick; } else { document.addEventListener(‘touchstart', touchSatrtFunc, false); document.addEventListener(‘touchmove', touchMoveFunc, false); document.addEventListener(‘touchend', touchEndFunc, false); } createDiv(‘left'); createDiv(‘right');

以上所述是小编给大家介绍的JS实现仿UC浏览器前进后退效果的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

相关文章

windows 8 IIS7上面HTTP转向

windows 8 IIS7上面HTTP转向

转向,电脑软件,windows,HTTP,IIS7 HTTP 重定向&ldquo;HTTP 重定向&rdquo;支持将用户请求重定向到特定目标。当您希望可能使用某个 URL 的客户实际在另一个 URL 处停止时,请使用 HTTP 重定向。从重命名您的网站、到克服难以拼写的域名或者强…

windows server 2003配置asp.net4.

windows server 2003配置asp.net4.

网站,问题解决方案,配置,找不到,该页,突然想学一下windows server服务器系统,可无奈在网上找不windows server 2008只得在2003上玩了。可没有想到第一次部署一个网站却也遇到了不少问题。所以将问题一一记录下来。1、在IIS6下新建一个网站就…

Excel中带数据标识簇状柱形图的操

Excel中带数据标识簇状柱形图的操

数据,标识,操作方法,方法,中带,  柱形图是excel使用中常用的图形之一,它有多种形状,其中簇状柱形图主要用来直观的展示数据的差值大小。如何制作带数据标识的簇状柱形图,今天,小编就教大家在Excel中带数据标识簇状柱形图的操作方法,希望对你有…

深入理解Angular.JS中的Scope继承

深入理解Angular.JS中的Scope继承

继承,电脑软件,Angular,JS,Scope,前言AngularJS中scope之间的继承关系使用JavaScript的原型继承方式实现。本文结合AngularJS Scope的实现以及相关资料谈谈原型继承机制。下面来看看详细的介绍:基本原理在JavaScript中,每创建一个构造函数(con…

关于jQuery中fade | ,show | 起始

关于jQuery中fade | ,show | 起始

发现,位置,电脑软件,jQuery,fade,最近在鼓弄主页的时候想要添加一个音乐播放的插件,暂时使用网易与音乐外链播放器,效果是在右下角弹出和消失,于是问题来了:show()和fade()函数是用来显示或者隐藏元素的函数,可以为其传入时间参数,使得函数在多少…

ps怎么快速删除隐藏图层和空白图层

ps怎么快速删除隐藏图层和空白图层

图层,删除,空白,快速,电脑软件,ps文件中有隐藏图层和空白图层,这些隐藏的图层会增加PSD文档的大小增加缓存占用,反正那些图层暂时也用不到,还是删除比较好,信我们就来看看详细的教程。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:1…

three.js加载obj模型的实例代码

three.js加载obj模型的实例代码

模型,实例代码,加载,电脑软件,js,three.js是一款webGL框架,由于其易用性被广泛应用。如果你要学习webGL,抛弃那些复杂的原生接口从这款框架入手是一个不错的选择。好了,下面通过一段代码给大家介绍three.js加载obj模型,具体代码如下所示:<!DOCTY…

关于AngularJs数据的本地存储详解

关于AngularJs数据的本地存储详解

数据,本地存储,详解,电脑软件,AngularJs,第一、创建一个factory来储存和调取你的数据(你可以单独创建一个js文件,按照语义命名如:dataService.js。然后在你的主页面引入这个JS文件)<!--引入到你的主页面里面--><script src="dataService.js…

ES6中Class类的静态方法实例小结

ES6中Class类的静态方法实例小结

静态方法,实例,电脑软件,Class,本文实例讲述了ES6中Class类的静态方法。分享给大家供大家参考,具体如下:以前看过的es6的东西,又忘了,再总结下:类相当于实例的原型,所有在类中定义的方法,都会被实例继承。如果在一个方法前,加上static关键字,就表示…

教你如何巧妙设定匿名FTP的安全

教你如何巧妙设定匿名FTP的安全

教你如何,巧妙,电脑软件,FTP,在网络上,匿名FTP是一个很常用的服务,常用于软件下载网站,软件交流网站等,为了提高匿名FTP服务开放的过程中的安全性,我们就这一问题进行一些讨论。  以下的设定方式是由过去许多网站累积的经验与建议组成。我们认…

vue之nextTick全面解析

vue之nextTick全面解析

电脑软件,vue,nextTick,简介vue是非常流行的框架,他结合了angular和react的优点,从而形成了一个轻量级的易上手的具有双向数据绑定特性的mvvm框架。本人比较喜欢用之。在我们用vue时,我们经常用到一个方法是this.$nextTick,相信你也用过。我常…

WEB服务器系统盘权限简单设置

WEB服务器系统盘权限简单设置

系统盘,服务器,权限,设置,简单,其实网上已经很多这样的文章了,但是我遇到的情况用网上的方法不好用,这几天弄我那服务器弄的脑袋都大了,总出问题 昨天ASP又连接不到MDB了,在网上找了好多资料 问了好多人,最开始时候先是把ASP程序问题排除…