亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

用svg制作富有動態的tooltip

2019-11-20 12:02:05
字體:
來源:轉載
供稿:網友

昨晚看了用svg如何制作富有動態的tooltip,于是今天就心血來潮學著做一下,于是也成功做出來,也明白其中的原理,收獲頗多阿!接下來要多去學習svg,這是個好東西。

這其中也注意了一些平時糾結的細節應該怎么去做,比如:

<article><section id="sound1"></section><section id="sound2"></section></article>

article標簽長度為600px,section 分別是300px,然后設置其為display:inline-block;然后是下面的效果:

本來按常理來說的話,應該是頭像水平排列,這是因為display:inline-block;會將article標簽和section標簽之間空白渲染成空格,空格展位,所以會導致圖片不在同一排,解決的辦法是給article標簽和section標簽添加如下的css代碼:

article{ width:600px;margin:200px;font-size:0;}article section{ display:inline-block;width:300px;font-size:14px;position:relative;}

于是空白去掉了!

另外對于svg的web圖像,我們可以對其進行修改,使其圖像的樣式可進行修改,它的格式大概如下(舉一例子):

<?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>

于是我們不可能將其引入到html文件里面,如果說有很多這種svg圖像,修改起來很麻煩!

于是使用的是ajax來加載這個圖片:

html的dom:<svg data-src="bubble1.svg" width="280" height="140"></svg>

// 問題二:對于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();}})});

還有對于圖片的描邊動畫效果,這里又怎么個好的方法,只針對svg圖像:

使用stroke-dasharray(虛線描邊,可以不斷嘗試,使其調至適應大小,完成實現整個描邊的效果)stroke-dashoffset(虛線間隔,調至整個svg沒有描邊的效果),然后使用transition實現這個動畫

最終效果(如圖,沒有在線演示,動畫效果出不來,不過下面貼的代碼直接復制,再去下載兩個svg圖片和頭像就可以使用)

代碼如下:

<!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>

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一性一乱一交一视频| 国产精品福利网站| 中文综合在线观看| 久久久爽爽爽美女图片| 亚洲欧美日韩在线一区| 国产精品ⅴa在线观看h| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产成人精品在线视频| 亚洲大胆美女视频| 国产成人+综合亚洲+天堂| 亚洲综合精品伊人久久| 欧美另类高清videos| 色樱桃影院亚洲精品影院| 日韩av在线免费播放| 高清欧美性猛交xxxx黑人猛交| 欧美最顶级丰满的aⅴ艳星| 欧美韩日一区二区| 91久久国产婷婷一区二区| 亚洲免费电影在线观看| 91在线播放国产| 97久久精品人搡人人玩| 亚洲国模精品私拍| 中文字幕av一区中文字幕天堂| 欧美黑人视频一区| 久99九色视频在线观看| 亚洲xxxxx性| 欧美高清自拍一区| 中文字幕亚洲字幕| 欧美成人黄色小视频| 国自在线精品视频| 91免费看国产| 一区二区三区久久精品| 欧美日韩亚洲视频| 中文字幕欧美亚洲| 亚洲欧美国产高清va在线播| 色无极亚洲影院| 中文字幕亚洲第一| 欧美亚洲视频一区二区| 欧美最猛性xxxx| 黑人狂躁日本妞一区二区三区| 久久综合久中文字幕青草| 亚洲无线码在线一区观看| 国产在线精品播放| 欧美精品aaa| 国产精品99久久久久久久久| 欧美亚洲另类视频| 久久久在线免费观看| 欧美视频一二三| 国产亚洲精品一区二555| 亚洲欧洲视频在线| 成人妇女淫片aaaa视频| 国产69精品99久久久久久宅男| 一本色道久久88精品综合| 日韩av大片免费看| 久久精品青青大伊人av| 亚洲第一区中文99精品| 国产91露脸中文字幕在线| 98午夜经典影视| 不卡毛片在线看| 国产亚洲精品一区二区| 精品久久久中文| 国产亚洲人成a一在线v站| 成人黄在线观看| 亚洲欧美综合区自拍另类| 欧美日本高清视频| 亚洲一区二区三区在线视频| 日韩国产欧美精品在线| 亚洲成av人乱码色午夜| 日韩精品久久久久久福利| 国产精品视频久久久久| 国产精品久久久久久av福利软件| 91免费在线视频| 亚州欧美日韩中文视频| 久久综合伊人77777蜜臀| 国产精品igao视频| 欧美亚洲午夜视频在线观看| 久久999免费视频| 国内精品久久久久| 亚洲а∨天堂久久精品9966| 亚洲精品999| 色婷婷亚洲mv天堂mv在影片| 国产精品免费一区| 九九精品视频在线观看| 日韩电影中文 亚洲精品乱码| 日本成人免费在线| 亚洲最大av网站| 日韩美女免费视频| 国产亚洲一区精品| 91精品国产高清| 国产精品福利在线观看网址| 午夜精品在线观看| 日本高清+成人网在线观看| 欧美午夜精品伦理| 自拍亚洲一区欧美另类| 国产精品99一区| 成人午夜激情网| 亚洲综合中文字幕在线观看| 亚洲欧美国产精品专区久久| 久久亚洲国产成人| 神马久久久久久| 欧洲日韩成人av| 久久久国产精品x99av| 岛国视频午夜一区免费在线观看| 国产91精品久久久久久久| 91产国在线观看动作片喷水| 欧美激情亚洲激情| 久久久av亚洲男天堂| 国精产品一区一区三区有限在线| 亚洲综合自拍一区| 久久亚洲精品视频| 国产精品久久久久不卡| 欧美激情综合亚洲一二区| 黄色精品一区二区| 久久99精品国产99久久6尤物| 国产香蕉精品视频一区二区三区| 欧美裸身视频免费观看| 91精品视频免费| 中文字幕久久久av一区| 国产精品久久久久久av福利| 国产精品成人一区二区| 欧美日韩国产一区二区| 久久久国产精品免费| 国产有码一区二区| 精品国产福利在线| 色综合老司机第九色激情| 欧美日韩美女在线| 蜜月aⅴ免费一区二区三区| 97香蕉久久超级碰碰高清版| 国产高清视频一区三区| 国产亚洲在线播放| 92裸体在线视频网站| 欧美亚洲日本黄色| 好吊成人免视频| 亚洲精品永久免费精品| 日韩在线小视频| 性欧美办公室18xxxxhd| 亚洲欧美另类在线观看| 78m国产成人精品视频| 亚洲桃花岛网站| 日韩精品视频在线播放| 亚洲视频一区二区| 亚洲精品自拍视频| 美女扒开尿口让男人操亚洲视频网站| 伊人男人综合视频网| 亚洲第一精品夜夜躁人人爽| 国产精品久久av| 懂色av一区二区三区| 深夜福利日韩在线看| 北条麻妃99精品青青久久| 国产成人啪精品视频免费网| 这里只有精品在线观看| 久久成年人免费电影| 中文字幕精品国产| 国产一区二区三区毛片| 国内成人精品视频| 这里只有精品视频在线| 国产脚交av在线一区二区| 欧美电影免费观看电视剧大全| 亚洲自拍小视频免费观看| 国产精品第三页| 超碰91人人草人人干| 精品国产乱码久久久久久虫虫漫画| 国产精品福利久久久| 国产精品视频久久久|