Cocos Creator 微端 app webviw網頁置頂增加返回鍵的方法


 

cocos 構建出來的web包里,index.html 文件里添加 <script src="fanhui.js" charset="utf-8"></script>  //(調用以下腳本)

 

 

新建腳本 fanhui_url.js

 

var isClick = true;//是否點擊確認行為標識

var styleElement = document.createElement("style");

styleElement.innerHTML = '#payRetBtnDiv {' +
' display: none;' +//初始時隱藏

' position: fixed;' +

' width: 35px;' +

' height: 35px;' +
//' background: url(fanhui_btn.24180.png) ' +

' background-color: rgba(0, 0, 0, 0.2);' +

' z-index: 10000;' +

' cursor: pointer;' +

' top: 0px;' +

' left: 0px;' +

' border-radius: 30%;' +

' padding: 6px;' +

' }' +

' ' +

' #payRetBtnDiv>div {' +

' border-radius: 50%;' +

' width: 100%;' +

' height: 100%;' +

//' background: url(c:/fanhui_btn.png) ' +

//' background-color: rgba(0, 0, 0, 0.3);' +

' transition: all 0.2s;' +

' -webkit-transition: all 0.2s;' +

' -moz-transition: all 0.2s;' +

' -o-transition: all 0.2s;' +

' }' +

' #payRetBtnDiv:hover>div{' +

' background-color: rgba(0, 0, 0, 0.6);' +
//' background: url(fanhui_btn.png) ' +

' } ';

document.body.appendChild(styleElement);

var new_element_N = document.createElement('div');

new_element_N.setAttribute("id", "payRetBtnDiv");

new_element_N.style.top = "100px";

new_element_N.style.left = "100px";

new_element_N.innerHTML = ' <div style="background:url(fanhui_btn.24180.png);background-size:cover"></div>';

document.body.appendChild(new_element_N);

//

//

var posX;

var posY;

var screenWidth = document.documentElement.clientWidth;

var screenHeight = document.documentElement.clientHeight;

var fdiv = document.getElementById("payRetBtnDiv");

fdiv.onmousedown = function(e)

{

isClick = true;
screenWidth = document.documentElement.clientWidth;

screenHeight = document.documentElement.clientHeight;

if (!e) {
e = window.event;
} //IE

posX = e.clientX - parseInt(fdiv.style.left);

posY = e.clientY - parseInt(fdiv.style.top);

document.onmousemove = mousemove;

}

document.onmouseup = function() //釋放時自動貼到最近位置的邊上

{

document.onmousemove = null;

if ((parseInt(fdiv.style.top) + parseInt(fdiv.clientHeight) / 2) <= (screenHeight / 2)) { //在上半部分

if ((parseInt(fdiv.style.left) + parseInt(fdiv.clientWidth) / 2) <= (screenWidth / 2)) { //在左半部分

if ((parseInt(fdiv.style.top) + parseInt(fdiv.clientHeight) / 2) <= (parseInt(fdiv.style.left) + parseInt(fdiv.clientWidth) /
2)) { //靠近上方

fdiv.style.top = "0px";

} else { //靠近左邊

fdiv.style.left = "0px";

}

} else { //在右半部分

if ((parseInt(fdiv.style.top) + parseInt(fdiv.clientHeight) / 2) <= (screenWidth - (parseInt(fdiv.style.left) +
parseInt(fdiv.clientWidth) / 2))) { //靠近上方

fdiv.style.top = "0px";

} else { //靠近右邊

fdiv.style.left = (screenWidth - parseInt(fdiv.clientWidth)) + "px";

}

}

} else { //下半部分

if ((parseInt(fdiv.style.left) + parseInt(fdiv.clientWidth) / 2) <= (screenWidth / 2)) { //在左半部分

if ((screenHeight - (parseInt(fdiv.style.top) + parseInt(fdiv.clientHeight) / 2)) <= (parseInt(fdiv.style.left) +
parseInt(fdiv.clientWidth) / 2)) { //靠近下方

fdiv.style.top = (screenHeight - parseInt(fdiv.clientHeight)) + "px";

} else { //靠近左邊

fdiv.style.left = "0px";

}

} else { //在右半部分

if ((screenHeight - (parseInt(fdiv.style.top) + parseInt(fdiv.clientHeight) / 2)) <= (screenWidth - (parseInt(fdiv
.style.left) + parseInt(fdiv.clientWidth) / 2))) { //靠近上方

fdiv.style.top = (screenHeight - parseInt(fdiv.clientHeight)) + "px";

} else { //靠近右邊

fdiv.style.left = (screenWidth - parseInt(fdiv.clientWidth)) + "px";

}

}

}


}

function mousemove(ev)

{
isClick = false;
if (ev == null) {
ev = window.event;
} //IE

if ((ev.clientY - posY) <= 0) { //超過頂部

fdiv.style.top = "0px";

} else if ((ev.clientY - posY) > (screenHeight - parseInt(fdiv.clientHeight))) { //超過底部

fdiv.style.top = (screenHeight - parseInt(fdiv.clientHeight)) + "px";

} else {

fdiv.style.top = (ev.clientY - posY) + "px";

}

 

if ((ev.clientX - posX) <= 0) { //超過左邊

fdiv.style.left = "0px";

} else if ((ev.clientX - posX) > (screenWidth - parseInt(fdiv.clientWidth))) { //超過右邊

fdiv.style.left = (screenWidth - parseInt(fdiv.clientWidth)) + "px";

} else {

fdiv.style.left = (ev.clientX - posX) + "px";

}

// console.log( posX +" "+ fdiv.style.left);

 

}

window.onload = window.onresize = function() { //窗口大小改變事件

screenWidth = document.documentElement.clientWidth;

screenHeight = document.documentElement.clientHeight;

if ((parseInt(fdiv.style.top) + parseInt(fdiv.clientHeight)) > screenHeight) { //窗口改變適應超出的部分

fdiv.style.top = (screenHeight - parseInt(fdiv.clientHeight)) + "px";

}

if ((parseInt(fdiv.style.left) + parseInt(fdiv.clientWidth)) > screenWidth) { //窗口改變適應超出的部分

fdiv.style.left = (screenWidth - parseInt(fdiv.clientWidth)) + "px";

}

document.onmouseup.apply()

};

fdiv.addEventListener('touchstart', fdiv.onmousedown, false);

fdiv.addEventListener('touchmove', function(event) {

// 如果這個元素的位置內只有一個手指的話

if (event.targetTouches.length == 1) {

event.preventDefault(); // 阻止瀏覽器默認事件,重要

var touch = event.targetTouches[0];

if ((touch.pageY) <= 0) { //超過頂部

fdiv.style.top = "0px";

} else if (touch.pageY > (screenHeight - parseInt(fdiv.clientHeight))) { //超過底部

fdiv.style.top = (screenHeight - parseInt(fdiv.clientHeight)) + "px";

} else {

fdiv.style.top = (touch.pageY - parseInt(fdiv.clientHeight) / 2) + "px";

}

 

if (touch.pageX <= 0) { //超過左邊

fdiv.style.left = "0px";

} else if (touch.pageX > (screenWidth - parseInt(fdiv.clientWidth))) { //超過右邊

fdiv.style.left = (screenWidth - parseInt(fdiv.clientWidth)) + "px";

} else {

fdiv.style.left = (touch.pageX - parseInt(fdiv.clientWidth) / 2) + "px";

}

}

}, false);

fdiv.addEventListener('touchend', document.onmouseup, false);

fdiv.ondblclick = function() { //雙擊事件可能在手機端瀏覽器會與網頁縮放事件起沖突

//alert("發揮想法,自定義事件");

}

fdiv.onclick = function() { //雙擊事件可能在手機端瀏覽器會與網頁縮放事件起沖突
if (isClick == true) {

//alert("發揮想法,自定義事件");
cc.find('Canvas').getComponent('dating_chongzhi').HideWebView();
}

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM