`

svg鼠标响应事件的四种方法

    博客分类:
  • svg
阅读更多
鼠标响应事件的四种方法,以click事件为例。


Mouse Events - SMIL

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink">
    <rect x="5" y="5" width="40" height="40" fill="red">
        <set attributeName="fill" to="blue" begin="click"/>
    </rect>
</svg>

实例演示:http://www.kevlindev.com/tutorials/basics/events/mouse/svg_smil/click.svg

Mouse Events - Attributes

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
    <!ATTLIST svg
              xmlns:a3 CDATA #IMPLIED
              a3:scriptImplementation CDATA #IMPLIED>
    <!ATTLIST script
              a3:scriptImplementation CDATA #IMPLIED>
]>
<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     xmlns:a3="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
     a3:scriptImplementation="Adobe">
    <script type="text/ecmascript" a3:scriptImplementation="Adobe"><![CDATA[
        function changeColor(evt) {
            var rect = evt.target;
           
            rect.setAttributeNS(null, "fill", "purple")
        }
    ]]></script>
    <rect x="5" y="5" width="40" height="40" fill="red"
          onclick="changeColor(evt)"/>
</svg>

实例演示:

http://www.kevlindev.com/tutorials/basics/events/mouse/svg_js/onclick.svg

Mouse Events - JavaScript+SMIL

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
    <!ATTLIST svg
              xmlns:a3 CDATA #IMPLIED
              a3:scriptImplementation CDATA #IMPLIED>
    <!ATTLIST script
              a3:scriptImplementation CDATA #IMPLIED>
]>
<svg onload="makeShape(evt)"
     xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     xmlns:a3="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
     a3:scriptImplementation="Adobe">
    <script type="text/ecmascript" a3:scriptImplementation="Adobe"><![CDATA[
        var svgns = "http://www.w3.org/2000/svg";
        function makeShape(evt) {
            if ( window.svgDocument == null )
                svgDocument = evt.target.ownerDocument;
           
            var rect = svgDocument.createElementNS(svgns, "rect");
            rect.setAttributeNS(null, "x", "5");
            rect.setAttributeNS(null, "y", "5");
            rect.setAttributeNS(null, "width", "40");
            rect.setAttributeNS(null, "height", "40");
            rect.setAttributeNS(null, "fill", "green");
           
            var set = svgDocument.createElementNS(svgns, "set");
            set.setAttributeNS(null, "attributeName", "fill");
            set.setAttributeNS(null, "to", "blue");
            set.setAttributeNS(null, "begin", "click");
           
            rect.appendChild(set);
            svgDocument.documentElement.appendChild(rect);
        }
    ]]></script>
</svg>
实例演示:http://www.kevlindev.com/tutorials/basics/events/mouse/js_dom_smil/click_js_smil.svg

Mouse Events - EventListener

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
    <!ATTLIST svg
              xmlns:a3 CDATA #IMPLIED
              a3:scriptImplementation CDATA #IMPLIED>
    <!ATTLIST script
              a3:scriptImplementation CDATA #IMPLIED>
]>
<svg onload="makeShape(evt)"
     xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     xmlns:a3="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
     a3:scriptImplementation="Adobe">
    <script type="text/ecmascript" a3:scriptImplementation="Adobe"><![CDATA[
        var svgns = "http://www.w3.org/2000/svg";
        function makeShape(evt) {
            if ( window.svgDocument == null )
                svgDocument = evt.target.ownerDocument;
           
            var rect = svgDocument.createElementNS(svgns, "rect");
            rect.setAttributeNS(null, "x", 5);
            rect.setAttributeNS(null, "y", 5);
            rect.setAttributeNS(null, "width", 40);
            rect.setAttributeNS(null, "height", 40);
            rect.setAttributeNS(null, "fill", "green");
           
            rect.addEventListener("click", changeColor, false);
           
            svgDocument.documentElement.appendChild(rect);
        }
       
        function changeColor(evt) {
            var target = evt.target;
            target.setAttributeNS(null, "fill", "purple");
        }
    ]]></script>
</svg>

实例演示:http://www.kevlindev.com/tutorials/basics/events/mouse/js_dom/click_js.svg


分享到:
评论

相关推荐

    svg小例子(主要是鼠标事件)

    了解并熟练运用SVG鼠标事件,将大大提升你的前端开发能力。 总之,这个SVG小例子压缩包提供了一个实践和学习SVG与鼠标事件交互的好机会。通过对这些例子的分析和实践,你不仅能理解SVG的基本元素,还能掌握如何利用...

    HTML5 svg实现响应鼠标点击燃烧的光剑火焰箭动画效果源码.zip

    再者,SVG还支持事件监听器,使得图形可以响应用户的交互操作。在本案例中,"响应鼠标点击"这一功能就是通过添加click事件监听器实现的。当用户点击页面时,JavaScript代码会被触发,进而执行相应的动画逻辑。 ...

    html5 svg 中元素点击事件添加方法

    这一点非常重要,因为SVG元素可以独立响应鼠标事件,如click、mouseover、mouseout等,而Canvas则必须依赖于Canvas本身进行事件捕获。 4. 在移动设备,特别是iPad上,可能需要确保SVG元素的点击事件正确地添加。有...

    CSS3+SVG实现鼠标响应式塔楼和云梯动画效果源码.zip

    在本资源中,"CSS3+SVG实现鼠标响应式塔楼和云梯动画效果源码.zip" 提供了一个使用现代Web技术实现互动动画效果的示例。这个项目结合了CSS3的强大功能和SVG(可缩放矢量图形)的灵活性,以创建一个动态的、对鼠标...

    CSS3+SVG实现鼠标响应式摇篮车宝宝推车卡通图标动画效果源码.zip

    在本资源中,"CSS3+SVG实现鼠标响应式摇篮车宝宝推车卡通图标动画效果源码.zip",我们探讨的是如何利用现代Web技术,尤其是CSS3和SVG,来创建一个互动式的、具有动画效果的卡通摇篮车图标。这个图标可能是用于儿童...

    CSS3+SVG实现鼠标响应式APP脸谱图标动画效果源码.zip

    在本项目中,“CSS3+SVG实现鼠标响应式APP脸谱图标动画效果源码.zip”是一个包含使用现代Web技术创建动态、交互式图形的资源包。这个源码着重展示了如何利用CSS3和SVG(可缩放矢量图形)来创建响应用户鼠标动作的...

    html5+svg绘制响应鼠标滑过盛开的玫瑰花动画特效源码.zip

    在这个特定的压缩包中,“html5+svg绘制响应鼠标滑过盛开的玫瑰花动画特效源码.zip”包含了一个使用HTML5和SVG(Scalable Vector Graphics)技术实现的互动动画效果,特别是当鼠标滑过时,玫瑰花会呈现盛开的状态。...

    TweenMax.js+SVG实现的鼠标响应式含羞草动画效果源码.zip

    在这个项目中, TweenMax.js 被用来实现一个鼠标响应式的含羞草动画效果。SVG(Scalable Vector Graphics)是一种基于XML的矢量图像格式,它可以提供高质量的图形,并且在放大时不会失真。 在SVG中,我们可以创建...

    html5 svg和css3超神奇图片鼠标hover动画效果

    HTML5提供了诸如`addEventListener`这样的方法,可以监听用户的鼠标悬停事件,当事件触发时执行相应的JavaScript代码,如启动一个动画序列。 6. **文件结构**:压缩包中的文件可能包含以下内容: - `index.html`:...

    SVG Demo.rar

    3. SVG鼠标事件: SVG元素可以响应与鼠标相关的事件,如`mouseover`、`mouseout`、`mousedown`、`mouseup`和`click`。例如,我们可以为一个SVG元素添加点击事件监听器,当用户点击该元素时,执行特定的JavaScript...

    HTML5 SVG鼠标点击按钮水纹特效代码4套提供下载.zip

    本资源“HTML5 SVG鼠标点击按钮水纹特效代码4套提供下载.zip”显然是一个包含四种不同设计的HTML5 SVG按钮点击水纹效果的代码集合。这些特效可以为网页中的表单按钮增添视觉吸引力,使用户交互变得更加生动有趣。...

    jQuery+CSS3实现的鼠标响应式SVG左侧导航栏特效源码.zip

    在本资源中,"jQuery+CSS3实现的鼠标响应式SVG左侧导航栏特效源码.zip" 是一个包含使用jQuery和CSS3技术构建的交互式SVG左侧导航栏的代码示例。这个项目着重于如何利用这两种强大的前端技术来创建动态、响应式的用户...

    鼠标滑动操作svg图片.zip

    在IT领域,SVG(Scalable Vector Graphics)是一种基于XML的矢量图像格式,它可以无损地放大而不失真,广泛应用于网页设计、图形用户界面(GUI)以及各种应用程序。这个名为“鼠标滑动操作svg图片.zip”的压缩包提供...

    HTML5 svg实现响应鼠标移动的地上手电筒照明光亮效果源码.zip

    3. 添加鼠标事件监听器:使用JavaScript的`addEventListener`方法,为`mousemove`事件添加监听器。这会在鼠标移动时触发回调函数。 4. 回调函数处理:在回调函数中,获取鼠标当前位置,然后更新光照形状的`x`, `y`,...

    SVG图片剪辑路径鼠标悬停效果.zip

    SVG(Scalable Vector Graphics)是一种基于XML的矢量图像格式,它允许创建可缩放的、清晰的图形,无论放大多少倍都不会失真。在本案例中,“SVG图片剪辑路径鼠标悬停效果”是一个交互式的网页设计技术,通过...

    SVG-与Region,实现地图点击区域

    5. 动态响应:如果你希望地图具有动态响应,比如在不同缩放级别下保持点击区域的准确性,可能需要使用SVG的`getBBox()`方法获取元素的边界框,然后根据当前视口的缩放比例调整判断逻辑。 在实际项目中,你可能会...

    纯css3 svg鼠标经过按钮边框线条动画特效

    在本文中,我们将深入探讨如何使用CSS3和SVG来创建一个具有鼠标经过效果的按钮边框线条动画特效。这个特效可以为用户界面增添互动性和视觉吸引力。首先,我们需要理解CSS3和SVG的基本概念。 **CSS3简介** CSS(层叠...

    react.js+svg实现可响应鼠标移动的3d游戏手柄图标动画效果源码.zip

    在本项目中,我们探索如何使用React.js和SVG来创建一个3D游戏手柄图标,该图标具有响应鼠标移动的动态动画效果。React.js是一个流行的JavaScript库,用于构建用户界面,特别是单页应用程序(SPA)。SVG(Scalable ...

Global site tag (gtag.js) - Google Analytics