gpt4 book ai didi

javascript - jQuery Javascript 图像放大镜

转载 作者:行者123 更新时间:2023-11-30 18:43:46 25 4
gpt4 key购买 nike

我正在寻找悬停时不需要两个图像(大和小)工作的 jquery 或 javascript 图像放大镜。我已经搜索了几个小时,但没有找到任何按照他们所说的方式工作的。

  • iZoom,
  • jQZoom,
  • tjp缩放,
  • 图片放大,
  • 图片缩放,
  • ImageLens,
  • 放大镜

都已尝试过,但出于某种原因无法使用我当前的配置。

所以此时我正在寻找非谷歌搜索结果,因为我已经浏览了“jquery Image Magnifier”的 25 页结果,但没有任何效果。

最佳答案

您可以在隐藏 Canvas 中渲染图像的副本,在鼠标位置周围抓取一个矩形并在第二个可见 Canvas 中渲染该部分的放大图。它是用很少几行代码编写的——即使是用普通的 Javascript:

var zoom = function(img){
var canS = document.createElement('canvas'),
can = document.createElement('canvas'),
ctxS = canS.getContext('2d'),
ctx = can.getContext('2d'),
id = ctx.createImageData(240,240),
de = document.documentElement;
can.className = 'zoom';
can.width = can.height = 240;
canS.width = img.width;
canS.height = img.height;
img.parentElement.insertBefore(can,img.nextSibling);
ctxS.drawImage(img,0,0);
img.onmousemove = function(e){
var idS=ctxS.getImageData(
e.clientX-e.target.offsetLeft+(window.pageXOffset||de.scrollLeft)-20,
e.clientY-e.target.offsetTop+(window.pageYOffset||de.scrollTop)-20,
40,40);
for (var y=0;y<240;y++)
for (var x=0;x<240;x++)
for (var i=0;i<4;i++)
id.data[(240*y+x)*4+i] = idS.data[(40*~~(y/6)+~~(x/6))*4+i];
ctx.putImageData(id,0,0);
}
}

例子: http://kirox.de/test/magnify.html

有一个指向改进版本的链接,该版本具有可调节的圆形镜头,具有灯光效果和桶形失真。也适用于 Canvas 。

限制:

  • 不适用于跨域图像 URL
  • 不适用于旧版本的 IE
  • 在当前版本的 Firefox 25 中,在徘徊一段时间后速度明显下降

关于javascript - jQuery Javascript 图像放大镜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6074588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com