最近需要做一个动态的根据后台的返回数据而动态显示的导航图,然后我就采用了jquery+ajax+SVG矢量图来实现这个功能。

首先,客户给了个ai的矢量图,我对这一块不懂就找以前同事帮我转成了svg图形,听说很简单,但是矢量图是封闭的情况下。

然后,我就开始研究这个SVG图形的使用:  

  1.SVG图形可以放在embed和iframe标签,虽然embed标签在低版本的浏览器里不支持,但是从长久考虑和技术角度个人觉得放到embed标签里更合适。

  在这个地方只有一个需要注意的地方,svg图片的路径要和网站的路径或域名保持一致。这个问题我也不清楚怎么解释,只能说是个人经验之谈。例如说网站地址是:‘www.baidu.com’,那么embed上的src就应该是‘www.baidu.com/.../xxx.svg’而不是‘~/../xxx.svg’  

 <embed id="emSvg" style="width:800px;height:800px; margin:0 auto;display:block" src="~/Content/Images/navsvg.svg" type="image/svg+xml" pluginspage="http://www.adobe.com/svg/viewer/install/" />

 @*<iframe id="emSvg" style="width:500px;height:500px" src="http://visitorreg.sialchina.cn/sc/chn/content/images/navsvg.svg"></iframe>*@

  2.我这个项目里需要控制的是SVG里面不同模块的背景色。这个就是这个项目里的重头戏了。首先你要知道svg里面各个模块的ID或者是其他能让你通过选择器明确找到你要选择的那个模块。这个如果是自己制作SVG图形的话,尽量按照自己后期要使用的规则对各个模块进行规范。要不就的像我这样自己用浏览器打开,然后找到相应的模块最后再去给这些个模块相应的ID,幸运的是众多模块里我只用10个,所以说多了都是泪啊。下面是我获取相应的模块并修改背景颜色的代码,不过使用embed和Iframe有一点稍微的区别。

  embed标签下面  

 $("#emSvg")[0].getSVGDocument().getElementById(items[i]).setAttribute("fill", "green")

  Iframe标签下面

 emSvg.getSVGDocument().getElementById(items[i]).setAttribute("fill", "green")

  3前面说到了embed标签在低版本的浏览器不支持,这个就需要我们使用一个插件Adobe SVG Viewer来解决,但是我觉得,这个是暂时的,科技互联网发展越来越快,ie9一下的低版本的浏览器慢慢也会淡出人们的生活。

            if (brows.msie){
if ($.browser.version<9){
$("#ieMsg").css("display","");
}
}
 <span id="ieMsg" style="display: none"><a href="" style="color: red; font-weight: bold; font-size: 14px">若图片无法正确显示导航效果,请点击安装Adobe SVG Viewer插件。</a>
</span>

  

Svg图片在asp网站上的使用的更多相关文章

  1. KindEditor上传本地图片在ASP.NET MVC的配置

    http://www.cnblogs.com/upupto/archive/2010/08/24/1807202.html 本文解决KindEditor上传本地图片在ASP.NET MVC中的配置. ...

  2. Python3.7将普通图片(png)转换为SVG图片格式并且让你的网站Logo(图标)从此”动”起来

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_148 在之前的几篇文章中,介绍了业界中比较火爆的图片技术SVG(Scalable Vector Graphics),比如Iconf ...

  3. 见微知著,细节上雕花:SVG生成矢量格式网站图标(Favicon)探究

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_215 Favicon是favorites icon的缩写,也被称为website icon(站点图标).page icon(页面图 ...

  4. C#图片色彩的纠正-上

    WPF(C#)图片色彩的纠正-上 WPF(C#)图片色彩的纠正-下 前言 对图片进行色彩的纠正,其实与WPF是没有什么关系的,为什么标题又是“WPF(C#)图片色彩的纠正”呢,因为这些图片色彩的纠正功 ...

  5. ASP.NET实现二维码 ASP.Net上传文件 SQL基础语法 C# 动态创建数据库三(MySQL) Net Core 实现谷歌翻译ApI 免费版 C#发布和调试WebService ajax调用WebService实现数据库操作 C# 实体类转json数据过滤掉字段为null的字段

    ASP.NET实现二维码 using System;using System.Collections.Generic;using System.Drawing;using System.Linq;us ...

  6. SVG图片背景透明

    今天在调整网页的时候,将logo以原有直接贴代码形式,改为加载文件. 其实真正的目的是做SEO.上次SEO交流后得出 结论:核心在于内容的本身的优化.信噪比很重要.也就是有效信息需要占文章的主要内容, ...

  7. Logo小变动,心境大不同,SVG矢量动画格式网站Logo图片制作与实践教程(Python3)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_207 曾几何时,SVG(Scalable Vector Graphics)矢量动画图被坊间称之为一种被浏览器诅咒的技术,只因为糟糕 ...

  8. python爬虫学习-爬取某个网站上的所有图片

    最近简单地看了下python爬虫的视频.便自己尝试写了下爬虫操作,计划的是把某一个网站上的美女图全给爬下来,不过经过计算,查不多有好几百G的样子,还是算了.就首先下载一点点先看看. 本次爬虫使用的是p ...

  9. ASP.NET 上的 Async/Await 简介

    原文链接 大多数有关 async/await 的在线资源假定您正在开发客户端应用程序,但在服务器上有 async 的位置吗?可以非常肯定地回答“有”.本文是对 ASP.NET 上异步请求的概念性概述, ...

随机推荐

  1. android学习小例子——验证码倒计时按钮

    1.activity_main.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/andro ...

  2. 修改weblogic11g的JDK版本

    1:进入Weblogic域文件夹下面 [wzh@localhost bin]$ pwd/app/wzh/oracle/middleware/user_projects/domains/base_dom ...

  3. GConf 错误:联系配置服务器失败;某些可能原因是需要为 ORBit 启用 TCP/IP 联网

    http://blog.csdn.net/heirenheiren/article/details/8107294 http://blog.sina.com.cn/s/blog_8097f8aa010 ...

  4. 【UVALive - 3211】Now or later (二分+2-SAT)

    题意: 有n架飞机需要着陆.每架飞机有两种选择,早着陆或者晚着陆,二选其一.现在为了保证飞机的着陆安全,要求两架着陆的飞机的时间间隔的最小值达到最大. 分析: 最小值最大问题我们想到二分答案.对于猜测 ...

  5. Qt中连接到同一signal的多个slots的执行顺序问题(4.6以后按连接顺序执行)

    起源 前些天忘记在哪儿讨论过这个问题,今天在csdn又看到有网友问这个问题,而其他网友却无一例外的给出了“无序”这个答案. Manual Qt的问题,当manual中有明确文字说明时,我们应该以Qt的 ...

  6. 两种QMultiMap的遍历方法(最好使用只读遍历器)

    留个爪,备查 QMultiMap<QString, QString>& remote_map = my_obj->m_MapVersion; // ccc 这里体现了引用的好 ...

  7. Android开发者必知的开发资源

    推荐书籍 我推荐下面两本书: The Busy Coder’s Guide to Android Development <The Busy Coder’s Guide to Android D ...

  8. asp.net中水印的实现代码

    水印是为了防止别盗用我们的图片. 两种方式实现水印效果 1)可以在用户上传时添加水印. a)   好处:与2种方法相比,用户每次读取此图片时,服务器直接发送给客户就行了. b)   缺点:破坏了原始图 ...

  9. git reset到之前的某一个commit或者恢复之前删除的某一个分支

    一.使用了git reset之后,想要找回某一个commit 1.git log -g  这个命令只能显示少部分的commit 推荐使用git reflog 找到想要恢复的那个commit的hash, ...

  10. 【转】Android Building System 总结 - 一醉千年 - CSDN博客

    原文网址:http://www.360doc.com/content/15/0314/23/1709014_455175716.shtml  Android Building System 总结 收藏 ...