马黑黑 发表于 2024-11-13 07:36

svgdr教程·图像元素

<style>
        .art > p { margin: 12px 0; font: normal 18px/24px sans-serif; }
        .art mark { padding: 2px 6px; background: lightblue; }
        .art svg { outline: 1px solid silver; }
        .tRed { color: red; }
</style>

<div class="art">
        <h2>图像元素</h2>
        <p>指令:<mark>image()</mark>
        <p>参数:<mark>src, x, y, width, height</mark>
        <p>语法:<mark>image(src, x, y, width, height)</mark>
        <p>参数解释:</p>
        <blockquote>
                ① src - 图片地址,必须,支持 jpg、jpeg、bmp、png、gif 乃至 svg 等格式的图片<br>
                ② x - image标签左上角X坐标值,默认0<br>
                ③ y - image标签左上角Y坐标值,默认0<br>
                ④ width - image宽度,默认图片宽度,超出SVG宽度部分不显示<br>
                ⑤ height - image高度,默认图片高度,超出随感高度部分不显示
                * 图片宽高的设置可能会导致图片变形
        </blockquote>
        <p>下面给出将 .jpg 图片绘制到svg的实例,先看效果(点击图片可以查看原图):</p>
        <svg id="svg1" width="512" height="288"></svg>
        <p>svgdr绘制指令:</p>
        <div id="div1"><pre id="pre1">
var picUrl = 'https://638183.freep.cn/638183/t22/10ced.jpg';
dr.a('a1', picUrl, '_blank'); //给image标签加锚(链接)
dr.image(picUrl, 0, 0, '100%', '100%').addTo('a1'); //100%指svg画布的尺寸,可以使用实际数值,例如 512 288
        </pre></div>
        <p>生成的SVG代码:</p>
        <div id="div2"><pre id="pre2"></pre></div>
        <p>image() 指令是简单的,查看SVG代码会发现 image 标签也不复杂,可以对比两组代码以熟悉 svgdr image() 指令的参数次序。</p>
        <p>本节示例加入了 a 标签,这里顺带介绍 svgdr 的 a() 指令,以后的教程不再专门讲解。a() 指令需要的参数为:</p>
        <blockquote>
                ① id - 必须,<span class="tRed">&lt;a&gt;</span> 标签的id标识符,方便后续元素加入到锚中做链接载体;</br>
                ② url - 必须,锚的链接指向,例如上面示例的图片地址<br>
                ③ target - 可选,a 标签的 target 属性,值一般为 _blank、_self(默认),和HTML的锚一样
        </blockquote>
        <p>a() 指令会返回自身,因此,后续绘制的对象可以使用 addTo('aId') 加入到锚中成为链接载体。下面再给出一个代码示范:</p>
        <div id="div3"><pre id="pre3">
dr.a('a2', 'http://mhh.52qingyin.cn/'); //使用默认target值,加入锚的元素点击后会在当前页中打开链接
dr.image('https://638183.freep.cn/638183/t22/gif/girl.gif').addTo('a2');
        </pre></div>
        <p>效果(点击图片当前页的内容会是新的页面,可点击浏览器工具栏的 ← 按钮回退到这里):</p>
        <svg id="svg2" width="100" height="100"></svg>
        <p>生成的SVG代码:</p>
        <div id="div4"><pre id="pre4"></pre></div>
        <p>本节内容相对简单,主讲 image() 指令,顺便介绍一下 svg 锚标签 a 和 svgdr a() 指令。</p>
        <p><a href="/forum.php?mod=viewthread&tid=79137&extra=page%3D1" targete="_blank">返回目录</a></p>
</div>

<script type="module">
import hl from 'https://638183.freep.cn/638183/web/mod/helight.js';
import draw from 'https://638183.freep.cn/638183/web/mod/svgdr.js?v=0.53';

var dr1 = draw.dr('svg1');
var picUrl = 'https://638183.freep.cn/638183/t22/10ced.jpg';
dr1.a('a1', picUrl, '_blank');
dr1.image(picUrl, 0, 0, '100%', '100%').addTo('a1');
pre2.textContent = dr1.code(svg1);

var dr2 = draw.dr('svg2');
dr2.a('a2', 'http://mhh.52qingyin.cn/');
dr2.image('https://638183.freep.cn/638183/t22/bear.gif').addTo('a2');
pre4.textContent = dr2.code(svg2);

hl.hl(div1, pre1);
hl.hl(div2, pre2);
hl.hl(div3, pre3);
hl.hl(div4, pre4);
</script>

泡沫 发表于 2024-11-13 11:46

看完发现这个锚链接是另外加的内容,
dr.a('a1', picUrl, '_blank'); //给image标签加锚(链接),点击图片可以新窗口打开。
图片的几个参数地址,位置 ,宽高这些常用,比较好懂。

泡沫 发表于 2024-11-13 11:50

a指令原来是这么用的,之前看过,刚又跑回去瞧了一眼。(指令汇总增至57,这个字典太好用)
这里跟图片联系起来再看感觉重点更明确~~

如果在小熊图片里加上target="_blank",也可以在新窗口打开了。

马黑黑 发表于 2024-11-13 12:22

泡沫 发表于 2024-11-13 11:50
a指令原来是这么用的,之前看过,刚又跑回去瞧了一眼。(指令汇总增至57,这个字典太好用)
这里跟图片联 ...

理解正确

马黑黑 发表于 2024-11-13 12:23

泡沫 发表于 2024-11-13 11:46
看完发现这个锚链接是另外加的内容,
dr.a('a1', picUrl, '_blank'); //给image标签加锚(链接),点击图 ...

这个可能是最好理解的章节之一

红影 发表于 2024-11-13 16:35

这个章节学习了svgdr的加图片,还顺便学习了 a 标签的使用,也就是把图片安装了追踪器,一下子可以找到和调用了。这个好。{:4_187:}

红影 发表于 2024-11-13 16:39

这个还可以设置加载图片的宽高以及加入的位置,svg不光能画,也能直接加入图片{:4_187:}

马黑黑 发表于 2024-11-13 19:05

红影 发表于 2024-11-13 16:35
这个章节学习了svgdr的加图片,还顺便学习了 a 标签的使用,也就是把图片安装了追踪器,一下子可以找到和调 ...

svg的锚和HTML的锚非常一致额

马黑黑 发表于 2024-11-13 19:06

红影 发表于 2024-11-13 16:39
这个还可以设置加载图片的宽高以及加入的位置,svg不光能画,也能直接加入图片

任何XML方言都具备这个能力

泡沫 发表于 2024-11-13 19:33

马黑黑 发表于 2024-11-13 12:23
这个可能是最好理解的章节之一

嗯哪,目前最烧脑的章节是渐变{:4_173:}

泡沫 发表于 2024-11-13 19:34

马黑黑 发表于 2024-11-13 12:22
理解正确

主要是好理解{:4_173:}

冬天的雨 发表于 2024-11-13 20:37

看不懂,假装很认真看{:4_170:}

红影 发表于 2024-11-13 20:54

马黑黑 发表于 2024-11-13 19:05
svg的锚和HTML的锚非常一致额

主要对HTML的锚也不熟悉啊,现在通过svg的锚倒过来去熟悉HTML的锚了{:4_173:}

红影 发表于 2024-11-13 20:55

马黑黑 发表于 2024-11-13 19:06
任何XML方言都具备这个能力

被黑河做到svgdr里了,用起来更方便{:4_187:}

马黑黑 发表于 2024-11-13 22:24

红影 发表于 2024-11-13 20:54
主要对HTML的锚也不熟悉啊,现在通过svg的锚倒过来去熟悉HTML的锚了

锚是HTML最基本的一个元素:

<a href="xxx" target="_self">点击访问</a>

马黑黑 发表于 2024-11-13 22:25

冬天的雨 发表于 2024-11-13 20:37
看不懂,假装很认真看

挺好的

马黑黑 发表于 2024-11-13 22:29

泡沫 发表于 2024-11-13 19:33
嗯哪,目前最烧脑的章节是渐变

对大多数人来说会如此

泡沫 发表于 2024-11-14 12:20

马黑黑 发表于 2024-11-13 22:29
对大多数人来说会如此

它的构成是不是比较反人类思维,一部分的人{:4_173:}

小辣椒 发表于 2024-11-14 15:23

现在黑黑一面分享教程,一面实例展示,对小辣椒其实还是很有帮助的

马黑黑 发表于 2024-11-15 11:50

小辣椒 发表于 2024-11-14 15:23
现在黑黑一面分享教程,一面实例展示,对小辣椒其实还是很有帮助的

那就好
页: [1] 2
查看完整版本: svgdr教程·图像元素