‘壹’ 放大镜原理放大镜离物体很近时,看到物体没怎么被放大
放大镜是利用光的聚合来实现放大的,
每个放大镜都有个焦点,物体放到焦点位置,放大的最大,离焦点位置越远,放大效果越差,
‘贰’ HTML5放大镜效果
自己动点脑
‘叁’ 一个页面引用俩次JS放大镜的效果,为什么只有一个可以正常实现
首先,把你写的两个把两个window.onload代码去掉;
然后按下面这样写:
window.onload = function() {
x = new fuckBox('fuckPun','fuck');
x2 = new zoomBox('zoomPan','zoom');
}
你还提了一个同样的问题吧,也是这个,我帮你解决了,你还没给我分呢!
有问题,请留言!
‘肆’ 用jQuery制作的放大镜效果,为什么放大出来的图片在其他图片下面,怎么设置就显示在上面了
尝试将对应的css中的 z-index 设置成最大值,应该就显示在最前面了,如设置成9999.
‘伍’ HTML5中,如何为图片制作放大镜效果
制作图片的放大效果我考虑到的方法是将原始图片绘制到canvas上,然后在对canvas进行局部裁剪最后对裁剪的部分进行放大,这样就可以实现放大镜的效果。
这里我给出一个实现这个想法的示例。该示例实际上就是运用HTML5canvas中对画布进行裁剪与保存画布状态的相关知识实现的。
上面是给出示例的效果图。这是不是你想要的放大镜效果呢?
下面我们来看下示例代码:在这个示例中当你点击图片时图片就会出现上图效果,再一次点击时就变成原始图片了。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>放大镜</title>
<!—HTML代码设计:一个简单的canvas元素-->
</head>
<body>
<div id="result-stub" class="well hidden">
<canvas id="canvas" width="345" height="345">
<p>你的浏览器不支持canvas元素</p>
</canvas>
</div>
<script>
window.onload=function() {
//获取canvas对象以及图片对象
var
canvas = document.getElementById('canvas'),
img = new Image(),
context = null,
dataUrl = null,
//设置一个标记,该标记的作用是控制我们点击canvas时放大镜效果的消失和出现
isMagnified = false,
//init函数只要是在图片加载时绘制出图形
init = function() {
img.onload = function() {
//绘制原始图片
context.drawImage(img, 0, 0);
//将图片信息转化为二进制信息或者URL信息存储在dataUrl中方便后面调用
dataUrl = canvas.toDataURL();
}
img.src = 'fist-pump-baby.jpg';
//设置标记值
isMagnified = false;
},
//magnify函数的作用是绘制具有放大镜效果的图形
magnify = function() {
//保存当前画布的绘制状态即画布绘制原始图片的状态。方便我们在后面恢复到绘制原始图片的状态
context.save();
//因为放大镜的圆圈和把手是通过canvas绘制的这里设置了一些绘制把手和圆圈的样式属性。
context.lineWidth = 10;//线条宽度
context.shadowColor = '#000';//阴影的颜色黑色
context.shadowBlur = 15;//模糊级别为15
context.shadowOffsetX = 5;//形状与阴影的水平距离5
context.shadowOffsetY = 5;//形状与阴影的垂直距离5
//保存画布当前状态即我们设置阴影属性后的状态方便后面使用
context.save();
//绘制出放大镜把手的图形
context.beginPath();
context.moveTo(230, 230);
context.lineCap = 'round';
context.lineWidth = 30;
context.lineTo(285, 285);
context.stroke();
//对图片进行裁剪,裁剪出的图形是一个圆形。
context.beginPath();
context.arc(
150,
150,
115,
0,
Math.PI * 2,
true);
context.clip();
//创建一个新的Image对象,这个Image对象的图片资源是前面存储在dataUrl中的图片资源。所以这个Image对象和之前初始化的Image对象是完全一样的。
var magnified = new Image();
magnified.src = dataUrl;
//对Image对象进行放大1.5倍,并进行绘制。注意此时的画布状态时裁剪为一个圆形的状态,所以这里绘制的也仅仅是图片中的一个圆形区域。这里为了绘制出图片中娃娃的脸设置了绘制的图片有一定的偏移量。
context.scale(1.5, 1.5);
context.drawImage(img, -40, -40);
//调用restore()函数将画布状态恢复到绘制把放大镜把手时的状态,即具有阴影属性
context.restore();
//绘制放大镜的圆圈,即绘制刚刚我们裁剪出来图片的边框。这样刚刚裁剪出来的圆形图形就会正好处于放大镜的圆圈中。
context.arc(
150,
150,
115,
0,
Math.PI * 2,
true);
context.stroke();
//重置画布,将画布恢复到绘制元素图片的状态,以方便绘制出放大效果后,再次点击是绘制原始图片。
context.restore();
//设置标记值,实现点击后放大效果消失。
isMagnified = true;
};
//加载初始化代码,即当运行页面时会在页面绘制出一个原始图像
init();
//监听画布的点击事件,当点击页面的图像时会根据标记的值来进行判断是否对画布进行方大处理
$('canvas').click(function() {
if (isMagnified) {
init();//绘制原始图像
}
else {
magnify();//绘制放大的图像
}
});
}
</script>
<script src="jquery.js"></script>
</body>
</html>
对于这些知识在一个叫秒秒学的教程网站上有相关的学习资料,有兴趣的可以自己去看看,希望对你有帮助。
‘陆’ 放大镜起放大作用,那么放大镜看物体总是放大的吗
放大镜起放大作用,放大镜看物体总是放大的。
放大镜视角愈大,像也愈大,愈能分辨物的细节。移近物体可增大视角,但受到眼睛调焦能力的限制。使用放大镜,令其紧靠眼睛,并把物放在它的焦点以内,成一正立虚像。放大镜的作用是放大视角。历史上,据说放大镜的应用是由13世纪英国的一位主教格罗斯泰斯特提出的。
早在一千多年前,人们已把透明的水晶或透明的宝石磨成“透镜”,这些透镜可放大影像。也称为凸透镜。
(6)前端放大镜效果时有时无扩展阅读
放大镜按外表分类可以分为便携式放大镜和台式放大镜,台式放大镜就是可以固定的,下面有个底座,上面是一个放大镜,放大镜的形状可以是长方形的也可以是正方形的,或者是圆形的,这样的放大镜主要用于长期固定看一个地方。
台式放大镜可以的镜臂很长,有弯曲的地方,可以根据需求随意改变位置。
便携式放大镜就像上面一样,前面一个圆形的放大镜后面一个手柄,便携式放大镜的种类也有很多的,有的放大镜的是正方形的,也有可以合并的放大镜,这样的放大镜主要是便于系携带,便于观察。便携式放大镜还有带光源的和不带光源的,有光源的放大镜观看时候有很多好处,光线保持很稳定。
‘柒’ 在html中 放大镜 效果 的 滑块不动怎么 解决
PC端添加以下meta内容即可:
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
....
</head>
2. Mobile端添加以下meta内容即可:
<head>
<meta name="viewport" content="target-densitydpi=device-dpi, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
.....
</head>
说明:
target-densitydpi=device-dpi,指定屏幕像素密度DPI,device-dpi 为设备原本的DPI值,不会有任何缩放。
width=device-width,指定屏幕宽度,device-width设备屏幕的宽度。
‘捌’ flash8放大镜效果,经过时为什么大小都出现,小字没消失
这个,你没设置透明度,说起来有点复杂,做起来很简单,自己设置下透明度,补间动画
‘玖’ 为什么我做flash放大镜的时候放大镜不跟着鼠标动的啊代码正确的跟着教程做的,就是放大镜不跟着鼠标动
注意我已经修改
时间轴有两层,第一层背景image,这是影片剪辑影片剪辑的代码,影片剪辑也有两层,第一层图onClipEvent (enterFrame)
{ //鼠标跟随,就是你的放大镜影片剪辑的坐标,跟着你鼠标坐标移动;
//这样代码可以起到缓冲作用,如果直接这样:this_x=_root_xmouse;this_y=_root_ymouxe;
这样就没有缓冲效果;
//哎呀,现在都用AS3了,你还用AS2,嘿嘿
movex = (_root._xmouse - this._x) / speed;
overx = overx + movex;
this._x = this._x + Math.round(overx + movex);
movey = (_root._ymouse - this._y) / speed;
overy = overy + movey;
this._y = this._y + Math.round(overy + movey);
//以下代码作用是你的放大镜随着你的鼠标移到哪里,哪里就出现放大效果;
//当然,也和上面一样不是一下子就放大,也是有点缓冲
image._xscale = image._xscale + (scalex - image._xscale) / speed;
image._yscale = image._yscale + (scaley - image._yscale) / speed;
//以下代码:当前显示容器就是你的影片剪辑中image的X坐标=(舞台image的X坐标-放大镜X坐标)*(当前显示容器image的宽度/舞台image的宽度);剩下一行,就不用解释了
//这样做的目的是:出现放大效果时,你的放大的地方,就是该放大的地方,因为如果没有这代码,image放大时,它的相对坐标会移动,即放大了不该放大的地方。
image._x = (_parent.image._x - this._x) * (image._width / _parent.image._width);
image._y = (_parent.image._y - this._y) * (image._height / _parent.image._height);
}
//最后:如果你想学FLash脚步语言,那就学AS3,因为AS3相对AS2很强大。
呵呵
假如两个image坐标都为0,0;假如放大的倍数为2.5
假如你这时放大镜的坐标为100,100,你应该放大的地方当然也是100,100
当放大时,你的代码image._width / _parent.image._width=2.5
影片剪辑里image的宽度和高度都放大500/200=2.5倍,
即放大后你应该放大的坐标变为100*2.5,100*2.5;但是你的放大镜此时的坐标还是100,100
所以,你必须让影片剪辑里image的坐标移动(-250,-250),也就是
(_parent.image._x - this._x) * (image._width / _parent.image._width)=-250
(_parent.image._y - this._y) * (image._height / _parent.image._height)=-250
嘿嘿i,这下分可以给我了吧