2015/12/21--event,canvas

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">

//Event事件
function showEvent(event){
alert(event.type);
}
function showButton(event){
if(event.button == 0){
alert("You checked the left button!");
}
else if(event.button == 1){
alert("You checked the middle button!");
}
else if(event.button == 2){
alert("You checked the right button!");
}
else{
alert("I can‘t find what you checked!");
}
}
function showCords(event){
document.getElementById("div1").innerHTML = "x:" + event.clientX + "y:" + event.clientY;
document.getElementById("div2").innerText = "<h3>X:" + (event.clientX - 100) + "<br>y:" + (event.clientY - 300) + "</h3>";
document.getElementById("div3").innerHTML = "screenx:" + event.screenX + "screenY:" + event.screenY ;
}
function showtarget(event){
alert(event.target.tagName);
}
function moveDiv(event) {
// alert(event.keyCode);
if (event.keyCode == 37) {
var mx = parseInt(document.getElementById("div1").style.marginLeft);
alert(mx);
mx -= 10;
alert(mx);
document.getElementById("div1").style.marginLeft = mx + "px";
}
if (event.keyCode == 39) {
var myx = parseInt(document.getElementById("div1").style.marginLeft);
alert(myx);
myx += 10;
alert(myx);
document.getElementById("div1").style.marginLeft = myx + "px";
}
}

//Canvas 画布

</script>
</head>

<body style="margin: 0px;padding: 0px;" onkeydown="moveDiv(event)">

//Canvas画布

<canvas id = "canvas" width="400px" height="400px" style="background-color: pink" onmousemove="trans(event)"></canvas>
<script type="text/javascript">
var canvas = document.getElementById("canvas");
var cxt = canvas.getContext("2d");//花不同位置的方块,除掉后面的方块。

setInterval(trans,100);
 var i = 0;
 function trans(){
 cxt.clearRect(0,0,canvas.width,canvas.height)
 cxt.fillStyle = "blue";
 cxt.fillRect(i,100,20,20);
 i += 10;
 }

cxt.fillRect(20,20,20,20);
 cxt.arc(20,20,20,0,Math.PI*2);
 cxt.fill();

 setInterval(trans,100);

 var i = 0;
 function trans(){
 cxt.clearRect(0,0,400,400);
 cxt.translate(5,0);
 cxt.fillStyle = "blue";
 cxt.fillRect(0,100,20,20);
 i+=5;}

//画一个旋转的线条
 cxt.translate(200,200);
 setInterval(trans,100);
 function trans() {
 cxt.clearRect(-200,-200, 400, 400);
 cxt.rotate(Math.PI / 20);
 cxt.fillStyle = "blue";
 cxt.beginPath();
 cxt.moveTo(0, 0);
 cxt.lineTo(100, 0);
 cxt.lineWidth = 5;
 cxt.closePath();
 cxt.stroke();
 }

//方法二
// setInterval(trans,100);
// var angle = 0;
function trans(){
cxt.clearRect(0,0,400,400);
cxt.beginPath();
cxt.moveTo(200, 200);
var angle = Math.atan2((event.clientY - 200),(e.clientX - 200));
var vx = 200 + 100*Math.cos(angle);
var vy = 200 + 100*Math.sin(angle);
cxt.lineTo(vx,vy);
cxt.lineWidth = 5;
cxt.closePath();
cxt.stroke();
// angle+=5;

}
</script>

//Event事件
<!--<div style="width:2000px;height: 200px;background-color:green;onclick = showEvent(event)" onmousedown="showButton(event)"-->
<!--onmousemove="showCords(event)" id = "div1">-->
<div style="width: 200px;height: 200px;background-color: lightgreen; margin-left: 100px;" id = "div1" onmousemove="showCords(event)"
onkeydown="moveDiv(event)">
</div>
<div style="width: 200px;height: 200px;background-color: lightgreen; margin-left: 100px; " id = "div2" onmousemove="showCords(event)">
</div>
<div style="width: 200px;height: 200px;background-color: lightgreen; margin: 100px;" id = "div3" onmousemove="showCords(event)">
</div>
<img src="08.jpg">
<h1>Hello world</h1>
<p>This is a paragraph!</p>
</body>
</html>

时间: 2024-12-13 17:17:35

2015/12/21--event,canvas的相关文章

【我的书】Unity Shader的书 — 文件夹(2015.12.21更新)

写在前面 感谢全部点进来看的朋友.没错.我眼下打算写一本关于Unity Shader的书. 出书的目的有以下几个: 总结我接触Unity Shader以来的历程,给其它人一个借鉴.我非常明确学Shader的艰难,在群里也见了非常多人提出的问题. 我认为学习Shader还是一件有规律可循的事情,但问题是中文资料难觅,而大家又不愿意去看英文...这对我有什么优点呢?强迫我对知识进行梳理,对细节问题把握更清楚. 第二个原因你懂的. 关于本书的定位问题: 面向Unity Shader刚開始学习的人,但要

2015.12.21 内存管理(memory management)

Memory Management 1.什么是内存管理? 程序在运行过程中管理内存分配的过程,当需要内存的时候就申请一片内存空间,不需要就释放掉. 2.如何去管理内存 站在分配对象拥有权的角度来操作内存. 3.内存管理的两种办法 a. MRR(Manual Retain Release)手动管理,实现的机制:reference counting(引用计数机制). b. ARC(Auto Reference Counting)自动引用计数,实现机制:系统在程序编译阶段自动添加了释放对象的办法. 4

2015.1.21学习笔记和心得!

2015.1.21 随笔: 指令:cp -v 显示复制过程 sort 按次序显示文件 whereis 查找命令 ln -s src dest 连接文件 dest -> src /etc/apt/sources.list //存放镜像的地址 /var/lib/lists/* // 存放索引文件的地址 /var/cache/apt/archives //下载的软件包缓存的地址 编写shell脚本:三步走 1.创建shell脚本,vim shell.sh 2.修改权限,增加执行权限 chmod 777

2015.5.21 总结与规划

java和android任务基本完成,这次做的很棒. 2015.5.21到2015.6.10 两个任务: 一:把c primer plus剩下的部分看完. 二:python项目做完 过程中的要求:平均每天要求计时5h以上 每次计时尽量超过1.5h 尽量充分利用晚上时间,10:00到12:00 认真读书,理解透彻,学会写博客,多看看,多查查别人是怎么做的.

分布式技术一周技术动态 2015.12.13

分布式系统实践 1. 关于分布式事务.两阶段提交协议.三阶提交协议 http://www.hollischuang.com/archives/681?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io 要点: 分布式系统的数据一致性一直以来就是分布式系统中最难解决的问题之一, 本文介绍了传统的2PC和3PC协议以及他们的缺点, 理解了2PC和3PC之后, 回过头来大家就能理解paxos协议的具备的里程碑式的重要意义了(当然

2015.12.29~2015.12.30真题回顾!-- HTML5学堂

2015.12.29~2015.12.30真题回顾!-- HTML5学堂 吃饭,能够解决饥饿,提供身体运作机能.练习就像吃饭,强壮自己,提升编程技能,寻求编程技巧的最佳捷径!吃饭不能停,练习同样不能停哦! HTML5真题[2015.12.29]题目 学习JavaScript或应用JavaScript进行脚本开发,“变量”这是必须要学会使用的.什么是变量呢?又什么作用呢?ok,大家稍安勿躁哦,试体验体验这题目<HTML5真题[2015.12.29]题目>与 <HTML5真题[2015.12

#VSTS日志# 2015/12/10 – 终于可以删除工作项了

最近的更新不少,废话少说,直接上干货 定制工作项字段 本周的更新后,所有的用户都可以在vsts上直接给工作项添加字段了,具体内容包括– 添加新字段(日期,字符串,整形,数字)– 字段显示位置配置– 过程模版继承– 过程模版安全性配置 很多人都知道,在vsts在线版上一直缺少工作项定制能力,这次的更新一定让很多人兴奋,但是我们的工作还没有完,后续我们会逐步完成字段下拉菜单,工作流配置,html字段,添加全新的工作项类型等功能.关于本功能的具体内容,请参考以下博客 http://devopshub.

Clover KextsToPatch 使用方法 2015.10.21

Clover KextsToPatch 使用方法 2015.10.21 前些天,因为 Thinkpad X230 BIOS 白名单限制,给她换了一块 ar9285 无线网卡,只是因为这块网卡正好可以被 Mac OS X 驱动,也正好在 Thinkpad X230 BIOS 白名单之中.给 Clover 配置的时候,为了防止忘记,便记录下来. 因为灵活使用 Clover 成为黑苹果用户的必修课,否则你就只能漫天寻找 kext,寄希望与运气能正确驱动你的硬件了.Clover 中有一个强大的功能 Ke

2015.12.20-2015.12.25 大论文迭代 A

进一步充实大论文内容.结构,完善一遍大论文 12.20周天,完成论文第五章总结部分,和第一章的修改 12.21周一,完成论文第二章的修改充实 12.22周二,完成论文第三章的修改充实 12.23周三,完成论文第四章的修改充实 12.24周四,完成英文摘要 12.25周五,完成论文格式校验 前端拾遗:学习HTML的各个标签,css的各种描述