預設行為
一預設行為
1什麼是預設行為:說白了,就是浏覽器自帶的功能,比如網頁右鍵自動彈出菜單。在輸出框中敲擊鍵盤,自動輸出敲擊的數值,這些都是預設行為
document.oncontextmenu=function oncontextmenu作用是點選右鍵,呼叫右鍵菜單的時候
2怎麼阻止預設行為
<script>
document.oncontextmenu=function()
{
return false;
}
</script>.
給這個函數弄一個傳回值 false就是拒絕預設行為
3把預設行為拒絕掉,但是不拒絕自己設定的菜單
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
#div1{
background: red;display:none;position:absolute;width:80px;
}
</style>
<script>
document.oncontextmenu=function(ev)//右鍵觸發菜單
{
var oEvent=ev||event;
var oDiv=document.getElementById('div1');
oDiv.style.display='block';
oDiv.style.left=oEvent.clientX+'px';
oDiv.style.top=oEvent.clientY+'px';
return false;
}
document.onclick=function()
{
oDiv.style.display='none'
}
</script>
</head>
<body>
<div id="div1">
<ul>
<li>aaaa</li>
<li>aaaa</li>
</ul>
</div>
</body>
</html>
4隻能輸入數字的輸入框例子
keydown 鍵盤按下 keyup鍵盤按下之後又松開
window.onload=function()
var oTxt=document.getElementById('text1');
oTxt.onkeydown=function(ev)//鍵盤按鍵擡起時
var oEvent=ev||event;
//alert(oEvent.keyCode)
if(oEvent.keyCode<48 || oEvent.keyCode>57)
{
return false;
}
};
<input id="text1" type="text" />
二拖拽
拖拽:就是你點選一個框一直點選不松手可以跟着滑鼠移動而移動
整體代碼:
<head>
#div1{
background: red;
width:100px;
height:100px;
position:absolute;
}
window.onload=function()
{
var disX=0;
var disY=0;
var oDiv=document.getElementById('div1');
document.onmousedown=function(ev)//滑鼠點下時
{
var oEvent=ev||event;
disX=oEvent.clientX-oDiv.offsetLeft;
disY=oEvent.clientY-oDiv.offsetTop;
document.onmousemove=function(ev)
{
var oEvent=ev||event;
var l=oEvent.clientX-disX;
var t=oEvent.clientY-disY;
oDiv.style.left=l+'px'
oDiv.style.top=t+'px'
}
document.onmouseup=function()
document.onmousemove=null;
document.onmouseup=null;
};
return false;//火狐有一個預設行為,這裡取消掉
};
}
</head>
<body>
<div id="div1"></div>
</body>
但是在火狐浏覽器下會有一個bug,你點一次拖拽沒問題,第二次拖拽會有一個陰影,這是火狐浏覽器的bug,隻要關閉預設行為就可以了
return false;
但是還有一個小問題,就是有的人會把拖拽框拖到網頁以外,然後就找不到了,怎麼辦呢。用下面代碼解決
把document.onmousemove=function(ev)這個函數改成如下:
document.onmousemove=function(ev)
if(l<0)
{
l=0;
}else if(l>document.documentElement.clientWidth-oDiv.offsetWidth)
l=document.documentElement.clientWidth-oDiv.offsetWidth
}
if(t<0)
t=0
}else if(t>document.documentElement.clientHeight-oDiv.offsetHeight)
t=document.documentElement.clientHeight-oDiv.offsetHeight
}