A JavaScript Fancier
伟大的javascript技术研究中...
IT博客网
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
304 随笔 :: 0 文章 :: 233 评论 :: 0 Trackbacks
<
2007年5月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
公告
本blog为作者本人学习JS脚本所用,未经特别声明,本站所有文章均属作者本人原创,请转载时注明来源!谢谢合作!同时希望与各位javascript爱好者交流学习。MSN:yanwei8410@hotmail.com
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(13)
给我留言
查看公开留言
查看私人留言
随笔分类
__非技术文章__(24)
(rss)
DHTML相关技术(2)
(rss)
HTML/XHTML/CSS(37)
(rss)
javascript个人作品(37)
(rss)
javascript代码收藏(22)
(rss)
javascript代码研究(18)
(rss)
javascript技巧总结(72)
(rss)
javascript语法基础(20)
(rss)
Js框架组件(33)
(rss)
Web2.0相关内容(11)
(rss)
Web开发相关知识(28)
(rss)
其它技术文章(3)
(rss)
动态网页编程技术(4)
(rss)
正则表达式专题(10)
(rss)
随笔档案
2008年7月 (7)
2008年6月 (14)
2008年5月 (15)
2008年4月 (4)
2008年3月 (5)
2008年1月 (7)
2007年12月 (10)
2007年11月 (22)
2007年10月 (27)
2007年9月 (16)
2007年8月 (1)
2007年7月 (8)
2007年6月 (5)
2007年5月 (12)
2007年4月 (16)
2007年3月 (3)
2007年2月 (5)
2007年1月 (22)
2006年12月 (11)
2006年11月 (4)
2006年10月 (2)
2006年9月 (6)
2006年8月 (4)
2006年7月 (17)
2006年6月 (61)
Ajax技术站点
AJAX Matters
Ajaxian(国外)
AjaxPatterns Wiki
AJAX中国
Ajax中国-李琨老师的blog
笑笑设计(Ajax高人Blog)
javascript学习站点
javascript论坛
JSVM官方站点
无忧脚本
正则表达式库
JS高人Blog
LlinZzi's Blog
宝玉的blog
西林@生存
Ruby&&Ajax框架
Ajax效果框架
Bindows官方站
JSLinb(Ajax框架)
RubyonRail
rubyonrails
Ruby官方站
类C++的js框架
Web技术站点
52SEO-搜索引擎优化
(rss)
SEO,搜索引擎优化
CoolCode.CN
IECN社区
Ugia.Cn
WEB2.0技术博客
(rss)
Web服务_TechTarget
蓝色理想
搜索
积分与排名
积分 - 250233
排名 - 1
最新评论
1. re: Plot-Jquery图表绘制插件
Plot似乎不支持字符类型的横坐标,这样使用起来就不方便了,很多图表并不都是使用数字做坐标的,特别柱状图
--yuyu
2. re: 关于JavaScript中apply与call的用法意义及区别
评论内容较长,点击标题查看
--ddd
3. re: JS完美实现对象克隆
评论内容较长,点击标题查看
--sushi
4. re: 实现JS对象的克隆
傻逼,复制来的东西也应该验证一下正确性再贴到自己博客里。
--张二
5. re: 转换字符串为json对象的方法
哎。。。我也郁闷了。。。
--郁闷
阅读排行榜
1. document.getElementById()方法简写【js技巧】(24836)
2. substring函数详解(6651)
3. 推荐一个IE下的优秀js调试工具(Companion.JS)(6197)
4. event.srcElement应用练习(5077)
5. Javascript的Event对象详解[收集整理](4920)
评论排行榜
1. 一个正则实现文本框中只能输入数字和小数点(11)
2. document.getElementById()方法简写【js技巧】(7)
3. onchange与onpropertychange的联系与区别!(6)
4. XHTML1.0学习总结(5)
5. 判断一个数字是否整数的办法(5)
无聊用js写了一个画图函数--兼容FireFox
早晨醒来突然想写一个画图函数,以前在网上看到有人做过,但都是用VML做的,只有ie支持。
偶这个是用<div>形成的绝对定位的点画出来的,兼容各种浏览器。
<!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>Untitled 1</title> <style type="text/css"> .style1 { font-size: x-small; } </style> </head> <body> <span class="style1"> <script type="text/javascript"> function makedot(x,y){ //画点函数 document.write("<div style='height:1px;position:absolute;left:"+x+"px;top:"+y+"px;width:1px;background:#f00;overflow:hidden'></div>") } /** 函数功能:根据给定的圆心和半径画圆 函数思路:根据半径及圆心坐标利用数学方法计算从0°到360°的每点的坐标,并画出来。 */ function circle(x,y,r){ //(x,y)圆心,r半径 var dotx,doty,radio; var Pi=Math.PI; makedot(x,y); for(var i=0;i<360;i+=0.5){ radio=i*Pi/180; dotx=r*Math.cos(radio)+x; doty=r*Math.sin(radio)+y makedot(dotx,doty); } } /** 函数功能:根据指点矩形左上角坐标及长宽绘制矩形。 函数思路:根据左上坐标及长宽,计算横纵向边每点的坐标 */ function rect(x,y,w,h){ //(x,y)左上角坐标,w,h 宽与高 for(var i=0;i<w;i++){ makedot(x+i,y); makedot(x+i,y+h); } for(var i=0;i<h;i++){ makedot(x,y+i); makedot(x+w,y+i); } } /** 函数功能:根据两点坐标画直线。 函数思路:根据两点的坐标计算机斜率,然后根据第一个点坐标及斜率计算直线上所有点然后画线。垂直线特殊处理 */ function line(x1,y1,x2,y2){ var slope=(y2-y1)/(x2-x1); //斜率 var diff=x2-x1; if(x1<x2){ for(var i=0;i<diff;i++){ makedot(x1+i,y1+slope*i); } }else if(x1>x2){ for(var i=0;i>diff;i--){ makedot(x1+i,y1+slope*i); } }else{ //画垂直线 var temp=y2-y1; if(temp>0){ for(var i=0;i<temp;i++){ makedot(x1,y1+i); } }else{ for(var i=0;i>temp;i--){ makedot(x1,y1+i); } } } } /** 函数功能:根据给定的三点坐标画三角形 函数思路:直接利用画线函数画三条线即可 */ function triangle(x1,y1,x2,y2,x3,y3){ line(x1,y1,x2,y2); line(x2,y2,x3,y3); line(x1,y1,x3,y3); } /** 函数功能:根据给定的一系列坐标点画多边形 函数思路:循环读取坐标点,在当前坐标点与下一坐标点之间连线 */ function polygon(){ var args=arguments.length; if(args%2!=0) return -1; var realargs=args/2; //坐标个数 for(var i=0;i<realargs-1;i++){ line(arguments[i*2],arguments[i*2+1],arguments[i*2+2],arguments[i*2+3]); } line(arguments[i*2],arguments[i*2+1],arguments[0],arguments[1]); } circle(500,500,200); rect(100,100,200,100); triangle(200,200,100,400,300,400); polygon(300,300,400,100,600,100,700,300,600,500,400,500); </script> </span> </body> </html>
posted on 2006-12-03 14:22
Yemoo'S JS Blog
阅读(1789)
评论(4)
编辑
收藏
引用
所属分类:
javascript个人作品
评论
#
re: 无聊用js写了一个画图函数--兼容FireFox
2006-12-04 13:37
踏雪赤兔
《程序员语录》:给我一个画点函数吧,我就能画出整个世界~
回复
更多评论
#
re: 无聊用js写了一个画图函数--兼容FireFox
2007-04-05 15:46
crf
看了你代码深受启发,特此感谢,另我将代码改成用<HR>来划线,效果也可以,且通过扑获鼠标位置实现画图,感觉挺好的,代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled 1</title>
<style type="text/css">
.style1 {
font-size: x-small;
}
</style>
</head>
<script type="text/javascript">
var w=1;
var h=1;
var col=black;
function add1()
{
w+=1;
h+=1;
}
function cut1()
{
if(w>1&&h>1)
{
w-=1;
h-=1;
}
}
function catchMouse()
{
//alert('hello');
var x=event.clientX-50;
var y=event.clientY-52;
makedot(x,y);
window.setTimeOut('catchMouse()',3);
}
function makedot(x,y){ //㺯
var sp=document.getElementById("sspp");
sp.insertAdjacentHTML("BeforeEnd","<hr style='position:absolute;left:"+x+"px;top:"+y+"px;width:"+w+"px;height:"+h+"px;color:"+col+";'>");
//document.write("<div style='height:1px;position:absolute;left:"+x+"px;top:"+y+"px;width:2px;background:#f00;overflow:hidden'></div>")
}
function changeColor(a)
{
col=a.value;
}
</script>
<body>
<span id="sspp" onMouseDown="document.onmousemove=catchMouse" onMouseUp="document.onmousemove=null" style="position:absolute;top:50px;left:50px;width:500px;height:500px;background-color:#eeeeee ">
</span>
<form action="">
<input type="button" onClick="add1()" name="add" value="+">
<input type="button" onClick="cut1()" name="cut" value="-">
<select id="col" onChange="changeColor(this)">
<option value="black">black</option>
<option value="blue">blue</option>
<option value="green">green</option>
<option value="orange">orange</option>
<option value="red">red</option>
<option value="pink">pink</option>
</select>
</form>
</body>
</html>
回复
更多评论
#
re: 无聊用js写了一个画图函数--兼容FireFox
2007-07-11 13:34
浪迹天涯
博主和这位朋友的脚本我都学习了,写的相当不错啊!只是这位朋友为什么要加一个setTimeout呢?我试了不加的效果,也是不错的呀!
另外我有个问题:在FireFox中,为什么event.button,(event = event ? event : (window.event ? window.event : null);这样的方式拿到的)的值一直是0呢?
回复
更多评论
#
re: 无聊用js写了一个画图函数--兼容FireFox
2008-04-02 08:27
denni_hxc
setTimeout(函数名,毫秒)
回复
更多评论
刷新评论列表
标题
姓名
主页
验证码
*
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
相关链接:
相关文章:
JS模仿Flash图片环绕旋转效果
半个下午写的一个简单横向日期控件[1224更新:兼容IE/FF/Opera]
模拟实现Array的sort方法
写了一个layout,拖动条连贯,内容区可为iframe
判断输入数据是否货币并自动添加¥符号
js类中获取外部函数名
花了两个小时才完成的qq菜单效果--失败啊。。
写了一个还原html代码的正则
写了js过滤重复字符的函数
JS实现网页元素阴影效果的研究总结
博客园
BlogJava
博客生活
IT博客网
C++博客
PHP博客
博客园社区
管理博客
教师博客
天文博客
汽车博客
足球博客
股票博客
电子技术博客
Powered by:
IT博客网
Copyright © Yemoo'S JS Blog