`
月亮不懂夜的黑
  • 浏览: 156007 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

svg自定义菜单的动态实现

阅读更多
svg自定义菜单的实现

svg也使用过几次了,但是仍不是太熟练。最近做项目遇到新的问题。用户希望右键我在svg上生成的圆,产生自己的菜单,左键点击进入对应的别的操作。即,也拓展原有的右键功能,同时保留之前的左键功能。

实现的具体思路,感谢强大的互联网,找到了几个有用的方案。第一步先做了静态菜单。

实现方式,num1:

 

在svg里面直接添加下列节点 

<defs> 	
    <menu id="defaultMenu">
	     <header>Adobe SVG Viewer</header>
	     <item action="Open" id="Open">打开(&amp;E)</item>
	     <item action="OpenNew" id="OpenNew">在新窗口中打开(&amp;N)</item>
	     <separator/>
	     <item action="ZoomIn" id="ZoomIn">放大显示(&amp;I)</item>
	     <item action="ZoomOut" id="ZoomOut">缩小显示(&amp;O)</item>
	     <item action="OriginalView" id="OriginalView">原始检视(&amp;W)</item>
	     <separator/>
	     <item action="Quality" id="Quality">较高品质(&amp;Q)</item>
	     <item action="Pause" id="Pause">暂停(&amp;P)</item>
	     <item action="Mute" id="Mute">静音(&amp;M)</item>
	     <separator/>
	     <item action="Find" id="Find">寻找(&amp;F)...</item>
	     <item action="FindAgain" id="FindAgain">再次寻找(&amp;A)</item>
	     <separator/>
	     <item action="Copy" id="Copy">复制选取的文字(&amp;C)</item>
	     <item action="CopySVG" id="CopySVG">复制 SVG(&amp;C)</item>
	     <item action="ViewSVG" id="ViewSVG">检视 SVG(&amp;G)</item>
	     <item action="ViewSource" id="ViewSource">检视原始码(&amp;V)</item>
	     <item action="SaveAs" id="SaveAs">另存 SVG(&amp;S)...</item>
	     <separator/>
	     <item action="Help" id="Help">帮助(&amp;H)</item>
	     <item action="About" id="About">关于 Adobe SVG Viewer(&amp;B)...</item>
   </menu>
   <menu id='myMenu'> /* 定义新菜单 */
     <header>Menu utilisateur</header>
     <item id='Menu0' onactivate="cc()">变色</item>
     <item id='Menu1' onactivate='cd1()'>菜单1</item>
      <item id='Menu2' onactivate='cd2(2)'>菜单2</item>
     <item id='none1'/>
     <item id='Menu3' action="ZoomOut">缩小</item>
     <item id='Menu4' action="ZoomIn">放大</item>
     <item id='none2'/>
     <item id='Menu5' action='ViewSource'>浏览源代码</item>
 </menu>
</defs>

    然后在该SVG中添加JS方法(建议直接添加在SVG中,因为这样可以方便调用svg内置的东西)。

 js方法要在svg定义的想替换位置添加。

function showMyMenu(alias,mn,evt)
	    { 
	      if(evt.button==2)
	       {
	          var menuId = document.getElementById(mn);
	          if(mn == "myMenu"){
	          	//根据相应的具体操作,操纵具体的对象
                  }
	       }
	       
	    }

 我这里为了控制这个Svg的菜单,所以,添加js控制在整个外层g上

<g onmousedown="showMyMenu('','defaultMenu',evt)">
      //其它页面内容
</g>

 

 

 

分享到:
评论

相关推荐

    禁止鼠标右键及svg中自定义右键菜单

    在IT行业中,尤其是在Web开发领域,用户交互设计是至...而在SVG中,我们可以结合CSS和JavaScript创建自定义菜单,以提供更丰富的用户体验。这些技术广泛应用于各种Web应用程序,帮助开发者更好地控制用户与网页的互动。

    html+css仿微信底部自定义菜单

    以上就是使用HTML5和CSS3实现微信底部自定义菜单的基本步骤和技巧。通过不断优化和调整,你可以创建一个既美观又实用的菜单,提升网页的用户体验。在实际项目中,还可能需要考虑更多细节,如动画效果、触摸事件以及...

    HTML5 SVG超炫环状导航菜单动画特效

    同时,通过CSS可以自定义菜单的样式,如背景、边框、文字样式等。 这个特效在网页设计中有着广泛的应用,比如在仪表盘、数据可视化、交互式应用等方面,能够提供独特的视觉效果和高效的导航体验。通过深入理解和...

    html5+css3仿微信底部菜单(可自定义)

    3. ** Canvas 和 SVG **:虽然在这个案例中可能不直接涉及,但HTML5的Canvas和SVG元素提供了丰富的图形绘制能力,可以用于创建更复杂的动态菜单效果。 接下来,CSS3是层叠样式表的第三个主要版本,它带来了许多新的...

    js svg全屏打开菜单动画特效.zip

    4. **SVG路径动画**:对于复杂图形,如自定义形状的菜单项,可能使用`&lt;path&gt;`元素,并通过JavaScript控制`d`属性的变化来实现动画效果。这通常需要精确计算各个阶段的路径数据。 5. **响应式设计**:为了让特效适应...

    html_css_仿微信底部自定义菜单

    总的来说,创建一个“html_css_仿微信底部自定义菜单”的过程包括设计HTML结构、编写CSS样式以实现布局和交互效果,以及通过JavaScript处理用户的交互行为。理解并熟练掌握这些技术对于开发具有高度互动性和良好用户...

    HTML5 SVG应用管理菜单样式.zip

    JavaScript特效可能包括更高级的交互功能,比如动态加载SVG图形、实时更新菜单状态或者根据用户行为进行图形变化。JavaScript可以与SVG元素直接交互,提供更加丰富的用户体验,例如拖放功能、图形的实时编辑或自定义...

    仿扇形菜单动画效果

    【仿扇形菜单动画效果】是一种在...通过学习这些知识点,并结合提供的源码,开发者不仅可以实现仿扇形菜单动画效果,还能提升自己在Android自定义View和动画方面的技能,从而在项目中创造出更多富有创新性的交互设计。

    基于SVG的js圆形菜单插件

    总结,基于SVG的js圆形菜单插件是实现网页动态菜单的一种高效解决方案,它结合了SVG的矢量特性、JavaScript的交互性和CSS的美化效果,为网页增加了趣味性和实用性。通过学习和使用这个插件,开发者可以提升网站的...

    SVG响应式侧边下拉菜单代码.zip

    JavaScript是实现这个下拉菜单动态效果的关键。它允许我们监听用户交互,如点击事件,然后执行相应的函数来展开或收起菜单。通过JavaScript,我们可以控制SVG元素的显示和隐藏,改变其位置、颜色和其他属性,从而...

    html5 svg+css3带左侧收缩菜单宇航员

    在“html5 svg+css3带左侧收缩菜单宇航员”这个项目中,我们可以看到这些技术如何协同工作来实现一个功能丰富的网页设计。 首先,HTML5是超文本标记语言的最新版本,它引入了许多新元素和特性,以更好地支持多媒体...

    HTML5 SVG炫酷遮罩层动画效果

    本案例中,“HTML5 SVG炫酷遮罩层动画效果”是一个利用SVG实现的创新交互设计,特别适用于全屏菜单的展示和页面切换,提供了一种吸引用户的动态视觉体验。 首先,SVG是一种基于XML的图像格式,它的优点在于图像可以...

    这是一款使用html5svg和css3制作的炫酷select下拉菜单美化效果

    在下拉菜单中,SVG可以用于制作精致的箭头图标或其他装饰元素,同时,SVG还支持内联样式和JavaScript操作,使其在动态效果中非常实用。 JavaScript在此项目中的角色主要是增强交互性和动态性。例如,当用户点击下拉...

    html5 svg弹性动画制作网页弹性菜单动画特效

    1. **创建SVG图形元素**:使用SVG的`&lt;svg&gt;`标签来定义一个画布,然后在其中创建菜单项的图形元素,如矩形、圆形或自定义路径。这些元素可以通过`&lt;rect&gt;`, `&lt;circle&gt;`, 或 `&lt;path&gt;`标签创建。 2. **添加CSS样式**:...

    js+svg全屏打开菜单动画特效.zip

    "js+svg全屏打开菜单动画特效.zip"这个压缩包文件提供了一个使用JavaScript、SVG、CSS以及HTML5技术实现的全屏菜单动画特效。这个特效能够吸引用户的注意力,增强网站的互动性和趣味性。 首先,JavaScript是一种...

    vue20的可变彩色svg图标方案

    本方案探讨了如何实现可变彩色SVG图标,使图标颜色能够根据应用的需求动态改变,以提升用户体验并增强界面设计的灵活性。下面将详细介绍这个主题。 一、SVG图标的优势 SVG(Scalable Vector Graphics)是一种基于...

    HTML5 SVG圆形布局文字菜单导航特效.zip

    在这个文件中,HTML元素会被jQuery和自定义JavaScript脚本控制,实现SVG图形的动态行为。 2. **css**:这是一个文件夹,通常包含样式表文件(如style.css),负责定义页面的视觉样式,包括圆形布局的颜色、大小、...

    12个SVG Loading图标演示

    5. JavaScript与SVG:JavaScript可以操作SVG元素,改变其属性,比如路径、颜色、大小等,从而实现复杂的动态效果。例如,使用JavaScript库如Snap.svg或D3.js,可以实现更高级的SVG动画和交互。 6. 文件优化:虽然...

    这是一款效果非常炫酷的html5svg图标变形动画特效插件

    在实际应用中,SVG Morpheus插件可以广泛应用于各种场景,如网页加载指示器、按钮状态变化、导航菜单项激活等。此外,由于它依赖于JavaScript,所以开发者还可以结合其他前端框架,如React、Vue或Angular,以实现更...

    CSS菜单动态生成器

    【CSS菜单动态生成器】是一款专为WINDOW操作系统设计的工具,旨在帮助用户快速、便捷地创建自定义CSS样式菜单。这款软件简化了CSS菜单的制作流程,使得即使是对编程不甚了解的用户也能轻松实现个性化网页导航设计。 ...

Global site tag (gtag.js) - Google Analytics