滑鼠鍵盤事件

来源:http://www.cnblogs.com/infernoyy/archive/2017/07/26/7242488.html
-Advertisement-
Play Games

1、獲取滑鼠位置 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http:// ...


1、獲取滑鼠位置

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>獲得滑鼠的坐標值----當需求為獲得的坐標值相對於body時</title>

</head>

<body>

<div style=" width:500px; margin:100px auto;">
<p id="x"></p>
<p id="y"></p>
</div>


<script type="text/javascript">

var x , y;

//當需求為獲得的坐標值相對於body時,用:
function positionBody(event){
event = event||window.event;
//獲得相對於body定位的橫標值;
x=event.clientX
//獲得相對於body定位的縱標值;
y=event.clientY
}

 

//應用:
document.onmousemove = function(event){
positionBody(event);
document.getElementById("x").innerHTML = "x= " + x + "px";
document.getElementById("y").innerHTML = "y= " + y + "px";
}

</script>


</body>
</html>

 

 

2、獲得滑鼠的坐標值----當需求為獲得的坐標值相對於body時

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>獲得滑鼠的坐標值----當需求為獲得的坐標值相對於body時</title>

</head>

<body>

<div style=" width:500px; margin:100px auto;">
<p id="x"></p>
<p id="y"></p>
</div>

<script type="text/javascript" language=JavaScript charset="UTF-8">
document.onkeydown = function(event) {
var e = event || window.event || arguments.callee.caller.arguments[0];  //獲取事件(最後一個是火狐)
if(e && e.keyCode == 27) { // 按 Esc 
//要做的事情
alert("按下esc")
}
if(e && e.keyCode == 113) { // 按 F2 
//要做的事情
alert("按下f2")
}
if(e && e.keyCode == 13) { // enter 鍵
//要做的事情
alert("按下enter")
}
};
</script>

</body>

</html>

 

 

  

3、控制人物走動

<html>
    <head>
        <meta charset="utf-8" />
        <title>人物走動</title>
    </head>
    <body onkeydown="show()">
        <ul style="posttion:absolute;border:1px solid #999;list-style:none;width:150px;padding:20px;background:#ffffef;">
            <li>w:向上</li>
            <li>s:向下</li>
            <li>a:向左</li>
            <li>d:向右</li>
            <li>空格:停止</li>
        </ul>
        <div style="position:absolute;top:0;left:0" id='di'><img src="http://files.jb51.net/file_images/article/201408/201482791327688.gif?201472791345" id="img"></div>
        <script>
            var img1='http://files.jb51.net/file_images/article/201408/201482791656841.gif?201472791722';
            var img2='http://files.jb51.net/file_images/article/201408/201482791327688.gif?201472791345';
            var x=0;
            var y=0;
            var xs=0;
            var ys=0;
            var flag=true;
            var zq=null;
            function ks(){
                zq=setInterval(function(){ 
                    var s=document.getElementById('img');  
                    var str=s.src;
                    var area=document.getElementById('di');
                    var xpos=parseInt(area.style.left);
                    var ypos=parseInt(area.style.top);
                    x=x+xs;
                    y=y+ys;
                    area.style.left=x;
                    area.style.top=y;
                    var pos=str.lastIndexOf('/')+1;
                    var hz=str.substr(pos);
                    if(hz==img1){
                        s.src= img2;
                    }else{
                        s.src= img1;
                    }              
                },50);
            }
            ks();
 
            function show(){
                var sz=window.event.keyCode;
                switch(sz){
                    case 87:
                        img1='http://files.jb51.net/file_images/article/201408/ren_h_1.gif';
                        img2='http://files.jb51.net/file_images/article/201408/ren_h_2.gif';
                        ys=-5;
                        xs=0;
                        break;
                    case 65:
                        img1='http://files.jb51.net/file_images/article/201408/ren_l_1.gif';
                        img2='http://files.jb51.net/file_images/article/201408/ren_l_2.gif';
                        xs=-5;
                        ys=0;
                        break;
                    case 68:
                        img1='http://files.jb51.net/file_images/article/201408/ren_r_1.gif';
                        img2='http://files.jb51.net/file_images/article/201408/ren_r_2.gif';
                        xs=5;
                        ys=0;
                        break;
                    case 83:
                        img1='http://files.jb51.net/file_images/article/201408/ren_q_1.gif';
                        img2='http://files.jb51.net/file_images/article/201408/ren_q_2.gif';
                        ys=5;
                        xs=0;
                        break;
                    case 32:
                      if(flag){
                          clearInterval(zq);
                          flag=false;
                          break;
                       }
                    case 13:
                     if(!flag){
                         ks();
                         flag=true;
                        break;
                      }
                }
            }
        </script>
    </body>
</html>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 其實按照我的情懷和尿性,文章的標題應該是 前端登堂入室寶典、前端成長就這三招 之類,奈何這是篇軟文 ~ 看官先別急Command + W,尤其是和我經歷類似 我可以負責任的說,這是一篇有態度的軟文 欲語淚先流 我希望做些有用的事情,甚至可以做個有用的人 才畢業工作的第一年我是滿足的,學到了很多新知識 ...
  • 可以看出,使用方式越來越簡單,程式員越來越傻,不知道是好事,還是壞事。。。 ...
  • 在這裡以面板為例: $().ready(function() { $('#menu').tree({ url : '/menu', onClick : function(node) { $('#center').panel({ href:node.attribute.url }... ...
  • 1. 基本規範 符合web標準, 語義化html, 結構、表現、行為分離, 相容性優良. 頁面性能方面, 代碼要求簡潔明瞭有序, 儘可能的減小伺服器負載, 保證最快的解析速度. 2. 文件規範 html, css, js, image文件均放在約定的目錄中,基本目錄結構如2.1圖,並且目錄與文件名中 ...
  • 一、浮動元素自動變塊級元素 非浮動元素占據浮動元素位置,浮動元素不能占據非浮動元素位置???向上占據 浮動元素會被自動設置成塊級元素,相當於給元素設置了display:block(塊級元素能設置寬和高,而行內元素則不可以)。 二、併列關係的盒子,不一致地浮動,位置問題 元素浮動會對後面非浮動的兄弟元 ...
  • [1]對象類別 [2]對象簡寫 [3]可計算屬性名 [4]判斷相等 [5]對象合併 [6]屬性名重覆 [7]枚舉順序 [8]對象原型 [9]方法定義 [10]對象遍歷 ...
  • 實現頂部與底部固定的效果十分容易,且很多人都會選擇用這個方式,就是頂部position:fixed,底部也position:fixed。實現的效果就像下麵兩張圖,container區域是佈滿整個屏幕的,且滾動條也是滾動在整個屏幕中,調內容區時只能調節高度。 其實還有一種方式可以實現較好的效果,就是內 ...
  • 準備前提:已經搭建好angular-cli環境,還未搭建好的請參見三少的博客(開發基礎分類) 1 新建一個文件夾 該文件夾用來存放所有利用angular-cli搭建的web前端項目 2 啟動命令視窗,併進入該文件夾 3 創建新項目 ng new 項目名稱 註意:項目名稱最好全部用字母 3.1 到文件 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...