一個很不錯的效果,用鍵盤的箭頭鍵控制一個漂亮的箭頭!也許能給你啓發,做出一款有趣的小遊戲呢!
運行代碼框<html xmlns:v="urn:schemas-microsoft-com:vml"> <head> <title>Interactive Arrow</title> <STYLE> v/:* { BEHAVIOR: url(#default#VML) } </STYLE> <SCRIPT Language="JavaScript"> /* All Files are Designed & Writen by Windy_sk, you can use it freely but ... YOU MUST KEEP THIS ITEM ! Email: seasonx@163.net */ var timer = null; var time_unit = 30; var A_speed = 10; var L_speed = 15; var move_x, move_y; function ArrowStyle(type,color,color2,focus){ if(color == "") color = "white"; if(color2 == "") color2 = "white"; this.type = type; this.color = color; this.color2 = color2; this.focus = focus; } var style_list = new Array(); style_list[style_list.length] = new ArrowStyle("gradient","blue","",""); style_list[style_list.length] = new ArrowStyle("gradient","","blue",""); style_list[style_list.length] = new ArrowStyle("gradient","blue","red",""); style_list[style_list.length] = new ArrowStyle("gradient","red","blue",""); style_list[style_list.length] = new ArrowStyle("gradient","blue","red","50%"); style_list[style_list.length] = new ArrowStyle("gradient","red","blue","-50%"); style_list[style_list.length] = new ArrowStyle("gradientradial","","blue",""); style_list[style_list.length] = new ArrowStyle("gradientradial","blue","",""); style_list[style_list.length] = new ArrowStyle("gradientradial","red","blue",""); style_list[style_list.length] = new ArrowStyle("gradientradial","blue","red",""); style_list[style_list.length] = new ArrowStyle("gradientradial","red","blue","50%"); style_list[style_list.length] = new ArrowStyle("gradientradial","blue","red","-50%"); function ChangeStyle(){ if(style_list.length == 0) return; var the_style = style_list[GetRandomNum(1,style_list.length) - 1]; fill.type = the_style.type; fill.color = the_style.color; fill.color2 = the_style.color2; fill.focus = the_style.focus; } /* function ChangeStyle(){ fill.type = GetRandomNum(0,1)?"gradient":"gradientradial"; fill.color = GetRandomdColor(); fill.color2 = GetRandomdColor(); fill.focus = GetRandomNum(0,1)?"+":"-" + GetRandomNum(0,100).toString() + "%"; } function GetRandomdColor(){ var result = ""; var hex = new Array(6); hex[0] = "FF"; hex[1] = "CC"; hex[2] = "99"; hex[3] = "66"; hex[4] = "33"; hex[5] = "00"; for(var i=0;i<3;i++){ result += hex[GetRandomNum(0,5)]; } return result; } */ function GetRandomNum(Min,Max){ var Range = Max - Min; var Rand = Math.random(); return(Min + Math.round(Rand * Range)); } function MoveIt(){ var the_top = parseInt(angle.style.top); var the_left = parseInt(angle.style.left); angle.style.top = the_top + move_y; angle.style.left = the_left + move_x; if(the_top < 0 || the_top > document.body.offsetHeight){ angle.Rotation = 180 - angle.Rotation; move_y = -move_y; angle.style.top = the_top<0 ? 0 : document.body.offsetHeight + move_y; } if(the_left < 0 || the_left > document.body.offsetWidth){ angle.Rotation = 360 - angle.Rotation; move_x = -move_x; angle.style.left = the_left<0 ? 0 : document.body.offsetWidth + move_x; } } document.onkeydown = function(){ angle.Rotation = angle.Rotation % 360; if(timer!=null) return; var the_angle = Math.PI * angle.Rotation / 180; switch(event.keyCode){ case 37: //left timer = setInterval("angle.Rotation -= A_speed",time_unit); break; case 39: //right timer = setInterval("angle.Rotation += A_speed",time_unit); break; case 40: //down the_angle += Math.PI; case 38: //up move_y = -Math.floor(L_speed * Math.cos(the_angle)); move_x = +Math.floor(L_speed * Math.sin(the_angle)); timer = setInterval("MoveIt()",time_unit); break; } return; } document.onkeyup = function(){ if(timer!=null) clearInterval(timer); timer = null; } document.onclick = function(){ ChangeStyle(); } document.onmousewheel = function(){ if (event.wheelDelta >= 120){ angle.style.width = Math.ceil(parseInt(angle.style.width) * 1.1); angle.style.height = Math.ceil(parseInt(angle.style.height) * 1.1); }else if (event.wheelDelta <= -120){ angle.style.width = Math.ceil(parseInt(angle.style.width) * 0.9); angle.style.height = Math.ceil(parseInt(angle.style.height) * 0.9); } return; } window.onload = function(){ setInterval("window.status='Rotation: '+angle.Rotation+'; Top: '+angle.style.top+'; Left: '+angle.style.left",time_unit); } </SCRIPT> </head> <body scroll="no"> <v:group id="angle" style='position:absolute;top:0;left:0;width:20;height:20;z-index:999' coordorigin="-10,-10" coordsize="20,20"> <v:shape CoordOrig="-10,-10" CoordSize="20,20" style="width:20;height:20" Title="Interactive Arrow" FillColor="red" Filled="true" StrokeColor="black" StrokeWeight="1pt"> <v:Stroke StrokeColor="black" StrokeWeight="1pt" /> <v:fill id=fill type='gradient' color='blue'/> <v:Path v="m 0,-10 l -10,10 l 0,5 l 10,10 x e" /> </v:shape> </v:group> </body> </html> [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
繼續運行 🥋 回憶上次內容 上上次 真寫了 萬行 代碼 這 萬行 代碼 都是寫在 明面 上的 這次 使用git命令 下載了 github上面的倉庫
這個其實是一個特別高頻的面試題,松哥也一直很想和大家仔細來聊一聊這個話題,網上關於這塊的文章很多,但是我一直覺得要把這個問題講清楚還有點難度,今天我來試一試,看能不能和小夥伴們把這個問題梳理清楚,當然,如果小夥伴們覺得看文章不過癮,松哥也有
分享8個開箱即用的API,方便日常處理集合。 1. 快速過濾空值:Stream.ofNullable 該方法是在 Java 9 中引入的,有助於過濾集合中的所有空值,從而可能使我們避免空指針異常。 在下面的示例中,有一個包含 null 的L
一、背景 在日常部門OpsReview過程中,部門內多次遇到應用容器所在的宿主機磁盤繁忙導致的接口響應緩慢,TP99增高等影響服務性能的問題,其中比較有效的解決方案是開啓日誌的異步打印,可以有效避免同步日誌打印在磁盤IO高起的情況下拖慢業
在當今數字化時代,社交媒體已成爲人們獲取信息、分享生活和進行商業推廣的重要平臺。隨着社交媒體內容的爆炸性增長,自動化抓取社交媒體上的媒體資源變得尤爲重要。本文將介紹如何使用Puppeteer這一強大的自動化工具來實現這一目標。 1. P
DHTMLX Diagram庫允許用幾行代碼構建JavaScript流程圖,通過自動佈局和實時編輯器,它可以更容易地將複雜數據可視化到一個整潔的層次結構中。 DHTMLX Diagram v6.0版本發佈,帶來了衆多令人興奮的新功能和改進,
引言 在當今數字化時代,網絡數據採集已成爲獲取信息的重要手段之一。Symfony Panther,作爲Symfony生態系統中的一個強大工具,爲開發者提供了一種簡單、高效的方式來模擬瀏覽器行爲,實現網絡數據的採集和自動化操作。本文將通過
DevExtreme擁有高性能的HTML5 / JavaScript小部件集合,使您可以利用現代Web開發堆棧(包括React,Angular,ASP.NET Core,jQuery,Knockout等)構建交互式的Web應用程序。從Ang
DevExtreme擁有高性能的HTML5 / JavaScript小部件集合*使您可以利用現代Web開發堆棧*包括React*Angular*ASP.NET Core*jQuery*Knockout等*構建交互式的Web應用程序。從Ang
引言 隨着大數據時代的到來,網頁爬蟲作爲一種高效的數據收集工具,被廣泛應用於互聯網數據抓取和信息抽取。而知乎是一個知識分享平臺,擁有大量的用戶生成內容。通過爬蟲獲取知乎數據,企業和研究人員可以進行深入的數據分析和市場研究,瞭解用戶的需求
JetBrains IDEs日前正式發佈了v2024.1版本,此版本中最大的亮點就是帶來了AI賦能的全行代碼補全,同時在最新的IDEs中重做了終端、擁有更強大的代碼編輯和導航功能、更智能的代碼分析和提示、更優化的性能、更豐富的插件和集成等。
在當今的互聯網時代,數據的獲取和分析變得日益重要。無論是進行市場研究、用戶行爲分析還是產品開發,獲取大量數據都是不可或缺的一環。然而,很多有價值的信息都隱藏在動態加載的網頁中,這些網頁通過JavaScript動態生成內容,傳統的爬蟲技術
前言 隨着數字音樂的普及,越來越多的用戶選擇在線音樂平臺來享受音樂。網易雲音樂作爲國內領先的音樂服務平臺,不僅提供了豐富的音樂資源,還擁有獨特的社交屬性,吸引了大量的用戶。在衆多的音樂服務中,音頻鏈接的抓取技術成爲了一個重要的需求。無論
通義靈碼自從入職阿里雲以來備受行業關注。5 月 24 日,阿里雲工程師奔赴北京、成都、杭州三城,向企業和開發者介紹並演示通義靈碼,通義靈碼依然是大家話題的C位,並收穫了衆多粉絲。 @杭州 阿里雲金融創新峯會 今天,2024 阿里雲金融創新峯