利用SVG clip-path显示动画图片
2012-03-29 14:18
393 查看
利用SVG clip-path显示动画图片
需求:手头的动画资源大部分为同一图片的动画集合,而SVG中没有能够直接利用的办法
解决方法:将图片显示在SVG中,并根据帧数,动态生成clip-path,选择需要的部分,并根据选择部分的偏移量动态修改SVG图片的坐标,实现动画效果
var flag=0;
function onCircleClick(evt)
{ var sprite = document.getElementById("sprite");
if(flag == 0)
{
sprite.setAttributeNS(null,"x", "300");
sprite.setAttributeNS(null,"clip-path", "url(#MyClip2)");
flag = 1;
}
else
{
sprite.setAttributeNS(null,"x", "350");
sprite.setAttributeNS(null,"clip-path", "url(#MyClip1)");
flag = 0;
}
}
<svg id="svg" style="position:absolute" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" pointer-events="none">
<defs>
<clipPath id="MyClip1" >
<path d="M 370 270 l 60 0 l 0 60 l -60 0 Z" />
</clipPath>
<clipPath id="MyClip2" >
<path d="M 385 270 l 60 0 l 0 60 l -60 0 Z" />
</clipPath>
</defs>
<image id="sprite" onclick="onCircleClick(evt)" clip-path="url(#MyClip1)" x="350" y="270" width="500" height="60" pointer-events="all"
xlink:href="res/sprite.png"></image>
</svg>
需求:手头的动画资源大部分为同一图片的动画集合,而SVG中没有能够直接利用的办法
解决方法:将图片显示在SVG中,并根据帧数,动态生成clip-path,选择需要的部分,并根据选择部分的偏移量动态修改SVG图片的坐标,实现动画效果
var flag=0;
function onCircleClick(evt)
{ var sprite = document.getElementById("sprite");
if(flag == 0)
{
sprite.setAttributeNS(null,"x", "300");
sprite.setAttributeNS(null,"clip-path", "url(#MyClip2)");
flag = 1;
}
else
{
sprite.setAttributeNS(null,"x", "350");
sprite.setAttributeNS(null,"clip-path", "url(#MyClip1)");
flag = 0;
}
}
<svg id="svg" style="position:absolute" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" pointer-events="none">
<defs>
<clipPath id="MyClip1" >
<path d="M 370 270 l 60 0 l 0 60 l -60 0 Z" />
</clipPath>
<clipPath id="MyClip2" >
<path d="M 385 270 l 60 0 l 0 60 l -60 0 Z" />
</clipPath>
</defs>
<image id="sprite" onclick="onCircleClick(evt)" clip-path="url(#MyClip1)" x="350" y="270" width="500" height="60" pointer-events="all"
xlink:href="res/sprite.png"></image>
</svg>
相关文章推荐
- 原创:利用JS制作GIF动画图(及图片轮转显示效果)
- 利用animation-list做每隔几秒显示一张图片的动画效果
- 【java】java显示会动的图片(类似于动画)
- Swift - 集成app启动页广告,切换rootViewController,支持LaunchImage和LaunchScreen.storyboard,支持GIF图片显示,支持视图过渡动画
- Android中利用OnTouchListener在ImageView中框选显示图片
- 利用css将文字和图片水平垂直居中显示
- 带客户端脚本的图片控件,可利用后台代码修改图片显示(C#代码)
- 利用QPixmap显示图片
- 利用WebView加载HTML代码时解决图片正常显示
- 利用MFC显示IplImage结构图片
- 关于SVG图片不显示
- cocos2d-x 3.2 |如何实现图片显示和精灵动画 Sprite
- iOS GIF 格式动画 图片显示
- SVG基本图形及clipPath;
- 利用CImage显示透明PNG图片
- 利用CvvImage类在MFC控件中显示图片
- iOS 编程 利用UIScrollView 编写无缝循环显示图片
- 在WTL中利用滚动窗口类CScrollWindowImpl显示BMP图片
- 利用对话框打开一个图像文件,并显示图片
- 如何利用 WebBrowser 控件,显示 .GIF 动画?