JS實現(xiàn)仿UC瀏覽器前進(jìn)后退效果的實例代碼
更新時間:2017年07月17日 14:08:50 作者:心之所向
這篇文章主要介紹了JS實現(xiàn)仿UC瀏覽器前進(jìn)后退效果的實例代碼,實現(xiàn)此功能前需要先測試下瀏覽器,具體實例代碼,大家參考下本文
測試瀏覽器為谷歌瀏覽器(谷歌toggle device toolbar)
var startx, starty, endx, endy, moveX, moveY, seatX, seatY;
var clickState = false;
//獲取輸入框dom元素
var text = document.forms[“form”];
//設(shè)置樣式
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; //橫坐標(biāo)
} else {
seatX = text.offsetLeft + text.offsetWidth; //橫坐標(biāo)
}
seatY = (text.offsetTop + text.offsetHeight) / 2; //縱坐標(biāo)
}
//創(chuàng)建DIV
function createDiv(obj) {
//首先創(chuàng)建div
var descDiv = document.createElement(‘div');
document.body.appendChild(descDiv);
//給div設(shè)置樣式,比如大小、位置
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”);
//設(shè)置 img 屬性,如 id
img.setAttribute(“id”, “newImg”);
//設(shè)置 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);
}
}
//根據(jù)位移改變DIV的位置
function reductionDiv(obj) {
var div = document.getElementById(obj);
setPosition(obj);
setCss(div);
}
//計算移動坐標(biāo)
function calculationMoveCoordinate() {
moveX = endx - startx;
moveY = Math.abs(endy - starty);
if (moveX > 0)
moveDiv(“l(fā)eft”, 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端鼠標(biāo)按下
function click() {
clickState = true;
startx = event.clientX;
starty = event.clientY;
}
//PC端鼠標(biāo)移動
function pull() {
if (1 == event.which) //判斷左鍵是否按下
{
endx = event.clientX;
endy = event.clientY;
calculationMoveCoordinate();
}
}
//PC端和移動端位移結(jié)束
function stopClick() {
if (Math.abs(moveX) > 37 && moveY < 20) {
if (moveX < 0) {
history.Go(1);
} else {
history.go(-1);
}
} else {
reductionDiv(“l(fā)eft”);
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坐標(biāo)
starty = Number(touch.pageY); //頁面觸點Y坐標(biāo)
}
//touchmove事件,這個事件無法獲取坐標(biāo)
function touchMoveFunc(evt) {
//evt.preventDefault(); //阻止觸摸時瀏覽器的縮放、滾動條滾動等
var touch = evt.touches[0]; //獲取第一個觸點
endx = Number(touch.pageX); //頁面觸點X坐標(biāo)
endy = Number(touch.pageY); //頁面觸點Y坐標(biāo)
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實現(xiàn)仿UC瀏覽器前進(jìn)后退效果的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
使用JSX 建立組件 Parser(解析器)開發(fā)的示例
這篇文章主要介紹了使用JSX 建立組件 Parser(解析器)開發(fā)的示例(前端組件化)本文重點講述我們?nèi)绾螐?開始搭建一個組件系統(tǒng),基于標(biāo)記語言的Parser的一種風(fēng)格2021-04-04
JavaScript深度復(fù)制(deep clone)的實現(xiàn)方法
本文給大家介紹JavaScript深度復(fù)制(deep clone)的實現(xiàn)方法,涉及到j(luò)s深度復(fù)制相關(guān)知識,本文介紹的非常詳細(xì),特此分享腳本之家平臺供大家參考2016-02-02
Add Formatted Text to a Word Document
Add Formatted Text to a Word Document...2007-06-06
Bun運(yùn)行時是新一代高性能JavaScript/TypeScript運(yùn)行時
Bun由Jarred Sumner創(chuàng)建,是一款新興的JavaScript和TypeScript運(yùn)行時,旨在比Node.js和Deno提供更高性能和快速啟動,Bun使用Zig語言編寫,內(nèi)置包管理并支持Node.js大部分API,適用于高并發(fā)API服務(wù)和快速構(gòu)建工具2024-11-11

