svg实现直线带右箭头

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>svg实现直线带右箭头</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box; /*保证盒子的大小不会因为padding值的影响而变大。默认情况下padding的值会影响盒子的大小*/
        }
        html, body {
            width: 100%;
            height: 100%;
            background: lightblue;
            /*背景图片同窗口完全自适应*/
            background-size: 100% 100%;
            /*去除页面的滚动条*/
            overflow: hidden;
        }
        #box {
            width: 20%;
            height: 2.5%;
            /*border: yellow solid 1px;*/
            margin-left: 30%;
            margin-top: 20%;
        }
        #svg14 {
            height: 100%;
            width: 100%;
            overflow: hidden;
        }
        #polygon14 {
            fill: black;
            stroke-width: 1;
            stroke: red;
        }
    </style>
</head>
<body>
<div id="box">
    <svg id="svg14" viewBox="0 0 305 15" preserveaspectratio='none'>
        <polygon id="polygon14"  points='1,7 300,7 295,1 304,7 295,14 300,7 '  />
    </svg>
</div>
</body>
</html>
可以使用CSS3的动画特效来实现SVG绘制线条箭头稳步上升动画特效,具体实现方式可以参考以下代码: ```html <svg width="200" height="200"> <path d="M 50 50 L 150 50" stroke="black" stroke-width="2" fill="none" /> <marker id="arrow" viewBox="0 0 10 10" refX="5" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"> <path d="M 0 0 L 10 5 L 0 10 z" /> </marker> <path d="M 50 50 L 150 50" stroke="black" stroke-width="2" fill="none" marker-end="url(#arrow)"> <animate attributeName="y1" from="50" to="20" dur="2s" repeatCount="indefinite" /> <animate attributeName="y2" from="50" to="20" dur="2s" repeatCount="indefinite" /> </path> </svg> ``` 其中,`<path>`元素用于绘制直线,`<marker>`元素用于定义箭头,`marker-end`属性用于指定箭头的位置,`<animate>`元素用于实现动画效果,`attributeName`属性用于指定要动画的属性,`from`和`to`属性用于指定动画的起始值和结束值,`dur`属性用于指定动画的持续时间,`repeatCount`属性用于指定动画的重复次数。 关于箭头跟着直线一起动的问题,可以使用`<animateMotion>`元素来实现,具体实现方式可以参考以下代码: ```html <svg width="200" height="200"> <path d="M 50 50 L 150 50" stroke="black" stroke-width="2" fill="none" marker-end="url(#arrow)"> <animateMotion dur="2s" repeatCount="indefinite"> <mpath xlink:href="#path" /> </animateMotion> </path> <path id="path" d="M 50 50 L 150 50" stroke="none" fill="none" /> <marker id="arrow" viewBox="0 0 10 10" refX="5" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"> <path d="M 0 0 L 10 5 L 0 10 z" /> </marker> </svg> ``` 其中,`<animateMotion>`元素用于实现运动动画,`<mpath>`元素用于指定运动路径,`xlink:href`属性用于指定路径的ID。需要注意的是,路径的起点和终点要与直线的起点和终点一致,才能实现箭头跟着直线一起动的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值