- 浏览: 567874 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
mr_xiaoyu:
最终会调用到ScheduledFutureTask#run() ...
ScheduledThreadPoolExecutor -
csmnjk:
谢谢分享!
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎 -
qsword555:
public static void main(String ...
ScheduledThreadPoolExecutor -
yun900800:
我的也是就抛了一次异常
ScheduledThreadPoolExecutor -
bjfuzh:
bjfuzh 写道我自己跑了下,那个抛异常的定时器,只执行了一 ...
ScheduledThreadPoolExecutor
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<style>
* {margin:0;padding:0;}
div.holder {width:500px;border:1px solid black;text-align:center;overflow:hidden;}
div.holder img {margin:0 auto;display:block;}
</style>
</head>
<body>
<div id="delegate">
<div class="holder">
<p>
<a class="turnleft" href="#">向左转</a>
<a class="turnright" href="#">向右转</a>
</p>
<div style="font-size:0px;">
<img src="http://ww1.sinaimg.cn/bmiddle/6087b519tw1din59omsdqj.jpg" />
</div>
</div>
</div>
<script type="text/javascript">
var maxWidth = 500;
window.onload = function() {
var delegate = document.getElementById('delegate');
var links = delegate.getElementsByTagName('a');
for(var i = 0 ; i < links.length ; i++) {
if((links[i].className + "").match(/\b(turnleft|turnright)\b/)) {
links[i].onclick = function(e) {
e = e || window.event;
var target = e.target || e.srcElement;
rotate(target);
};
}
}
};
function findNext(target) {
var result = target , count = 0;
while(true) {
result = result.nextSibling;
count++;
if(result && result.nodeType == 1) {
break;
}
if(!result || count > 10) {
break;
}
}
return result;
}
function rotate(target) {
var clsName = target.className;
var img = findNext(target.parentNode).getElementsByTagName("IMG")[0];
var num = getAngle(img , clsName == 'turnleft' ? 'left' : 'right');
var ie = /msie/i.test(navigator.userAgent);
if(ie) {
img.style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + num + ')';
} else {
var canvas = img.parentNode.getElementsByTagName('canvas');
if(!canvas.length) {
canvas = document.createElement('canvas');
img.parentNode.appendChild(canvas);
} else {
canvas = canvas[0];
}
if(num % 2 == 0) {
canvas.width = img.width;
canvas.height = img.height;
} else {
canvas.width = img.height;
canvas.height = img.width;
}
var context = canvas.getContext('2d');
var arr = [[0,0] , [0,-img.height] , [-img.width ,-img.height] , [-img.width,0]];
context.rotate(num * Math.PI / 2);
context.drawImage(img , arr[num][0] , arr[num][1] , img.width , img.height);
img.style.display = 'none';
}
}
function resize(target , angle) {
var size = target.realSize;
if(!size) {
target.realSize = size = {
width : target.width,
height : target.height
};
}
if(angle % 2 == 0) {
target.width = size.width;
target.height = size.height;
} else {
if(size.height > maxWidth) {
target.height = maxWidth;
target.width = maxWidth * size.width / size.height;
} else {
target.width = size.width;
target.height = size.height;
}
}
}
function getAngle(target , type) {
var angle = target.angle || 0;
type == 'left' ? angle -= 90 : null;
type == 'right' ? angle += 90 : null;
Math.abs(angle) > 270 ? angle = 0 : null;
target.angle = angle;
angle /= 90;
if(angle < 0) {
angle = 4 + angle;
}
var isIe = /msie/i.test(navigator.userAgent);
resize(target , angle);
if(isIe) {
var marginLeft;
if(angle % 2 == 1) {
target.parentNode.style.height = target.width + 'px';
marginLeft = Math.floor((maxWidth - target.height) / 2);
} else {
target.parentNode.style.height = target.height + 'px';
marginLeft = Math.floor((maxWidth - target.width) / 2);
}
target.style.marginLeft = marginLeft + 'px';
}
return angle;
}
</script>
</body>
</html>
发表评论
-
获取ie光标所在位置,一定记好了。
2011-09-03 18:07 1181代码是这么写的。 getCursorPos = functi ... -
避免浏览器缓存密码
2011-07-11 10:23 421http://zh-cn.w3support.net/inde ... -
全半角转化
2011-06-30 16:22 721return str.replace(/[\uff01-\uf ... -
canvas反转绘制图片
2011-06-30 15:11 883,,,,, -
JavaScript学习
2011-06-16 00:00 6941.trim 要想兼容的话,需要这么写 rep ... -
layerX layerY offsetX offsetY 的区别
2011-05-23 15:50 1310layerX layerY 返回的是相对于position ... -
flash里面js能调用的函数
2011-02-22 16:00 769http://www.adobe.com/support/fl ... -
时间发生时,鼠标相对于目标元素的左边
2011-02-14 16:25 797浏览器/属性 e.offsetX e.layerX ... -
从新浪微博的发布魔法表情学到的
2011-02-09 02:11 1247<!DOCTYPE html PUBLIC " ... -
winxp 序列号文件
2011-01-25 10:35 731i386里的winnt.sif文件就可以看到序号 -
全角、半角 相互转换
2010-12-29 00:00 885\uFF01-\uFF5E 是全角的标点 Strin ... -
双字节字符的范围
2010-12-28 23:25 1422/[^\x00-\xff]/ -
词法作用域与语法作用域
2010-12-26 11:21 1071var classA = functi ... -
animate scrollTop
2010-12-14 11:35 1360$('body').animate({scrollTop : ... -
jquery queue 和 jquery dequeue
2010-12-01 13:41 1209queue和dequeue实现了在jquery对象上的队列的进 ... -
禁止用户选中东西
2010-11-30 14:55 884elem.setAttribute("unselec ... -
比较节点位置
2010-11-30 13:52 826contains: function(a, b) { ... -
window.frameElement
2010-11-30 10:12 1926如果当前窗口被嵌套在了别的窗口中 则返回那个iframe或者 ... -
程序动态触发事件
2010-11-26 11:50 8081.ie上是 element.fireEvent('on' ... -
script标签的src属性ie与w3c上的不同
2010-11-24 22:11 803ie上面script标签写什么就是什么 其他的浏 ...
相关推荐
2. **绘制图片**:当图片加载完成后,我们将其绘制到canvas上。使用`context.drawImage()`方法,传入图片对象、起始绘制位置和尺寸。 3. **切片图片**:为了实现爆炸效果,我们需要将图片切割成多个小块。这可以...
//图片加载完成后,执行此方法 ctx.drawImage(img, posx, posy, 210, 80); }; play.addEventListener('click', function () { ctx.clearRect(0, 0, canvas.width, canvas.height);//清除画布
1. 绘制图像:drawImage(img, x, y, width, height)或drawImage(img, sx, sy, swidth, sheight, x, y, width, height)方法,可以用来在Canvas上绘制图片,也可以实现图片的缩放和裁剪。 2. 获取图像数据:...
`drawImage()`方法用于在Canvas上绘制图片,接受多个参数,包括图片对象、绘制的起始坐标以及图片的宽高。 3. 倒影效果: 要实现倒影效果,首先需要对图片进行上下翻转。这可以通过获取图片的上下颠倒的副本,然后...
要绘制图片,首先创建一个新的`Image`对象,并设置其`src`属性为图片的URL。然后,添加一个`onload`事件处理函数,在图片加载完成后进行绘制: ```javascript var img = new Image(); img.src = "1.jpg"; img....
2.4.2 利用getimagedata和putimagedata绘制图片 / 45 2.4.3 利用createimagedata新建像素 / 47 2.5 小结 / 49 第3章 canvas高级功能 / 50 3.1 变形 / 50 3.1.1 放大与缩小 / 50 3.1.2 平移 / 53 3.1.3 旋转 ...
// 绘制图片到canvas ctx.drawImage(img, 0, 0, img.width, img.height); // 获取图像数据 const imageData = ctx.getImageData(0, 0, img.width, img.height); const data = imageData.data; // 遍历每个...
5. **图片剪切**: 剪切图片主要通过调整Canvas的绘图区域,使用`context.drawImage()`方法的参数指定源图像的裁剪区域和目标绘制位置。在本例中,图片选择框(picker)的位置和大小可以改变,以确定剪切的范围。 6....
Canvas API 是一种在网页上动态绘制图形的强大工具,它允许开发者通过JavaScript代码直接在画布上绘制各种形状和动画。 首先,我们看到有四个函数分别用于创建不同类型的图形:`createBall`(圆形)、`createSquare...
通过创建`Matrix`,设置适当的变换参数,然后在`Canvas`上绘制经过变换的`Bitmap`,我们可以轻松地实现图片的反转,从而避免了因重复图片资源而占用过多的存储空间。这种方法对于优化资源密集型的应用,如游戏,是...
【标题】:“Android 背景滚动与反转及手势绘制圆形” 在Android开发中,创建动态、交互性强的用户界面是提升用户体验的关键。本主题主要探讨如何实现背景滚动、图像反转以及通过用户手势来画圆的功能,这些都是...
这个在线画图及图片处理工具利用了Canvas的强大功能,让用户可以直接在浏览器中进行创作和编辑图片,实现了多种图像操作,如颜色反转、转灰度图、阴影效果以及横向和纵向渐变。 1. **Canvas基本概念** - Canvas是...
2. 复制图片:利用Canvas API的`drawImage`方法将图片绘制到Canvas上,并保存为一个新的图片对象或数据URL。 3. 反转图片:对复制的图片进行水平翻转,可以使用Canvas的`translate`和`scale`方法完成这一操作。 4. ...
通过`drawImage()`方法将图片绘制到`Canvas`上,然后可以通过`getImageData()`获取像素数据,进行像素级别的编辑。 3. 移动功能:移动图片在`Canvas`上主要通过更改`drawImage()`方法的`dx`和`dy`参数实现。这两个...
2. **图片重叠**:通过Canvas对象,开发者可以将多个图片绘制到同一个画布上,实现图片的重叠效果。使用`drawBitmap()`方法,可以设置不同的位置和透明度参数来控制图片叠加的方式。 3. **灰度处理**:将彩色图片...
这通常涉及到继承`View`或`ViewGroup`,重写`onDraw()`方法,以及使用`Canvas`的绘图方法来绘制动画每一帧。通过计算每个时刻的旋转角度和其他属性,可以实现复杂的翻转效果。 5. **第三方库支持** Android社区有...
在处理图片时,经常需要对图片进行旋转、缩放或反转等操作,这些功能可以帮助我们更好地满足不同的应用场景。 1. **图片旋转** - 使用 `Matrix` 类设置旋转角度,然后通过 `Bitmap.createBitmap()` 方法创建新的 ...
这个View可能通过改变图片的Matrix来达到翻转效果,或者通过绘制时反向绘制来模拟翻转。在Android的Canvas类中,`canvas.save()`和`canvas.restore()`可以用来保存和恢复绘图状态,`canvas.rotate()`用于旋转,而`...
开发者可能使用Bitmap.createBitmap()方法创建一个新的Bitmap对象,并使用Canvas进行绘制,将反转的位图绘制到合适的位置,从而实现倒影效果。 此外,该项目还涵盖了Android工程的基本结构、资源管理、布局设计、...