svg图片动态缩放功能(jquery.svg.pan.zoom)

13 篇文章 0 订阅
6 篇文章 0 订阅

插件以编程方式或通过插件以编程方式或通过鼠标/触摸事件启用平移和缩放SVG图像。
特点:

  • 插件可以通过编程方式或通过特性实现SVG图像的平移和缩放
  • 以编程方式操作SVG viewBox
  • 鼠标和触摸事件来平移SVG视图框
  • 鼠标滚轮事件来放大或缩小SVG视图框动画
  • 鼠标滚轮缩放使光标相对于图像保持在相同的坐标上(也就是类似googlemaps的缩放)
  • 限制视图渲染的区域
    github

viewBox:
viewbox是SVG图像的一个属性,它定义了SVG的可见区域,由4个数字定义:横坐标X、纵坐标Y、宽度Width、高度Height。这些数字一起指定可见区域。这个插件通过操纵这四个数字来工作。例如,将图像向右移动会改变X值,而放大会减小宽度和高度。
**注意事项:触摸以缩放尚不支持不要手动操作svg的viewbox属性,请改用svgpanzoom.setviewbox()。手动操作viewbox会混乱插件的状态。 需要先下载好jquery.js和jquery.svg.pan.zoom.js. **

用法

var svgPanZoom= $("svg").svgPanZoom(options)

如果选择有多个元素,svgPanZoom将以相同的选择顺序为每张图像返回一个svgPanZoom对象数组。如果只选择了一个元素,则返回一个SvgPanZoom对象。如果没有选择任何元素,上述调用将返回null,返回的SvgPanZoom对象包含所有选项,这些选项可以在任何时候直接被覆盖,例如禁用mouseWheel事件:

svgPanZoom.events.mouseWheel= false

SvgPanZoom对象也有通过编程方式操作viewBox的方法。例如:

svgPanZoom.zoomIn()

将使用options.zoomFactor缩放图像。

Options

Options:{
    events: {
        mouseWheel: boolean (true), // 启用鼠标滚轮缩放事件
        doubleClick: boolean (true), // 允许双击以放大事件
        drag: boolean (true), // 允许拖放来移动SVG事件
        dragCursor: string "move" // 拖动SVG时要使用的光标
    },
    animationTime: number (300), //用作动画默认值的时间(毫秒)。设置0以移除动画
    zoomFactor: number (0.25), // 放大或缩小多少
    maxZoom: number (3), // 最大放大倍数,必须是大于1的数字
    panFactor: (number (100), // how much to move the viewBox when calling .panDirection() methods
    initialViewBox: { // 调用.panDirection()方法时移动viewBox的量
        x: number (0) // 左上角X坐标
        y: number (0) // 左上角Y坐标
        width: number (1000) // 视图框的宽度
        height: number (1000) // 视图框的高度
    },
    limits: { // 图像可移动的限制。如果为空或未定义,将使用initialViewBox加上每个方向的15%
        x: number (-150)
        y: number (-150)
        x2: number (1150)
        y2: number (1150)
    }
}

Methods方法

pan:

svgPanZoom.panLeft(amount, animationTime)
svgPanZoom.panRight(amount, animationTime)
svgPanZoom.panUp(amount, animationTime)
svgPanZoom.panDown(amount, animationTime)

将SVG视图框移动到指定的方向。参数:

  • amount:数字,可选。viewBox移动多少,默认为options.panFactor。
  • animationTime:数字,可选。动画应该持续多长时间,默认为options.animationTime

zoom:

svgPanZoom.zoomIn(animationTime)
svgPanZoom.zoomOut(animationTime)

viewBox缩放。参数:

  • animationTime:数字,可选。动画应该持续多长时间,默认为options.animationTime。

reset:

svgPanZoom.reset()

将SVG重置为选项。initialViewBox值。

getViewBox:

svgPanZoom.getViewBox()

以下格式返回视图框:

{
    x: number
    y: number
    width: number
    height: number
}

setViewBox

svgPanZoom.setViewBox(x, y, width, height, animationTime)

将viewBox更改为指定的坐标。会尊重你的选择。限制调整viewBox如果需要(移动或减少它以适应options.limits

  • x:数字,左上角的新x坐标
  • y:数字,左上角的新y坐标
  • width: Number, viewBox的新宽度
  • height: Number, viewBox的新高度
  • animationTime:数字,可选。动画应该持续多长时间,默认为options.animationTime。

setCenter

svgPanZoom.setCenter(x, y, animationTime)

设置SVG的中心。参数:

  • x:数字,中心的新x坐标
  • y:数字,中心的新y坐标
  • animationTime:数字,可选。动画应该持续多长时间,默认为options.animationTime。

注意:

-仅适用于HTML内联的SVG。您可以使用.load()使用AJAX和call()将SVGimage加载到页面中。回调中的svgPanZoom()

-尚不支持触摸缩放尚不支持

-此插件不会在SVG顶部创建任何控件(如移动图像的箭头)。这些控件很容易手动创建,它们可以调用方法来移动图像。

-不要手动操作svg的viewbox属性,请改用svgpanzoom.setviewbox()。手动操作viewbox会混乱插件的状态。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: svg拖拽缩放.zip是一个压缩文件,其中包含了一些用于实现SVG图形拖拽和缩放的文件和代码。 SVG是一种用于描述二维矢量图形的XML格式,可以在网页上显示出高质量的图像。拖拽和缩放是一些常见的交互性功能,能够增强SVG图形的用户体验。 这个压缩文件中可能包含了一些JavaScript代码文件,这些代码通过控制鼠标事件来实现SVG图形的拖拽和缩放功能。可能会有一个HTML文件,其中包含了用于嵌入SVG图形,并与JavaScript代码进行交互的代码。还可能包含一些CSS文件,用于样式化SVG图形。 通过使用这些文件和代码,我们可以在网页上显示SVG图形,并使其具有拖拽和缩放功能。用户可以使用鼠标拖拽SVG图形,移动到所需的位置。同时,用户还可以使用鼠标滚轮或其他的手势进行缩放操作,以便放大或缩小SVG图形。 这些功能能够增加用户与SVG图形的互动性,提升用户的体验。这在许多场景中都非常有用,比如在地图应用中,用户可以通过拖拽和缩放来浏览地图的不同区域;在设计工具中,用户可以通过拖拽和缩放来调整图形的位置和大小等。 使用这个压缩文件提供的文件和代码,我们可以方便地实现SVG图形的拖拽和缩放,为用户提供更好的用户体验。 ### 回答2: svg拖拽缩放.zip是一个压缩文件,其中包含了用于实现SVG拖拽和缩放功能的相关代码和资源文件。 在现代网页开发中,SVG(可缩放矢量图形)被广泛应用于图形设计和数据可视化领域。通过使用SVG拖拽缩放功能,我们可以实现在网页上对SVG图形进行简单的拖拽和缩放操作。 这个压缩文件中可能包含了HTML、CSS和JavaScript等文件,用于实现SVG拖拽和缩放功能的具体代码。通常情况下,这些代码会利用JavaScript的事件监听和DOM操作来实现拖拽和缩放效果。 在实际使用中,我们可以将这些相关文件解压缩并在网页中引入相应的代码文件。然后,根据具体的需求进行配置和定制,以实现自己想要的SVG拖拽和缩放效果。 总而言之,SVG拖拽缩放.zip是一个用于实现SVG拖拽和缩放功能的压缩文件,内含相关代码和资源文件。通过正确使用这些文件,我们可以在网页中实现对SVG图形的简单拖拽和缩放操作。 ### 回答3: "svg拖拽缩放.zip" 是一个文件,是一个压缩文件,其中包含了一种使用 SVG(可缩放矢量图形)进行拖拽和缩放的示例代码和相关资源。 SVG 是一种用于描述二维矢量图形的 XML 格式标准,它可以实现图像的放大缩小而不失真,并且可以直接在网页上显示和编辑,因此在 Web 开发中非常常用。而拖拽和缩放是在用户交互中经常使用的功能。 该示例代码和资源文件能够帮助开发者学习如何使用 SVG 实现图形的拖拽和缩放功能。通过使用相关的 JavaScript 代码,可以实现通过鼠标拖动图形并放置到指定位置的功能,同时也可以通过滚动鼠标滚轮来实现图形的缩放操作。 在解压缩并查看该压缩文件后,你将找到一些包含 SVG 图形和 JavaScript 代码的文件。这些文件可能包括用于绘制图形和定义交互行为的 SVG 标签、包含操作处理函数的 JavaScript 文件等。 通过阅读和理解这些代码,你可以学习到如何在自己的网页或应用程序中实现类似的拖拽和缩放功能。你可以根据自己的需求来修改和定制这些代码,以满足你的具体开发需求。 总之,“svg拖拽缩放.zip” 提供了一个学习如何使用 SVG 实现拖拽和缩放功能的示例代码和资源,对于对 SVG 和拖拽、缩放功能感兴趣的开发者来说,是一个有价值的资料。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值