测试浏览器为谷歌浏览器(谷歌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 + “.png”;
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.Go(1);
} else {
history.go(-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浏览器前进后退效果的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# js
# 浏览器前进后退效果
# JavaScript不刷新实现浏览器的前进后退功能
# javascript history对象(历史记录)使用方法(实现浏览器前进后退)
# 第一个
# 鼠标
# 滚动条
# 按下
# 小编
# 在此
# 给大家
# 左键
# 所述
# 给我留言
# 感谢大家
# 输入框
# 判断是否
# 疑问请
# 有任何
# 加载
# offsetLeft
# setPosition
# src
# offsetTop
相关文章:
建站之星后台密码如何安全设置与找回?
建站之星后台密码遗忘或太弱?如何重置与强化?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
网站制作的步骤包括,正确网址格式怎么写?
如何在景安云服务器上绑定域名并配置虚拟主机?
如何选择PHP开源工具快速搭建网站?
如何在Windows环境下新建FTP站点并设置权限?
如何在局域网内绑定自建网站域名?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
视频网站制作教程,怎么样制作优酷网的小视频?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
建站之星如何实现网站加密操作?
创业网站制作流程,创业网站可靠吗?
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
建站之星如何配置系统实现高效建站?
Swift中switch语句区间和元组模式匹配
家庭建站与云服务器建站,如何选择更优?
自助网站制作软件,个人如何自助建网站?
如何在腾讯云免费申请建站?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
网站制作服务平台,有什么网站可以发布本地服务信息?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
php json中文编码为null的解决办法
如何获取开源自助建站系统免费下载链接?
如何选择高效响应式自助建站源码系统?
电商网站制作价格怎么算,网上拍卖流程以及规则?
如何通过智能用户系统一键生成高效建站方案?
定制建站如何定义?其核心优势是什么?
如何自定义建站之星模板颜色并下载新样式?
内部网站制作流程,如何建立公司内部网站?
如何设计高效校园网站?
制作农业网站的软件,比较好的农业网站推荐一下?
营销式网站制作方案,销售哪个网站招聘效果最好?
北京网站制作网页,网站升级改版需要多久?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
建站VPS配置与SEO优化指南:关键词排名提升策略
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
建站之星后台密码遗忘如何找回?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
如何通过可视化优化提升建站效果?
学校建站服务器如何选型才能满足性能需求?
如何在万网自助建站平台快速创建网站?
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
如何在阿里云完成域名注册与建站?
*请认真填写需求信息,我们会在24小时内与您取得联系。