


Verwenden Sie SVG, um dynamische Tooltip_Javascript-Techniken zu erstellen
Ich habe gestern Abend gesehen, wie man mit SVG einen dynamischen Tooltip erstellt, also habe ich heute gelernt, es aus einer Laune heraus zu machen, und ich habe es auch erfolgreich gemacht. Ich habe auch das Prinzip verstanden und viel gewonnen! Als nächstes muss ich mehr über SVG erfahren. Das ist eine gute Sache.
Wir haben auch darauf geachtet, wie wir einige Details umsetzen, mit denen wir normalerweise Probleme haben, wie zum Beispiel:
<article> <section id="sound1"> </section> <section id="sound2"> </section> </article>
Die Länge des Artikel-Tags beträgt 600 Pixel, der Abschnitt ist jeweils 300 Pixel groß. Stellen Sie ihn dann auf display:inline-block ein und erzielen Sie dann den folgenden Effekt: <🎜;
article{ width:600px; margin:200px; font-size:0; } article section{ display:inline-block; width:300px; font-size:14px; position:relative; }
Außerdem können wir SVG-Webbilder so ändern, dass der Bildstil ungefähr wie folgt ist (ein Beispiel):
<?xml version="1.0" encoding="utf-8"?> <!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="600px" height="300px" viewBox="0 0 600 300" enable-background="new 0 0 600 300" xml:space="preserve"> <polygon points="89.571,6.648 513.333,6.648 590.25,75.342 553.002,215.306 313.065,273.358 300,293.352 288.876,272.71 48.936,215.306 9.75,75.342 "/> </svg>
Also habe ich Ajax verwendet, um dieses Bild zu laden:
html dom:
// Frage 2: Wie importieren wir das SVG-Bild? Es ist nicht möglich, das gesamte SVG zu importieren, was umständlich zu ändern und zu bearbeiten ist
// Tipp 2: Verwenden Sie js zum Laden von
$('svg[data-src]').each(function(index, svg) { var src = $(svg).data('src'); //data用于获取data-*属性的路径 $.ajax({ url: src, dataType: 'xml', success: function(content) { var doc = content.documentElement; $(doc).attr({ width: $(svg).attr('width'), height: $(svg).attr('height') }); $(svg).after(doc).remove(); } }) });
Verwenden Sie Stroke-Dasharray (Strich mit gestrichelter Linie, Sie können immer wieder versuchen, ihn an die Größe anzupassen, um den Effekt des gesamten Strichs zu erzielen). Stroke-dashoffset (Intervall mit gestrichelter Linie, ohne Stricheffekt an das gesamte SVG anpassen). und dann Übergang verwenden, um diese Animation zu implementieren
Der endgültige Effekt (wie im Bild gezeigt, es gibt keine Online-Demonstration, der Animationseffekt kann nicht erzeugt werden, sondern kopieren Sie direkt den unten geposteten Code und laden Sie dann zwei SVG-Bilder und einen Avatar zur Verwendung herunter)
<!DOCTYPE html> <html lang="zh-cn"> <head> <title>toolTip聊天对话框制作</title> <meta charset="utf-8"/> <meta name="keywords" content="" /> <meta name="description" content="" /> <script type="text/javascript" src="jquery.js"></script> <style type="text/css"> h1{ color:red; font-size:18px; } article{ width:600px; margin:200px; font-size:0; } article section{ /*问题一:对于display:inline-block;会出现两个section无法并排排列,由于使用此属性会将article与section之间的空白处渲染成空格,于是无法并排*/ /*技巧一: 父元素设置 font-size:0;清除空白*/ display:inline-block; width:300px; font-size:14px; position:relative; } .text-center{ text-align:center; } #sound1,#sound2{ cursor:pointer; } #sound1 img,#sound2 img{ width:100px; height:100px; border-radius:100%; } .sound_1,.sound_2{ position:absolute; top:-104px; width:200px; height:100px; box-sizing: border-box; opacity:1; } .sound_2{ padding:28px; } .sound_1{ padding: 25px 68px 25px 30px; left: -150px; top: -134px; width: 280px; height: 140px; } .sound_1 svg ,.sound_2 svg{ position:absolute; top:0; left:0; } .sound_1 p,.sound_2 p{ position:relative; margin:0; color:#444; font-size:12px; } .sound_1 svg path, .sound_2 svg polygon{ fill:#fff;/*填充的颜色*/ stroke:red;/*描边的颜色*/ stroke-width: 6px;/*边的宽度*/ } .sound_1 svg #path1 { transform: scale(0, 0); transform-origin: center; opacity: 0; transition-duration: .3s; transition-delay: 0; } .sound_1 svg #path2 { transform: scale(0, 0); transform-origin: center; opacity: 0; transition-duration: .3s; transition-delay: .1s; } .sound_1 svg #path3 { transform: scale(0, 0); transform-origin: center; opacity: 0; transition-duration: .3s; transition-delay: .2s; } .sound_1 svg #path4 { transform: scale(0, 0); transform-origin: center; opacity: 0; transition-duration: .3s; transition-delay: .25s; } .sound_1 p { transition: .2s .35s; opacity: 0; transform: translate(0, -10px); } #sound1:hover .sound_1 svg #path1,#sound1:hover .sound_1 svg #path2,#sound1:hover .sound_1 svg #path3,#sound1:hover .sound_1 svg #path4{ transform: scale(1, 1); opacity: 1; transition-delay: 0; } #sound1:hover .sound_1 p{ opacity: 1; transform: translate(0, 0); } /*问题三:对于图片的描边动画效果,这里又怎么个好的方法,只针对svg图像*/ /*技巧三:使用stroke-dasharray(虚线描边,可以不断尝试,使其调至适应大小,实现描边的效果)stroke-dashoffset(虚线间隔,调至整个svg没有描边的效果),然后使用transition实现这个动画 */ .sound_2 svg polygon{ stroke-dasharray: 1500; stroke-dashoffset: 1500; fill-opacity: 0; transition: .6s; } .sound_2 p { transition: .4s; transform: scale(-0.5); opacity: 0; transform: translate(0, -10px); } #sound2:hover .sound_2 svg polygon{ stroke-dashoffset: 0; fill-opacity: 1; } #sound2:hover .sound_2 p { transform: scale(0); opacity: 1; transform: translate(0, 0); } </style> </head> <body> <h1>toolTip聊天对话框制作</h1> <article> <section id="sound1"> <div class="text-center"><img src="nan.jpg" /></div> <p class="text-center">韩国正太</p> <div class="sound_1"> <svg data-src="bubble1.svg" width="280" height="140"></svg> <p>听说优衣库的试衣间已全面升级,空间大小扩充一倍,精装修,同时四面都安有镜子,方便无死角录像呢,要去试一下不,美女!</p> </div> </section> <section id="sound2"> <div class="text-center"><img src="nv.jpg" /> </div> <p class="text-center">优衣库美女</p> <div class="sound_2"> <svg data-src="bubble2.svg" width="200" height="100"></svg> <p>听起来就很刺激,那走,帅哥,准备家伙,go!</p> </div> </section> </article> <script type="text/javascript"> $(document).ready(function() { // 问题二:对于svg图像我们要如何引入,不可能将整个svg都引入吧,不便于修改编辑 // 技巧二:使用js进行加载 $('svg[data-src]').each(function(index, svg) { var src = $(svg).data('src'); //data用于获取data-*属性的路径 $.ajax({ url: src, dataType: 'xml', success: function(content) { var doc = content.documentElement; $(doc).attr({ width: $(svg).attr('width'), height: $(svg).attr('height') }); $(svg).after(doc).remove(); } }) }); }) </script> </body> </html>

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Wie kann man mit SVG einen Bildmosaikeffekt erzielen, ohne Javascript zu verwenden? Der folgende Artikel wird Ihnen ein detailliertes Verständnis vermitteln, ich hoffe, er wird Ihnen hilfreich sein!

SVG kann mit Bildverarbeitungssoftware, Online-Konvertierungstools und der Python-Bildverarbeitungsbibliothek in das JPG-Format konvertiert werden. Detaillierte Einführung: 1. Bildverarbeitungssoftware umfasst Adobe Illustrator, Inkscape und GIMP; 2. Online-Konvertierungstools umfassen CloudConvert, Zamzar, Online Convert usw.;

SVG-Bilder werden häufig in Projekten verwendet. Der folgende Artikel stellt die Verwendung von SVG-Symbolen in vue3 + vite vor. Ich hoffe, dass er für alle hilfreich ist.

Mit der kontinuierlichen Weiterentwicklung der modernen Web-Front-End-Entwicklung werden immer mehr Technologien in der tatsächlichen Entwicklung eingesetzt. Unter diesen ist Vue.js derzeit eines der beliebtesten JavaScript-Frameworks. Es basiert auf dem MVVM-Modell und bietet eine umfangreiche API und Komponentenbibliothek, die die Entwicklung reaktionsfähiger, wiederverwendbarer und effizienter Webanwendungen erleichtert. Im Vergleich zur alten Version bietet die neueste Vue.js3-Version eine bessere Leistung und umfangreichere Funktionen, was große Aufmerksamkeit und Forschung auf sich gezogen hat. In diesem Artikel stellen wir Ihnen a vor

Wie füge ich mit SVG ein Logo zum Favicon hinzu? Im folgenden Artikel erfahren Sie, wie Sie mit SVG ein Favicon mit Logo erstellen.

1. Installieren Sie vite-plugin-svg-icons. Sie müssen auch Fast-Glob-bezogene Abhängigkeiten installieren. Andernfalls wird beim Ausführen von npmrundev der Cannotfindmodule'fast-glob'-Fehler npmifast-glob@3.x-Dnpmivite gemeldet. plugin-svg. -icons@2.x-D 2. Erstellen Sie eine neue Komponente index.vueimport{computed}from'vue';cons unter src/components/svgIcon

Um HTMLImageElements auf einem Canvas-Element zu zeichnen, verwenden Sie die Methode drawImage(). Diese Methode definiert eine Image-Variable mit src="mySVG.svg" und verwendet beim Laden drawImage. varmyImg=newImage();myImg.onload=function(){ ctx.drawImage(myImg,0,0);}img.src="http://www.example.com/files/sample.svg";

一、安装svg-sprite-loadernpminstallsvg-sprite-loader--save-dev二、在src/components/svgIcon下新建组件index.vueimport{computed}from"@vue/reactivity";exportdefault{name:"baseSvgIcon", props:{iconClass:{type:String},className:{type:String},},setup
