javascript - 如何修复 snapsvg.js 中蒙版的位置?

标签 javascript html css svg snap.svg

这是js代码:

var cv = Snap('#cv').attr({height: '100%', width: '100%'});

var mskHide = cv.rect().attr({height: '100%', width: '100%', left:0, top:0, fill: '#666'});
var mskShow = cv.circle(200, 200, 150).attr({fill: '#fff'});
var mskG = cv.group(mskHide, mskShow);

var bg = cv.circle(200, 200, 150).attr({fill: '#aaa'});
var customImg = cv.image('http://placehold.it/500/990000').attr({mask: mskG});

//when I drag the customImg, I want mskG fixed position
customImg.drag();

您可以在这里预览:http://codepen.io/rlog/pen/eKBlc

问题是:当我拖动customImg时,如何固定mskG的位置。

mskG 不需要移动 whit costomImg

这个例子就是我想要的:http://codepen.io/rlog/pen/bAImu

谢谢!

最佳答案

您基本上可以完成第二个代码笔中的操作。

var cv = Snap('#cv').attr({height: '100%', width: '100%'});

var mskHide = cv.rect().attr({height: '100%', width: '100%', left:0, top:0, fill: '#666'});
var mskShow = cv.circle(200, 200, 150).attr({fill: '#fff'});
var mskG = cv.group(mskHide, mskShow);


var bg = cv.circle(200, 200, 150).attr({fill: '#aaa'});

var customImg = cv.image('http://placehold.it/500/990000').attr({mask: mskG });


customImg.drag( myDrag );
function myDrag(dx,dy,x,y) {
  customImg.attr({ x: dx, y: dy })
}

codepen

如果您想要与所示示例不同的拖动以包括存储的开始拖动位置,您可以像下面这样修改它......

customImg.attr({ x: 0, y: 0})

var move = function(dx,dy) {
this.attr({
      x: +this.data('ox') + +dx,
      y: +this.data('oy') + +dy
    })
} 

var start = function(x,y) {
  this.data('ox', this.attr('x'));
  this.data('oy', this.attr('y'));
}

var end = function(x,y) {}  

customImg.drag( move, start, end )

codepen

关于javascript - 如何修复 snapsvg.js 中蒙版的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24256991/

相关文章:

javascript - Angular Material 垫菜单重新加载页面

javascript - 在knockout.js中动态调用attr src上child的函数

javascript - 如何在我的 laravel 项目中添加自定义 javascript 文件?

javascript - 如何在 AngularJS 中保存页面

javascript - NextJS : How to correctly add firebase analytics to NextJS app

html - Vim HTML 语法高亮不工作

html - 在 CSS FlexBox 布局中自动调整图像大小并保持纵横比?

html - 在 css 中悬停 - 文本会破坏悬停?

html - 跨浏览器 CSS(100% 高度)

html - 向下移动卡片及其内容