Canvas做的圆角窗口(有阴影)

Canvas做的圆角窗口(有阴影)
传统的写圆角方式主要有两种方法,一种是图片做背景图、另一种是用很多个不同透明度或者明暗不同的像素点围成一个圆角。第一种的话比较容易实现,但需要切图;第二种网上主要有以下这几个做得很不错的:
1. Curvycorners  www.curvycorners.net
2. Nifty Corners  http://pro.html.it/esempio/nifty/
3. anti-aliased-nifty-corners  http://www.acko.net/anti-aliased-nifty-corners
4. rounded-corners  http://seky.nahory.net/2005/04/rounded-corners/
5. rounded_corners  http://www.editsite.net/blog/rounded_corners.html
第5个是综合前面几个的结晶。
最近在写一套web UI组件http://kingkit.iteye.com/admin/blogs/462880,做到窗口的时候在想,有没另外的方法来实现圆角呢?既不用图片也不用一个1像素的DIV来拼。后来找资料时发现用HTML5的元素canvas可以画图,另外还有个mootools的UI框架也是用同样的方式实现的,所以翻了下资料后自己也动手做了一下,大家看这种方法会不会比图片和拼像素的实现方法好呢?
最终做出来的效果如图(附demo):



 

 
 
 
注:Drag类是从网上拿来的,作者好像是cloudgamer

调用:

var width = 500;
			var height = 250;
			var radius = [5,5,5,5];//圆角半径:左上,左下,右下,右上			
			var title = "KUI web组件之容器";
			var content = "s圆角半径:左上,左s圆角半径:左上,";
			window.onload = function(){				
				//var d = new Container(title, content, width, height, radius, shadowBlur);
				var d = new Container(title, content, width, height, radius);
				document.getElementById('openBtn').onclick = function(){
					d.show();	
				}				
				document.getElementById('closeBtn').onclick = function(){
					d.hide();	
				}
				var drag = new Drag("container", { mxContainer: "con", Handle: "titleBar", Limit: true,
					onStart: function(){ $("idShow").innerHTML = "开始拖放"; },
					onMove: function(){ $("idShow").innerHTML = "left:"+this.Drag.offsetLeft+";top:"+this.Drag.offsetTop; },
					onStop: function(){ $("idShow").innerHTML = "结束拖放"; }
				});				
			}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值