热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

翻转大部分svg图像,但不翻转其中的文本

如何解决《翻转大部分svg图像,但不翻转其中的文本》经验,为你挑选了3个好方法。

我有一大堆像这样的svg图像:
在此输入图像描述


  
    
    
    
    
  
  
      

      

      

      

      

      

      

      
  

以及必须绘制数字的每个图像的坐标列表(请参阅以下svg代码的文本元素).问题是:当我添加所需的文本元素时,它们会垂直和水平翻转:
在此输入图像描述


  
    
    
    
    
  
  
      
      

      

      

      

      

      

      

      1
      2
      3
      4
      5
      6
      7
  

我无法找到一种方法来使文本显示在正确的位置而不会水平和垂直翻转.我已经尝试将文本包装在另一个g-tag中并再次进行转换,然后将其还原,但随后文本将消失.我也尝试将文本从原始g-tag中移出,但我的坐标不再有效......

编辑:我正在寻找一种方式来生成svgs,它们与Safari(在Windows上),Chrome和Firefox兼容.

Edit2:不幸的是我无法使用,transform-box因为我需要支持基于Safari的浏览器,它不支持它.



1> ccprog..:

操作SVG,您需要做的就是

使用transform属性移动组外部的元素

使用重新计算y属性

y -> 940 - y

这假设transform属性总是transform="scale(1, -1) translate(0, -900)"和字体大小80px.一般公式是

y -> (negative y translation + font size / 2) - y

这是一个利用cheerio更改现有文件的节点脚本:

const cheerio = require('cheerio');
const $ = cheerio.load(xmlText, { xmlMode: true });

function flipTextInPlace ($) {
    $('text').each(() => {
       const y = $(this).attr('y');
       $(this).attr('y', 940 - y);
    }).appendTo('svg');
}



2> enxaneta..:

我希望这有帮助:

text:nth-child(1) {
  transform: scale(1, -1);
  transform-origin: 317px 812px;/*same as text coords*/
  dominant-baseline: hanging;
}

  
    
    
    
    
  
  
      
      

      

      

      

      

      

      
    
    
      1
      2
      3
      4
      5
      6
      7
    
  
 


3> scraaappy..:

您可以在文本节点上使用css transform

编辑

受到@enxaneta回答的启发,你可以运行这个小脚本

const text = document.querySelectorAll("text");

text.forEach(function(el){   
  el.style.transformOrigin = el.getAttribute('x')+'px '+el.getAttribute('y')+'px';
  el.style.transform = "scale(1,-1)";     
});
text{
  dominant-baseline:central;
}

  
    
    
    
    
  
  
      
      

      

      

      

      

      

      

      1
      2
      3
      4
      5
      6
      7
  

推荐阅读
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • node.jsrequire和ES6导入导出的区别原 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • 【JavaScript 教程】第六章 数组16—flat() :递归地将数组展平到指定的深度
    英文|https:www.javascripttutorial.net译文|杨小爱在上节,我们学习如何使用JavaScriptArrayjoin()方法将数组的所有元 ... [详细]
  • OrbitDBPeer 2 Peer Database using CRDTs
    2019独角兽企业重金招聘Python工程师标准Apeer-to-peerdatabaseforthedecentralizedwebOrbitDBisaserverless ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • position属性absolute与relative的区别和用法详解
    本文详细解读了CSS中的position属性absolute和relative的区别和用法。通过解释绝对定位和相对定位的含义,以及配合TOP、RIGHT、BOTTOM、LEFT进行定位的方式,说明了它们的特性和能够实现的效果。同时指出了在网页居中时使用Absolute可能会出错的原因,即以浏览器左上角为原始点进行定位,不会随着分辨率的变化而变化位置。最后总结了一些使用这两个属性的技巧。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 本文介绍了2015年九月八日的js学习总结及相关知识点,包括参考书《javaScript Dom编程的艺术》、js简史、Dom、DHTML、解释型程序设计和编译型程序设计等内容。同时还提到了最佳实践是将标签放到HTML文档的最后,并且对语句和注释的使用进行了说明。 ... [详细]
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
  • 简述在某个项目中需要分析PHP代码,分离出对应的函数调用(以及源代码对应的位置)。虽然这使用正则也可以实现,但无论从效率还是代码复杂度方面考虑ÿ ... [详细]
  • Ihaveaforminadirectivetemplate:我在指令模板中有一个表单:<formn ... [详细]
  • MindFusion Diagramming for Java, 最新版 Crack
    DiagrammingforJava,V4.6.1AuniqueJavaSwinglibraryforanytypeofflowchart.您需要的每一个图表功能图表、方案、图形、 ... [详细]
author-avatar
sean
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有