這篇文章將為大家詳細講解有關JS如何實現仿UC瀏覽器前進后退效果,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

JS是JavaScript的簡稱,它是一種直譯式的腳本語言,其解釋器被稱為JavaScript引擎,是瀏覽器的一部分,主要用于web的開發,可以給網站添加各種各樣的動態效果,讓網頁更加美觀。
測試瀏覽器為谷歌瀏覽器(谷歌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瀏覽器前進后退效果”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
另外有需要云服務器可以了解下創新互聯建站www.yijiale78.com,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網頁名稱:JS如何實現仿UC瀏覽器前進后退效果-創新互聯
鏈接分享:http://www.yijiale78.com/article32/cchhsc.html
成都網站建設公司_創新互聯,為您提供網站維護、微信公眾號、域名注冊、動態網站、App設計、企業網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯