首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我想为SVG元素实现SVG剪辑路径。

我想为SVG元素实现SVG剪辑路径。
EN

Stack Overflow用户
提问于 2018-05-19 13:00:01
回答 1查看 954关注 0票数 1

我想为SVG元素实现SVG剪辑路径。我有一个DIV元素,其中我想把SVG元素作为一个剪辑掩码,而且我还有一个单独的SVG元素,它有一个应用剪切掩码的图像。

  1. 我面临的第一个问题是剪辑掩码移动到视图端口的左上角,而不是位于父DIV元素的内部。
  2. 第二个问题是,我想要在整个屏幕上制作一个图像,而不是取决于屏幕大小。

不正确的蒙面圈

正确的面具圈(我想要的)

你有什么建议吗?

提前感谢!

代码语言:javascript
运行
AI代码解释
复制
html, body { margin:0; padding:0; overflow:hidden }

svg { position:absolute; top:0; left:0;}


.image-clip-src {
  width: 100%;
  height: 100%;
}

.svg-wrapper {
  width: 72px;
  height: 72px;
  padding: 2.5em;
  border: 1px solid #4D4F51;
  margin: 0 auto;
  border-radius: 50%;
  overflow: hidden;
  position: fixed;
  top: 55%;
  z-index: 9;
  left: 64%;
  transform: translateY(-50%);
  cursor: pointer;
}

.clipped-image image {
  clip-path: url(#clipping);
}
代码语言:javascript
运行
AI代码解释
复制
<svg class="clipped-image" width="100%" height="100%" viewBox="0 0 1440 960" preserveAspectRatio="xMinYMin meet">
      <image class="image-clip-src" xlink:href="https://images.unsplash.com/photo-1526327227970-4bda49fa3489?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=3c4bce33d96df6b18af53fb2dae3363e&auto=format&fit=crop&w=1650&q=80" width="100%" height="100%" overflow="visible"/>
</svg>

<div class="svg-wrapper">
  <svg class="svg-defs">
    <defs>
      <clipPath id="clipping">
      <circle r="72" stroke="black" stroke-width="3"/>
      </clipPath>
    </defs>
  </svg>
</div>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-21 03:43:54

这不是SVG的工作方式。

当您告诉某些东西要使用剪辑路径时,它只看到剪辑路径定义本身。它不知道也不关心您在页面上定位它的父<svg>的位置。

如果希望剪辑圈在水图像上的某个位置,则需要使用cxcy指定其位置。

代码语言:javascript
运行
AI代码解释
复制
html, body { margin:0; padding:0; overflow:hidden }

svg { position:absolute; top:0; left:0;}


.image-clip-src {
  width: 100%;
  height: 100%;
}

.clipped-image image {
  clip-path: url(#clipping);
}
代码语言:javascript
运行
AI代码解释
复制
<svg class="clipped-image" width="100%" height="100%" viewBox="0 0 1440 960" preserveAspectRatio="xMinYMin meet">
  <defs>
    <clipPath id="clipping">
      <circle cx="64%" cy="55%" r="72" stroke="black" stroke-width="3"/>
    </clipPath>
  </defs>
  <image class="image-clip-src" xlink:href="https://images.unsplash.com/photo-1526327227970-4bda49fa3489?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=3c4bce33d96df6b18af53fb2dae3363e&auto=format&fit=crop&w=1650&q=80" width="100%" height="100%" overflow="visible"/>
  <circle cx="64%" cy="55%" r="72" fill="none" stroke="#4D4F51" stroke-width="1"/>
</svg>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50429449

复制
相关文章
Google Maps JSAPI V3
    1. 不再需要API Key 2. 指定sensor传感器参数,检测到用户当前位置 3. 针对移动设备(IPhone设备和Android系统)的开发 4. 支持本地化 5. 版本管理
py3study
2020/01/08
1.1K0
Qt状态更改事件
可以捕获的状态有: QEvent::ToolBarChange (在macOS上工具栏按钮被切换) QEvent::ActivationChange (顶级窗口激活状态已更改) QEvent::EnabledChange (窗口的启用状态已更改) QEvent::FontChange (窗口的字体已更改) QEvent::StyleChange (窗口的样式已更改) QEvent::PaletteChange (窗口的调色板已更改) QEvent::WindowTitleChange (窗口的标题已更改) QEvent::IconTextChange (窗口的图标文本已更改(不赞成使用)) QEvent::ModifiedChange (窗口的修改状态已更改) QEvent::MouseTrackingChange (鼠标跟踪状态已更改) QEvent::ParentChange (窗口的父类已更改) QEvent::WindowStateChange (窗口的状态"最小化、最大化或全屏"已更改) QEvent::LanguageChange (应用程序翻译已更改) QEvent::LocaleChange (系统区域设置已更改) QEvent::LayoutDirectionChange (默认应用程序布局方向已更改) QEvent::ReadOnlyChange (窗口的只读模式已更改)
Qt君
2023/03/17
1.1K0
Qt状态更改事件
Ubuntu“无法获得锁”解决方案(E: 无法获得锁 /var/cache/apt/archive)
[scode type="yellow"]Ubuntu “无法获得锁”解决方案(E: 无法获得锁 /var/cache/apt/archive)[/scode]
乐心湖
2020/07/31
1.8K0
SQL server无法更改表
在设计器中,选择表设计器和数据库设计器,将阻止保存要求重新创建表的更改选项取消勾选 再次编辑表中内容时就不会再有错误弹窗。
magize
2023/07/11
3490
SQL server无法更改表
maps
通过向 make 函数传入键和值的类型,可以创建 map。make(map[type of key]type of value) 是创建 map 的语法。
酷走天涯
2019/06/11
5620
E: 无法获得锁 /var/lib/dpkg/lock
Ubuntu下很常见的问题,标记一下。 u1@node:~# sudo apt-get install -y mysql-client mysql-server E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它? u1@node:~# sudo apt-get install -y mysql-client mysql-server E: 无法获得锁 /var/lib/dpkg/l
程裕强
2022/05/06
4480
获得焦点与失去焦点事件
获得焦点事件(onfocus)是当某个元素获得焦点时触发事件处理程序。
全栈程序员站长
2022/09/07
6.1K0
[踩坑]iconfont Symbol svg引入无法更改颜色
最近公司组织架构调整(反正每次组织架构调整,领导就会下场。有一个idea或者有重构一下,先定一个月底上),被拉取一个项目组做新项目。这边图标现状:有些项目是font-face方式,有些用的阿里图标库,最近又在用腾讯图标库,有些甚至直接切图。
玖柒的小窝
2021/11/16
3.8K0
[踩坑]iconfont Symbol svg引入无法更改颜色
Grafana、Loki 和 Tempo 更改开源协议为AGPL v3
Grafana、Grafana Loki 和 Grafana Tempo 从 Apache License 2.0 转为 AGPL v3 许可证。而相关插件、代理与部分特定库仍将保持 Apache 许可状态。
深度学习与Python
2021/05/07
2.8K0
Grafana、Loki 和 Tempo 更改开源协议为AGPL v3
Go 语言之 Maps 详解:创建、遍历、操作和注意事项
Maps用于以键值对的形式存储数据值。Maps中的每个元素都是一个键值对。Maps是一个无序且可更改的集合,不允许重复。Maps的长度是其元素的数量。您可以使用 len() 函数来查找长度。Maps的默认值是 nil。Maps保存对底层哈希表的引用。
小万哥
2023/09/09
2920
Go 语言之 Maps 详解:创建、遍历、操作和注意事项
POH和POV事件获得屏幕字段的值
在SCREEN显示之前,系统会自动将程序变量值存放到屏幕字段中:在PAI事件中,系统会自动将屏幕字段的值更新到相应的程序变量中。 在SCREEN LOGIC中我们还有POH和POV事件,所以需要调用DYNP_VALUES_READ函数来读取屏幕字段值。
秋白
2022/06/23
1.2K0
maps in Go 1.21
Go 1.21中新增的 maps包中定义了一系列非常有用的函数,用于处理任意类型的 map。
孟斯特
2023/10/19
1510
maps in Go 1.21
Kubernetes Config Maps
下一篇: Kubernetes Secrets 密钥管理→
jwangkun
2021/12/23
5470
Go-Maps
语法汇总 前面介绍的array、slice都是顺序性列表,本节的map则是无序的。 这个map和C/C++/Java的map一样,在Python中称为字典/dictionary。但Golang中map的用法更符合脚本语言的特点,和Python很像。 涉及的主要语法点: var the_map map[string]int the_map := make(map[string]int) the_map := map[string]int {key:value, ...} value, ok := the_ma
李海彬
2018/03/27
6980
Android-无法获得Service内容-Service通信
当程序通过startService()和stopService()启动、关闭Service时Service与访问者不存在太多关联,因此service与用户之间无法进行通信、交换数据。
圆号本昊
2021/09/24
8030
Android-无法获得Service内容-Service通信
Go-Maps
语法汇总 前面介绍的array、slice都是顺序性列表,本节的map则是无序的。 这个map和C/C++/Java的map一样,在Python中称为字典/dictionary。但Golang中map的用法更符合脚本语言的特点,和Python很像。 涉及的主要语法点: var the_map map[string]int the_map := make(map[string]int) the_map := map[string]int {key:value, ...} value, ok := the_ma
李海彬
2018/03/23
7440
原生js获得八种方式,事件操作
08.17自我总结 关于js 一.原生js获得八种方式 通过ID获取(getElementById) 通过name属性(getElementsByName) 通过标签名(getElementsByTagName) 通过类名(getElementsByClassName) 通过选择器获取一个元素(querySelector) 通过选择器获取一组元素(querySelectorAll) 获取html的方法(document.documentElement) document.documentElement是专门
小小咸鱼YwY
2019/09/11
3.4K0
小案例:结果缓存无法使用,RESULT_CACHE_MAX_SIZE值无法更改的问题
最近遇到了一个 RESULT_CACHE_MAX_SIZE 参数值无法更改的问题。
SQLplusDB
2022/08/19
2K0
高德地图 HELLO,AMAP!
今天实在是有点慌啊,慌在不知道看什么啊,翻了半天,还是想看个新东西,本来看数据仓库的,结合买的阿里云也能用起来,但看到技术的时候太偏阿里技术了,要不下午再说吧。
疯狂的KK
2019/12/03
1.9K0
解决Mac无法成功安装pygame,无法更改窗口背景颜色,不显示飞船图像的问题
在学习《python编程 从入门到实践》这本书的过程中,按照书上的操作步骤,当我们在终端中使用pip3 install --user hg+http://bitbucket.org/pygame/pygame 命令无法安装pygame,或者通过pip3 install pygame 命令成功安装后,在编写《外星人入侵》代码中调用 import pygame 模块运行程序,会发现python应用图标一直在程序坞中跳动或者不动(如果系统偏好设置里没有开启打开程序时跳动则不动),虽然此时可以通过卸载python(很大一部分原因是因为你的python是官网下载安装的), 然后通过homebrew的方法将python跟pygame必须完全用终端安装的方法解决(命令书上有,但是你将可能遇到下面的问题)。
alithefox
2020/03/27
4.4K0

相似问题

原木运输如何跟踪

10

原木运输如何保持跟踪?

10

原木运输保留问题

10

暂时停止原木运输

10

对原木运输的怀疑

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档