当前位置: 首页 > news >正文

微商分销如何搭建分销模式做seo优化产品网站

微商分销如何搭建分销模式,做seo优化产品网站,制作游戏的软件手机版,公司网站建设都需要什么内容d3.js官网https://d3js.org/。全称为“data-driven Documents”,3个d嘛#xff0c;简称d3.js。使用的话#xff0c;官网上面有下载连接#xff0c;就是一个zip压缩包。解压后把里面的d3.js引入就可以使用了#xff0c;它并需要使用npm来安装#xff0c;就是一个普通的js文… d3.js官网https://d3js.org/。全称为“data-driven Documents”,3个d嘛简称d3.js。使用的话官网上面有下载连接就是一个zip压缩包。解压后把里面的d3.js引入就可以使用了它并需要使用npm来安装就是一个普通的js文件罢了就像我们使用jquery下载下来引入就可以使用了方法是一样的。 d3.js是干嘛的呢 大家有用过类似的图表展现工具吧比如百度的echarts国外的highcharts之类的d3.js跟这些图标插件很类似都是用来做数据可视化的常说“一张图胜过千言万语”在如今的大数据时代数据的可视化显得尤为重要而d3.js在这方面做得很是突出d3.js也被称为操作svg的jquery因为d3.js的图表都是基于svg的在操作svg方面的语法与jquery的方法很是类似。 我们来看一个例子实现的功能是使用d3.js在网页中写入“hello d3.js”,网页结构如下 1 2 3 4 5 6 7 8 9 10 !DOCTYPE html html     head         meta charsetutf-8         titleindex/title         script srcd3.min.js/script     /head     body     /body   /html 使用d3.js的JavaScript代码 1 2 3 4 script     var bodyd3.select(body);     body.append(h1).text(hello d3.js); /script 打开这个网页 使用d3.js在页面上画个圆圈 为了熟悉d3.js的api我们通过一个小小的案例来领略一下d3.js的风采。这个案例很简单就是使用d3.js在页面上画一个圆形最终的效果如下图所示 以下是代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 !DOCTYPE html html     head         meta charsetutf-8         titleindex/title         script srcd3.min.js/script     /head     body     /body script     var bodyd3.select(body);     //body元素尾部添加一个svg标签     var svgbody.append(svg).attr(width,300).attr(height,300);     //svg尾部添加一个circle标签并设置属性     svg.append(circle).attr(cx,100).attr(cy,100).attr(r,50)     .attr(fill,#123456).attr(stroke,red).attr(stroke-width,2px); /script /html 代码解释 d3.select用于获取html文档中的元素里面的参数是css选择器返回值是单个的经过d3封装的html元素。 append方法用于在调用者尾部附加一个元素, attr(属性名属性值)用于设置调用该方法的元素的属性具体属性名是什么自然跟调用该方法的元素有关比如width和height都是svg元素有的属性而下面的cx,cy都是svg里面的cricle标签的属性可不是我随便乱写的。 学习过我前边写的svg相关的教程的同学都知道最后一行的fillstroke这些都是样式对这些样式的控制我们最好还是写在css里然后使用d3.js把这个css类加上就可以了因此可以如下修改代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 !DOCTYPE html html     head         meta charsetutf-8         titleindex/title         script srcd3.min.js/script         style             .mycircle{                 fill:#123456;                 stroke:red;                 stroke-width:2px;             }         /style     /head     body     /body script     var bodyd3.select(body);     //body元素尾部添加一个svg标签     var svgbody.append(svg).attr(width,300).attr(height,300);     //svg尾部添加一个circle标签并设置属性     svg.append(circle).attr(cx,100).attr(cy,100).attr(r,50)     .attr(class,mycircle); /script /html d3的update对象、enter对象、exit对象 先看下面的例子 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 !DOCTYPE html html     head         meta charsetutf-8         titleindex/title         script srcd3.min.js/script     /head     body         divdiv1/div         divdiv2/div         divdiv3/div     /body script     var divsd3.selectAll(div);     //divs是经过d3包装的元素数组     console.log(divs);     var arr[a,b,c];     var updatedivs.data(arr);     //update对象是已经绑定了数据集的选择集     console.log(update);     update.text(function(val,index){         return 坐标:index,值val;     }); /script /html 执行结果 selectAll返回的是经过d3包装的元素数组称为d3的选择集 data用于把数组的元素依次绑定到选择集的元素上有点类似es6里面解构赋值的意思。 datum也是绑定数据和data()的区别在于datum是直接绑定数据到选择集上并不存在解构如divs.datum(arr);则每个div将被绑定a,b,c 上面我说了update对象就是绑定了数据集的选择集在上面的这个例子中选择集的长度是3数据集的长度也是3正好可以一一对应但是现实的业务不可能这么完美两者总有不相等的时候。 一、当选择集divs的大小数据集arr的长度时 这个时候如果要想让他们一一对应我们应该把divs中的多余的元素给找到并删除可以这样理解在d3.js中找到的多余的选择集里面的元素就是exit对象把数据arr改为两个长度 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 !DOCTYPE html html     head         meta charsetutf-8         titleindex/title         script srcd3.min.js/script     /head     body         divdiv1/div         divdiv2/div         divdiv3/div     /body script     var divsd3.selectAll(div);     //divs是经过d3包装的元素数组     console.log(divs);     var arr[a,b];     var updatedivs.data(arr);     //update对象是已经绑定了数据集的选择集     console.log(update);     update.text(function(val,index){         return 坐标:index,值val;     });     //此时有多余的div,找到(exit)并删除     var  exit update.exit();     console.log(exit);     exit.remove(); /script /html 添加exit.remove();前后的结果对比 二、当选择集divs的大小数据集arr的长度时 此时要想对应需要多补几个选择集的元素补几个补什么元素都是通过d3.js可以控制的 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 !DOCTYPE html html     head         meta charsetutf-8         titleindex/title         script srcd3.min.js/script     /head     body         divdiv1/div         divdiv2/div         divdiv3/div     /body script     var divsd3.selectAll(div);     //divs是经过d3包装的元素数组     console.log(divs);     var arr[a,b,c,d,e];     var updatedivs.data(arr);     //update对象是已经绑定了数据集的选择集     console.log(update);     update.text(function(val,index){         return 坐标:index,值val;     });           //增加enter对象     //enter对象可以获取数据集多几个元素     var  enter update.enter();     console.log(enter);     //多几个就补几个p     enter.append(p).text(function(val,index){         return 坐标:index,值val;     }); /script /html 增加enter对象前后结果对比 使用d3画一个没有刻度的柱形图 最终的效果如下 代码如下html代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 !DOCTYPE html html     head         meta charsetutf-8         titleindex/title         script srcd3.min.js/script         style             .bar{                 fill:#123456;             }         /style     /head     body      /body /html d3画柱形图代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 script     var dataset[20,30,70,10,50];     var body d3.select(body);     var svgbody.append(svg).attr(width,500).attr(height,300);     var barssvg.selectAll(.bar).data(dataset).enter().append(rect)             .attr(class,bar)             .attr(x,function(val,index){                 return 30*index50;             })             .attr(y,function(val,index){                 return 300-val-50;             })             .attr(width,25)             .attr(height,function(val,index){                 return val;             }) /script 其他的都好理解可能你不能理解的地方在于 attr(y,function(val,index){ return 300-val-50; }) 这一段这一段的作用是让各个柱子都处在离svg下边缘50px的位置也就是说让所有柱子都位于一条水平线上如果不这样那就不叫柱形图了变成k线图了....为什么写上“300-val-50”就可以位于一条水平线上了呢看下面的图 rect的y坐标是从上往下数的这样子就应该理解了吧。 柱形图的完善---引入d3.js中的比例尺 在d3.js中有很多种比例尺常用的有两种。什么叫做比例尺呢这个我相信大家心里都有个内化于心的概念在d3.js中我说的直白点就是把一组值映射为另一组值在这个映射的过程中关系保持不变。那么为什么需要比例尺呢在“使用d3画一个没有刻度的柱形图”上篇文章里面设置柱状图的高度我使用的代码是 1 2 3 attr(height,function(val,index){                 return val;             } 也就是说我直接使用了数据集里面元素的值作为柱状图的高度因为数据集是var dataset[20,30,70,10,50];整个svg大小我设置的宽高分别为500px和300px,并没有看出问题可是我并不能担保在真正使用的时候数据集永远不会超过svg的大小也就是说数据集里面有了个2000的值怎么办就显示不了了呀这就是问题的所在。因此需要引入比例尺。 d3.js中的两种比例尺 一、线性比例尺 1 2 3 4 5 6 7 8 9 10 var dataset[20,3000,70,100,2.5,0]; var min  d3.min(dataset); var max  d3.max(dataset); var linear  d3.scaleLinear()         .domain([min, max])         .range([0, 250]);   console.log(linear(0));    //返回 0 console.log(linear(3000));    //返回 250 console.log(linear(1500));    //返回 125 我这里使用的是d3的最新版本v5.0.0,在d3-v3的版本中得到比例尺的写法是d3.scale.linear(),不管哪种写法只是版本的不同罢了返回的都是比例尺的对象这个对象是个函数,因此我们后边可以直接使用linear(1500)的方式来写其实就是调用的函数参数是原来的数字返回值为经过比例尺转化后的数字。domain([最小最大])指定原来的值范围range([最小,最大])指定映射范围。 二、序数比例尺 上边的线性比例尺指定的是范围、区间可以映射这个区间内任意的值。但是有时候我们需要映射的可能是离散的值比如我想把[1,2,3]映射为[a,b,c];使用线性比例尺就不行了而应该使用序数比例尺。 1 2 3 4 5 6 7 8 var dataset[1,2,3];         var ordinal  d3.scaleOrdinal()                 .domain(dataset)                 .range([a,b,c]);           console.log(ordinal(1));    //返回 a         console.log(ordinal(2));    //返回 b         console.log(ordinal(3));    //返回 c 比例尺介绍完了我们把上篇文章里面的柱状图改善一下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 script     var dataset[20,30,70,10,50];     //定义比例尺     var min  d3.min(dataset);     var max  d3.max(dataset);     var linear  d3.scaleLinear()             .domain([0, max]) //注意这里不要用[min,max]不然最小的柱子高度就是0了导致看不到             .range([0, 250]);           var body d3.select(body);     var svgbody.append(svg).attr(width,500).attr(height,300);     var barssvg.selectAll(.bar).data(dataset).enter().append(rect)             .attr(class,bar)             .attr(x,function(val,index){                 return 30*index50;             })             .attr(y,function(val,index){                 return 300-linear(val)-50;             })             .attr(width,25)             .attr(height,function(val,index){                 return linear(val);             });  /script 结果如下
http://www.hkea.cn/news/14572064/

相关文章:

  • 外贸网站源码哪个好电子商务网站建设策划说
  • 山东网站建设公司排名wordpress销售和会员
  • 大型网站建设价格广东全屋定制十大名牌
  • 网站模板文件下载网站建设策划书5000字
  • 社团网站建设的功能定位wordpress dux搜索无法使用
  • 酷炫网站推荐wordpress 汉化版主题
  • 宿州网站开发公司建设网站能解决什么问题
  • 校园二手物品交易网站怎么做上饶做网站哪家好
  • 做平台的网站做智慧教室的网站
  • 襄阳定制型网站开发如何做网页广告
  • 网站修改title成都网络营销学校
  • cms建站系统免费六安网站制作公司价格
  • 毕业设计做网站好的想法网络虚拟号
  • 服装销售网站设计与制作南京个人做网站的
  • 学网站建设有用吗it培训班出来工作有人要么
  • 网站白名单查询在线做网站
  • 合肥 定制网站开发广东seo网站设计营销工具
  • 电子商务网站建设组织流程图广州番禺营销型网站
  • 美食网站首页模板咋样做网站视频
  • 首先确定网站建设的功能定位为什么装修公司建议半包
  • 营销型网站开发广州市公司网站建设企业
  • 营销型网站建设要多少钱seo链接提交入口
  • 建一个大型网站多少钱php框架做网站的好处
  • 试用网站开发学做app
  • 衡水网站制作报价wordpress 实现页面重定向
  • 个人网站成品下载江门网站排名优化
  • 做淘客网站需要什么百度搜搜网站自动显示图片
  • 厦门网站注册与网页设计公司为 wordpress 的评论链接加上 nofollow
  • 自己怎么做简单的网站一般家庭装修照片
  • 如何用phpstudy做网站上海公共招聘网官方网站