D3.js实现散点图和气泡图的方法详解

前端之家收集整理的这篇文章主要介绍了D3.js实现散点图和气泡图的方法详解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

小编之前已经跟大家分享过了《》和《》这两篇文章,已经介绍过柱状图和折线图了。下面就来说说和这两种非常相似的图表——散点图和气泡图。有需要的朋友们可以参考学习。

散点图和气泡图的实现

还是和之前一样,我们先把简单的画图框架搭起来,添加SVG画布:

<Meta charset="UTF-8"> 散点图和气泡图@H_<a href="https://www.jb51.cc/tag/404/" target="_blank" class="keywords">404</a>_15@ <style> .container { margin: 30px auto; width: 600px; height: 300px; border: 1px solid #000; } </style> </head> <body> <div class="container"> <svg width="100%" height="100%"></svg> </div> <script src="d3/d3.js"></script> <script> window.onload = function() { var width = 600,height = 300; // SVG画布边缘与图表<a href="https://www.jb51.cc/tag/neirong/" target="_blank" class="keywords">内容</a>的距离 var padding = { top: 50,right: 50,bottom: 50,left: 50 }; // 创建一个分组用来组合要画的图表元素 var main = d3.select('.container svg').append('g') // 给这个分组<a href="https://www.jb51.cc/tag/jiashang/" target="_blank" class="keywords">加上</a>main类 .classed('main') // 设置该分组的transform<a href="https://www.jb51.cc/tag/shuxing/" target="_blank" class="keywords">属性</a> .attr('transform',"translate(" + padding.top + ',' + padding.left + ')'); }; </script> </body> </html> </pre> </div> <p>散点图和气泡图虽然在展现意义上是不同的,但从技术实现的角度来讲,它们还是很类似的,都是由坐标轴和一个个的圆所组成的。</p> <p><h3>散点图</h3> </p> <p><h3>坐标轴的实现</h3></p> <p>为了实现真实的<a href="https://www.jb51.cc/tag/xiaoguo/" target="_blank" class="keywords">效果</a>,散点图和气泡图我们使用不同的模拟数据。与折线图同理,散点图的各点的坐标的关系在坐标轴上的关系是连续的,所以它的x轴和y轴都使用线性比例尺(线性比例尺和序数比例尺的区别参见《<a target="_blank" href="//www.jb51.cc/article/93084.htm">D3.js实现柱状图的<a href="https://www.jb51.cc/tag/fangfa/" target="_blank" class="keywords">方法</a>详解</a>》)。</p> <div class="jb51code"> <pre class="brush:js;"> // 模拟数据 var dataset = [[161.2,51.6],[167.5,59.0],[159.5,49.2],[157.0,63.0],[155.8,53.6],[170.0,[159.1,47.6],[166.0,69.8],[176.2,66.8],[160.2,75.2],[172.5,55.2],[170.9,54.2],[172.9,62.5],[153.4,42.0],[160.0,50.0],[147.2,49.8],[168.2,[175.0,73.2],47.8],[167.6,68.8],50.6],82.5],[166.8,57.2],[176.5,87.8],[170.2,72.8],[174.0,54.5],[173.0,59.8],[179.9,67.3],[170.5,67.8],47.0],[154.4,46.2],[162.0,55.0],83.0],54.4],[152.0,45.8],[162.1,52.1],[161.3,67.9],[166.4,56.6],[168.9,62.3],[163.8,58.5],50.2],60.3],58.3],[165.1,56.2],72.9],[157.5,61.0],[160.7,69.1],[163.2,55.9],[152.4,46.5],54.3],[168.3,54.8],[180.3,60.7],[165.5,60.0],[165.0,62.0],[164.5,[156.0,52.7],74.3],[163.0,[165.7,73.1],[161.0,80.0],54.7],53.2],75.7],[172.7,61.1],55.7],[151.1,48.7],52.3],[163.5,59.3],[169.0,[164.0,[161.2,[155.0,45.9],70.6],67.2],69.4],[162.5,58.2],[170.3,64.8],[164.1,71.6],[169.5,52.8],[154.5,49.0],[159.8,[173.2,69.2],[161.4,63.4],[166.2,58.6],[159.4,45.7],52.2],[159.0,48.6],[162.8,57.8],55.6],[179.8,[162.9,59.4],53.4],69.0],58.4],[171.8,[178.0,[164.3,72.0],[168.5,65.2],105.2],51.8],[169.4,[167.8,45.0],54.0],[162.2,60.2],[149.5,44.8],58.8],56.4],[156.5,53.8],[160.9,58.0],[167.0,43.2],60.5],[158.2,46.4],64.4],48.8],[167.1,62.2],[158.0,55.5],54.6],59.2],[173.4,64.5],[159.2,56.0],63.6],[162.6,63.2],59.5],56.8],64.1],72.3],60.4],84.5],[158.8,69.5],76.4],61.4],65.9],[156.2,[175.2,[172.1,59.1],[182.9,81.8],70.7],[177.8,[175.3,72.7],[154.9,54.1],49.1],75.9],57.3],65.5],62.7],53.9],73.6],70.5],47.3],67.7],80.9],60.9],86.3],66.4],57.7],55.4],104.1],77.3],80.5],[171.4,[149.9,46.8],75.5],68.2],76.8],71.8],[164.4,67.3] ]; // 创建x轴的比例尺 var xScale = d3.scale.linear() .domain([140,190]) .range([0,width - padding.left - padding.right]); // 创建y轴的比例尺 var yScale = d3.scale.linear() .domain([40,120]) .range([height - padding.top - padding.bottom,0]); // 创建x轴 var xAxis = d3.svg.axis() .scale(xScale) .orient('bottom'); // 创建y轴 var yAxis = d3.svg.axis() .scale(yScale) .orient('left'); // 把x轴应用到对应的SVG元素上 main.append('g') .attr('class','axis') .attr('transform','translate(0,' + (height - padding.top - padding.bottom) + ')') .call(xAxis); // 把y轴应用到对应的SVG元素上 main.append('g') .attr('class','axis') .call(yAxis);</pre> </div> <p>同折线图的坐标轴的实现是相同的,先用<code>d3.scale.linear()</code>创建比例尺,再用<code>d3.svg.axis()</code>创建坐标轴并且设置对应的比例尺,最后<a href="https://www.jb51.cc/tag/tianjia/" target="_blank" class="keywords">添加</a>SVG元素并“绑定”坐标轴到其上,就可以看到完成以后的坐标轴。注意这里需要对移动SVG元素,使它们在视觉上组装成一个坐标系(但实际上它们在位置上是零散的,并没有很强的关系)。</p> <p style="text-align: center"><p class="pic_center"><img src="https://files.jb51.cc/file_images/article/201609/2016921100734763.png?201682110744" /></p></p> <p><h3>散点的实现</h3></p> <p>在图表中一般点都是通过画圆来实现的,当圆的半径足够小的时候,它就是点。</p> <div class="jb51code"> <pre class="brush:js;"> // <a href="https://www.jb51.cc/tag/tianjia/" target="_blank" class="keywords">添加</a>散点 main.selectAll('.point') .data(dataset) .enter() .append('circle') .attr('class','point') .attr('cx',function(d) { return xScale(d[0]); }) .attr('cy',function(d) { return yScale(d[1]); }) .attr('r',5);</pre> </div> <p>与折线图<a href="https://www.jb51.cc/tag/tianjia/" target="_blank" class="keywords">添加</a>点的方式是一样的。在main元素中选择到所有的圆先“占位”(因为此时选择到的是一个空的集合,只是这个集合代表main中所有的圆),然后绑定dataset到此集合上,通过<code>enter()</code>和<code>append()</code>搭配使用<a href="https://www.jb51.cc/tag/tianjia/" target="_blank" class="keywords">添加</a>新的circle元素直到集合元素个数与dataset子元素个数相同为止。用比例尺计算出各圆的坐标并对其相关<a href="https://www.jb51.cc/tag/shuxing/" target="_blank" class="keywords">属性</a>进行赋值,就完成了点的<a href="https://www.jb51.cc/tag/tianjia/" target="_blank" class="keywords">添加</a>。因为散点图的点有点多,为了图表更加美观,给圆设置一下样式。</p> <div class="jb51code"> <pre class="brush:js;"> .point { fill: #2ec7c9; fill-opacity: 0.5; }</pre> </div> <p>最后,散点图长这样。</p> <p style="text-align: center"><p class="pic_center"><img src="https://files.jb51.cc/file_images/article/201609/2016921100846395.png?201682110856" /></p></p> <p><h3>气泡图</h3> </p> <p><h3>坐标轴的实现</h3></p> <p>因为只有模拟的数据结构不同,实现原理都是类似的,这里就不再赘述,直接上<a href="https://www.jb51.cc/tag/daima/" target="_blank" class="keywords">代码</a>。</p> <div class="jb51code"> <pre class="brush:js;"> // 模拟数据 var dataset = [ { x: 69,y: 45,weight: 5 },{ x: 30,y: 37,weight: 10 },{ x: 43,y: 10,weight: 23 },{ x: 54,y: 48,weight: 41 },{ x: 18,y: 18,{ x: 88,y: 21,weight: 32 },{ x: 45,weight: 12 },{ x: 14,y: 32,weight: 9 },{ x: 78,weight: 16 },{ x: 13,weight: 32 } ]; // <a href="https://www.jb51.cc/tag/tianjia/" target="_blank" class="keywords">添加</a>x轴和y轴 var xScale = d3.scale.linear() .domain([0,100]) .range([0,width - padding.left - padding.right]); var yScale = d3.scale.linear() .domain([0,50]) .range([height - padding.top - padding.bottom,0]); var xAxis = d3.svg.axis() .scale(xScale) .orient('bottom'); var yAxis = d3.svg.axis() .scale(yScale) .orient('left'); </pre> </div> <p><h3>气泡的实现</h3></p> <div class="jb51code"> <pre class="brush:js;"> // <a href="https://www.jb51.cc/tag/tianjia/" target="_blank" class="keywords">添加</a>气泡 main.selectAll('.bubble') .data(dataset) .enter() .append('circle') .attr('class','bubble') .attr('cx',function(d) { return xScale(d.x); }) .attr('cy',function(d) { return yScale(d.y); }) .attr('r',function(d) { return d.weight; });</pre> </div> <p>最后的气泡图是长这样的。</p> <p style="text-align: center"><p class="pic_center"><img src="https://files.jb51.cc/file_images/article/201609/2016921101044557.png?2016821101053" /></p></p> <p><h3>总结</h3> </p> <p>以上就是利用D3.js实现散点图和气泡图的全部<a href="https://www.jb51.cc/tag/neirong/" target="_blank" class="keywords">内容</a>,希望这篇<a href="https://www.jb51.cc/tag/wenzhang/" target="_blank" class="keywords">文章</a>对大家的学习和工作能有所帮助。小编还会陆续更新关于D3.js的<a href="https://www.jb51.cc/tag/wenzhang/" target="_blank" class="keywords">文章</a>,请大家继续关注编程之家,如果有疑问大家可以留言交流。</p><i class="glyphicon glyphicon-link"></i> 原文链接:https://www.f2er.com/js/45682.html</div> <div class="topcard-tags"><a href="https://www.f2er.com/tag/sanweisandiantu/" class="tag_link" target="_blank">三维散点图</a><a href="https://www.f2er.com/tag/shixianqipaotu/" class="tag_link" target="_blank">实现气泡图</a><a href="https://www.f2er.com/tag/sandiantu/" class="tag_link" target="_blank">散点图</a></div> <ul class="list-group"> <li class="list-group-item"><a href="https://www.f2er.com/js/45683.html" title="AngularJs ng-repeat 嵌套如何获取外层$index">上一篇:AngularJs ng-repeat 嵌套如何获取</a><a href="https://www.f2er.com/js/45680.html" title="AngularJs $parse、$eval和$observe、$watch详解" class="text-muted pull-right">下一篇:AngularJs $parse、$eval和$observ</a> </li> </ul> </div> </div> </div> <!-- row end --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-4605373693034661" data-ad-slot="9144498553"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div> </div> </div> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <div class="title"><h1>猜你在找的JavaScript相关文章</h1></div> <div class="list_con"> <a href="https://www.f2er.com/js/997747.html" title="Javascript中的事件冒泡与捕获"><div class="title">Javascript中的事件冒泡与捕获</div> <div class="summary">事件冒泡和事件捕获 起因:今天在封装一个bind函数的时候,发现el.addEventListener函数支...</div> <time class="summary">作者:前端之家 时间:2021-02-22</time> </a> </div> <div class="list_con"> <a href="https://www.f2er.com/js/997746.html" title="搞懂js中小数运算精度问题原因及解决办法"><img class="lazy" src="https://www.f2er.com/images/np.jpg" data-original="https://www.f2er.com/res/2021/02-22/19/e40e1eb184cb2a5d8c5f6c5e730d8e82.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">搞懂js中小数运算精度问题原因及解决办法</div> <div class="summary">js小数运算会出现精度问题 js number类型 JS 数字类型只有number类型,number类型相当于其...</div> <time class="summary">作者:前端之家 时间:2021-02-22</time> </a> </div> <div class="list_con"> <a href="https://www.f2er.com/js/997744.html" title="搞懂:前端跨域问题JS解决跨域问题VUE代理解决跨域问题原理"><div class="title">搞懂:前端跨域问题JS解决跨域问题VUE代理解决跨域问题原理</div> <div class="summary">什么是跨域 跨域 : 广义的跨域包含一下内容 : 1.资源跳转(链接跳转,重定向跳转,表单提...</div> <time class="summary">作者:前端之家 时间:2021-02-22</time> </a> </div> <div class="list_con"> <a href="https://www.f2er.com/js/997743.html" title="前端对base64编码的理解,原生js实现字符base64编码"><div class="title">前端对base64编码的理解,原生js实现字符base64编码</div> <div class="summary">@ &quot;TOC&quot; 常见对base64的认知(不完全正确) 首先对base64常见的认知,也是...</div> <time class="summary">作者:前端之家 时间:2021-02-22</time> </a> </div> <div class="list_con"> <a href="https://www.f2er.com/js/997742.html" title="搞懂:MVVM模型以及VUE中的数据绑定数据劫持发布订阅模式"><div class="title">搞懂:MVVM模型以及VUE中的数据绑定数据劫持发布订阅模式</div> <div class="summary">搞懂:MVVM模式和Vue中的MVVM模式 MVVM MVVM : 的缩写,说都能直接说出来 :模型, :视图...</div> <time class="summary">作者:前端之家 时间:2021-02-22</time> </a> </div> <div style="border-bottom: 1px solid #f4f4f4;margin-top:20px;"> <ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-fr-2o+fp-dx-wx" data-ad-client="ca-pub-4605373693034661" data-ad-slot="4561116489"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div><div class="list_con"> <a href="https://www.f2er.com/js/997318.html" title="js判断浏览器是否支持webGL"><div class="title">js判断浏览器是否支持webGL</div> <div class="summary">起因是我之前开发的网页,用到了three.js制作了一个3d的旋转球体效果。 在各种浏览器上运行...</div> <time class="summary">作者:前端之家 时间:2021-02-14</time> </a> </div> <div class="list_con"> <a href="https://www.f2er.com/js/997317.html" title="js判断undefined和null"><div class="title">js判断undefined和null</div> <div class="summary">js判断undefined js判断null js判断null和undefined</div> <time class="summary">作者:前端之家 时间:2021-02-14</time> </a> </div> <div class="list_con"> <a href="https://www.f2er.com/js/997316.html" title="将文字自动转为banner打印形式的工具"><div class="title">将文字自动转为banner打印形式的工具</div> <div class="summary">http://patorjk.com/software/taag/</div> <time class="summary">作者:前端之家 时间:2021-02-14</time> </a> </div> <div class="list_con"> <a href="https://www.f2er.com/js/997315.html" title="聊一聊 bootstrap 的轮播图插件"><div class="title">聊一聊 bootstrap 的轮播图插件</div> <div class="summary">今天做工作的时候,轻车熟路的做完,又用到了bootstrap的轮播图,觉得有必要安利一下这个插...</div> <time class="summary">作者:前端之家 时间:2021-02-14</time> </a> </div> <div class="list_con"> <a href="https://www.f2er.com/js/997314.html" title="js实现图片无缝循环跑马灯"><div class="title">js实现图片无缝循环跑马灯</div> <div class="summary">html 代码 css js代码 function mylsRunHorseLight() { if (mylsTimer != null) { clearIn...</div> <time class="summary">作者:前端之家 时间:2021-02-14</time> </a> </div> <div style="border-bottom: 1px solid #f4f4f4;margin-top:20px;"> <ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-fr-2o+fp-dx-wx" data-ad-client="ca-pub-4605373693034661" data-ad-slot="4561116489"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div></div> </div> </div> </div> <!-- left end--> <!-- right --> <div class="col-sm-12 col-md-12 col-lg-3"> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <label class="main-content-label ">编程分类</label> <div class="cate mt-20"><a href="https://www.f2er.com/html/" title="HTML">HTML</a><a href="https://www.f2er.com/html5/" title="HTML5">HTML5</a><a href="https://www.f2er.com/js/" title="JavaScript">JavaScript</a><a href="https://www.f2er.com/css/" title="CSS">CSS</a><a href="https://www.f2er.com/jquery/" title="jQuery">jQuery</a><a href="https://www.f2er.com/bootstrap/" title="Bootstrap">Bootstrap</a><a href="https://www.f2er.com/angularjs/" title="Angularjs">Angularjs</a><a href="https://www.f2er.com/typescript/" title="TypeScript">TypeScript</a><a href="https://www.f2er.com/vue/" title="Vue">Vue</a><a href="https://www.f2er.com/dojo/" title="Dojo">Dojo</a><a href="https://www.f2er.com/json/" title="Json">Json</a><a href="https://www.f2er.com/electron/" title="Electron">Electron</a><a href="https://www.f2er.com/nodejs/" title="Node.js">Node.js</a><a href="https://www.f2er.com/extjs/" title="extjs">extjs</a><a href="https://www.f2er.com/express/" title="Express ">Express </a><a href="https://www.f2er.com/xml/" title="XML">XML</a><a href="https://www.f2er.com/es6/" title="ES6">ES6</a><a href="https://www.f2er.com/ajax/" title="Ajax">Ajax</a><a href="https://www.f2er.com/flash/" title="Flash">Flash</a><a href="https://www.f2er.com/unity/" title="Unity">Unity</a><a href="https://www.f2er.com/react/" title="React">React</a><a href="https://www.f2er.com/flex/" title="Flex">Flex</a><a href="https://www.f2er.com/antdesign/" title="Ant Design">Ant Design</a><a href="https://www.f2er.com/webfrontend/" title="Web前端">Web前端</a><a href="https://www.f2er.com/weapp/" title="微信小程序">微信小程序</a><a href="https://www.f2er.com/wxmp/" title="微信公众号">微信公众号</a><div class="clearfix"></div> </div> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <!-- f2er-rightads --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4605373693034661" data-ad-slot="7756441254" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <label class="main-content-label ">最新文章</label> <ul class="n-list"><li><a href="https://www.f2er.com/js/997747.html" title="Javascript中的事件冒泡与捕获" target="_blank">• Javascript中的事件冒泡与</a></li> <li><a href="https://www.f2er.com/js/997746.html" title="搞懂js中小数运算精度问题原因及解决办法" target="_blank">• 搞懂js中小数运算精度问题</a></li> <li><a href="https://www.f2er.com/js/997744.html" title="搞懂:前端跨域问题JS解决跨域问题VUE代理解决跨域问题原理" target="_blank">• 搞懂:前端跨域问题JS解决</a></li> <li><a href="https://www.f2er.com/js/997743.html" title="前端对base64编码的理解,原生js实现字符base64编码" target="_blank">• 前端对base64编码的理解,</a></li> <li><a href="https://www.f2er.com/js/997742.html" title="搞懂:MVVM模型以及VUE中的数据绑定数据劫持发布订阅模式" target="_blank">• 搞懂:MVVM模型以及VUE中的</a></li> <li><a href="https://www.f2er.com/js/997493.html" title="js实现横向跑马灯效果" target="_blank">• js实现横向跑马灯效果</a></li> <li><a href="https://www.f2er.com/js/997318.html" title="js判断浏览器是否支持webGL" target="_blank">• js判断浏览器是否支持webG</a></li> <li><a href="https://www.f2er.com/js/997317.html" title="js判断undefined和null" target="_blank">• js判断undefined和null</a></li> <li><a href="https://www.f2er.com/js/997316.html" title="将文字自动转为banner打印形式的工具" target="_blank">• 将文字自动转为banner打印</a></li> <li><a href="https://www.f2er.com/js/997315.html" title="聊一聊 bootstrap 的轮播图插件" target="_blank">• 聊一聊 bootstrap 的轮播图</a></li> </ul> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <label class="main-content-label ">热门标签 <span class="pull-right tx-12"> <a href="https://www.f2er.com/all" target="_blank">更多 ►</a></span> </label> <div class="topcard-tags"><a href="https://www.f2er.com/tag/guanbiyangao/" title="关闭广告" target="_blank">关闭广告</a><a href="https://www.f2er.com/tag/danduheaders/" title="单独headers" target="_blank">单独headers</a><a href="https://www.f2er.com/tag/fengzhuangdaima/" title="封装代码" target="_blank">封装代码</a><a href="https://www.f2er.com/tag/tishicuowu/" title="提示错误" target="_blank">提示错误</a><a href="https://www.f2er.com/tag/zhengshuzhengze/" title="整数正则" target="_blank">整数正则</a><a href="https://www.f2er.com/tag/fei0kaitou/" title="非0开头" target="_blank">非0开头</a><a href="https://www.f2er.com/tag/tiaoye/" title="跳页" target="_blank">跳页</a><a href="https://www.f2er.com/tag/chuyema/" title="出页码" target="_blank">出页码</a><a href="https://www.f2er.com/tag/antdtable/" title="antd table" target="_blank">antd table</a><a href="https://www.f2er.com/tag/tishiURLweizhuce/" title="提示URL未注册" target="_blank">提示URL未注册</a><a href="https://www.f2er.com/tag/gongzhonghaozhifu/" title="公众号支付" target="_blank">公众号支付</a><a href="https://www.f2er.com/tag/vuehashmoshi/" title="vue hash模式" target="_blank">vue hash模式</a><a href="https://www.f2er.com/tag/iSlider/" title="iSlider" target="_blank">iSlider</a><a href="https://www.f2er.com/tag/chepaijianpan/" title="车牌键盘" target="_blank">车牌键盘</a><a href="https://www.f2er.com/tag/xunhuantupian/" title="循环图片" target="_blank">循环图片</a><a href="https://www.f2er.com/tag/echartsshuangzhexian/" title="echarts 双折线" target="_blank">echarts 双折</a><a href="https://www.f2er.com/tag/zuoyoubuju/" title="左右布局" target="_blank">左右布局</a><a href="https://www.f2er.com/tag/DllPlugin/" title="DllPlugin" target="_blank">DllPlugin</a><a href="https://www.f2er.com/tag/duixiangchuangjian/" title="对象创建" target="_blank">对象创建</a><a href="https://www.f2er.com/tag/daziyouxi/" title="打字游戏" target="_blank">打字游戏</a><a href="https://www.f2er.com/tag/quanxuan/" title="圈选" target="_blank">圈选</a><a href="https://www.f2er.com/tag/lianglan/" title="两栏" target="_blank">两栏</a><a href="https://www.f2er.com/tag/yunhanshu/" title="云函数" target="_blank">云函数</a><a href="https://www.f2er.com/tag/mengban/" title="蒙版" target="_blank">蒙版</a><a href="https://www.f2er.com/tag/ES2020/" title="ES2020" target="_blank">ES2020</a><a href="https://www.f2er.com/tag/chuchuang/" title="橱窗" target="_blank">橱窗</a><a href="https://www.f2er.com/tag/wufenggundonglunbo/" title="无缝滚动轮播" target="_blank">无缝滚动轮播</a><a href="https://www.f2er.com/tag/sekuaipengzhuang/" title="色块碰撞" target="_blank">色块碰撞</a><a href="https://www.f2er.com/tag/zujianxiaohui/" title="组件销毁" target="_blank">组件销毁</a><a href="https://www.f2er.com/tag/wendangcaozuo/" title="文档操作" target="_blank">文档操作</a></div> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <!-- f2er-rightads --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4605373693034661" data-ad-slot="7756441254" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> <!-- row end --> </div> <!-- right end --> </div> </div> <footer id="footer"> <div class="container"> <div class="row hidden-xs"> <dl class="col-sm-6 site-link"> <dt>最近更新</dt><dd><a href="https://www.f2er.com/faq/884225.html" title="jQuery选择伪元素:after" target="_blank">· jQuery选择伪元素:after</a><span class="text-muted pull-right">10-20</span></dd> <dd><a href="https://www.f2er.com/faq/884224.html" title="JavaScript随机颜色生成器" target="_blank">· JavaScript随机颜色生成器</a><span class="text-muted pull-right">10-20</span></dd> <dd><a href="https://www.f2er.com/faq/884223.html" title="JavaScript指数" target="_blank">· JavaScript指数</a><span class="text-muted pull-right">10-20</span></dd> <dd><a href="https://www.f2er.com/faq/884222.html" title="addResourceHandlers无法解析静态资源" target="_blank">· addResourceHandlers无法解析静态资源</a><span class="text-muted pull-right">10-20</span></dd> <dd><a href="https://www.f2er.com/faq/884221.html" title="如何将字节数组转换为MultipartFile" target="_blank">· 如何将字节数组转换为MultipartFile</a><span class="text-muted pull-right">10-20</span></dd> <dd><a href="https://www.f2er.com/faq/884220.html" title="在java中如何创建一个文件并写入内容?" target="_blank">· 在java中如何创建一个文件并写入内容?</a><span class="text-muted pull-right">10-20</span></dd> <dd><a href="https://www.f2er.com/faq/884219.html" title="星号*在Python中是什么意思?" target="_blank">· 星号*在Python中是什么意思?</a><span class="text-muted pull-right">10-20</span></dd> <dd><a href="https://www.f2er.com/faq/884218.html" title="Flask框架:MVC模式" target="_blank">· Flask框架:MVC模式</a><span class="text-muted pull-right">10-20</span></dd> <dd><a href="https://www.f2er.com/faq/884217.html" title="在JavaScript对象数组中按ID查找对象" target="_blank">· 在JavaScript对象数组中按ID查找对象</a><span class="text-muted pull-right">10-20</span></dd> <dd><a href="https://www.f2er.com/faq/884216.html" title="使用Javascript / jQuery下载文件" target="_blank">· 使用Javascript / jQuery下载文件</a><span class="text-muted pull-right">10-20</span></dd> </dl> <dl class="col-sm-4 site-link"> <dt>好站推荐</dt><dd> <a href="https://www.runoob.com" title="菜鸟教程(www.runoob.com)提供了编程的基础技术教程, 介绍了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识。 同时本站中也提供了大量的在线实例,通过实例,您可以更好的学习编程。" target="_blank">菜鸟教程</a></dd><dd> <a href="https://www.jb51.cc" title="编程之家(www.jb51.cc)是成立于2017年面向全球中文开发者的技术内容分享平台。提供编程导航、编程问答、编程博文、编程百科、编程教程、编程工具、编程实例等开发者最需要的编程技术内容与开发工具支持,与你一起学习编程,相信编程改变未来!" target="_blank">编程之家</a></dd><dd> <a href="https://www.f2er.com" title="前端之家 f2er.com 前端开发人员所需学习知识手册。" target="_blank">前端之家</a></dd></dl> <dl class="col-sm-2 site-link"> <dt>商务合作</dt> <dd><a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=76874919&site=qq&menu=yes">联系我们</a></dd> </dl> </div> <div class="copyright"> Copyright © 2019 前端之家. 当前版本 V7.0.16<br> <span class="ml5">前端之家 版权所有 <a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">闽ICP备13020303号-10</a></span> </div> </div> </footer> <script type="text/javascript" src="https://www.f2er.com/js/base.js"></script> </body> </html>