大家好,今天来为大家解答上下轮播图网站源码分享这个问题的一些问题点,包括文字上下轮播也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
前言
分享之前我们先来普及一下什么是数据可视化?数据可视化可以把数据从冰冷的数字转换成图形,揭示蕴含在数据中的规律和道理。数据可视化通俗来说就是:数据的展示、处理和分析。目的是借助于图形化手段,清晰有效地传达与沟通信息。
那前端数据可视化又是什么呢?前端数据可视化其实就是利用前端表现层的手段,以前端手段展示、处理和分析数据。前端因为H5的到来,使前端有了质的飞跃,也使前端数据可视化的飞速发展得到了契机。H5提供的canvas就是这一契机。它是前端利用JS制作在做前端数据可视化的利器,几乎全部前端数据可视化工具都是基于其上做的。
简而言之,前端数据可视化是数据可视化的发展也是促使前端发展的支柱。
接下来要实现数据可视化平台酷屏展示效果,前端界出现了各种第三方开源库:Echarts(百度),AntV(阿里),Highcharts(国外公司),D3.js(国外公司)等。但是,万变不离其宗。
总的来说,所有的第三方库都是基于这两种浏览器图形渲染技术实现的:Canvas和SVG。
SVGCanvas不依赖分辨率依赖分辨率支持事件处理器不支持事件处理器最适合带有大型渲染区域的应用程序(如地图)弱的文本渲染能力复杂度高会减慢渲染速度(任何过度使用DOM的应用都不快)能够以.png或.jpg格式保存结果图像不适合游戏应用最适合图像密集型的游戏可以为某个元素附加JavaScript事件处理器。在SVG中,每个被绘制的图形均被视为对象。一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景都需要重新绘制。
数据可视化利器对比
1、兼容性
Highcharts兼容IE6及以上的所有主流浏览器,完美支持移动端缩放、手势操作。Echarts兼容IE6及以上的所有主流浏览器,同样支持移动端的缩放和手势操作。D3兼容IE9及以上的所有主流浏览器,对于移动端的兼容性也同上。AntV兼容IE9及以上的所有主流浏览器,对于移动端的兼容性也同上。
2、是否免费/开源
Highcharts非商业免费,商业需授权,代码开源。Echarts完全免费,代码开源。D3完全免费,代码开源。AntV完全免费,代码开源。
3、难易程度
Highcharts基于SVG,方便自己定制,但图表类型有限。Echarts基于Canvas,适用于数据量比较大的情况。D3版本v3基于SVG,方便自己定制;D3版本v4支持Canvas+SVG,如果计算比较密集,也可以选择用Canvas。除此之外,D3图表类型非常丰富,几乎可以满足所有开发需求,但代码相对于以上两个插件来说,会稍微难一点。G是AntV蚂蚁金服旗下一款易用、高效、强大的2D可视化渲染引擎,提供Canvas、SVG等多种渲染方式的实现。
通过各种比较之后,我最终选择基于Echarts进行开发,上手快。当然,如果技术够硬,可以选择D3.js等,学成后牛逼哄哄,非常适合用于为用户制定个性化图表,但更强的专业性也就意味着更高的学习成本,仁者见仁智者见智吧。
了解可视化相关设计
自己去百度搜索数据可视化设计,乍一看,设计主题都是偏深蓝色调。科技感,酷炫,大屏展示,视觉冲击感强。如图:
看完这些,基本对大数据可视化的设计有所了解,没有UI设计师,自己也懂一点设计得话,前端一样可以愉快的玩耍。先上一波效果图。
效果截图
登录界面
酷屏首页组件库
看了以上效果图,都只是静态的,还不过瘾,直接线上体验:jackchen0120.github.io/vueDataV/
高端大气上档次,是我追求的目标。如果感觉还不错的话,老铁们是不是赏个点赞鼓励一哈,作者才有动力继续写下去。好了,言归正传,想要快速做出酷炫大屏,让人眼前一亮,就请接着往下看。
项目架构
│vue.config.js//webpack配置\n├─public\n│favicon.ico//ico图标\n│index.html//入口html文件\n└─src\n│App.vue//根组件\n│main.js//程序入口文件\n├─assets\n│├─iconfont//引用阿里巴巴矢量图标库\n│├─img//存放公共图片文件夹\n│├─js\n││utils.js//封装工具类方法\n│└─styles\n││base.scss//基础样式文件\n││common.scss//公用样式文件\n│└─fonts//字体库文件\n├─components\n││index.js//封装组件库\n│├─bar3d//3D立体柱状图\n│├─bgAnimation//登录界面背景图动画\n│├─cakeLinkage//柱饼组合联动\n│├─circleNesting//圆环套圆环\n│├─circleRunway//环形跑道图\n│├─colorfulArea//多彩轮播面积\n│├─colorfulRadar//多彩雷达\n│├─dynamicLine//动态轮播折线图\n│├─dynamicList//动态列表动画\n│├─flashCloud//闪动云\n│├─gauge//仪表盘\n│├─modal//自定义全局模态框\n│├─pyramid//金字塔动画\n│├─pyramidTrend//金字塔趋势\n│├─rainbow//彩虹轨道图\n│├─ringPie//环形饼图\n│├─ringPin//环形气泡图\n│├─rotateColorful//旋转多彩图\n│├─scanRadius//扫描半径图\n│├─scrollArc//滚动弧形线\n│├─seamless//新闻无缝滚动\n│├─sinan//司南排名图\n│├─staffMix//人员占比\n│├─szBar//双轴柱状图\n│├─toast\n││index.js//注册全局消息提示框组件\n││index.vue//自定义消息提示框模板\n│└─waterPolo\n│index.vue//水球图、水波图\n├─router\n│index.js//单页面路由注册组件\n├─store\n│index.js//状态管理仓库未使用到\n└─views\nHome.vue//酷屏首页统计图\nLogin.vue//登录界面\n复制代码
技术栈
vue2.6echarts4.7axioswebpackES6scsscss3jqueryiconfont
功能模块
登录界面抖动粒子动效背景图轮播自定义全局模态框自定义消息提示框数字滚动酷屏首页组件库各种酷炫小部件可视化面板布局
准备工作
windows10系统下载安装nodejsv10+nodejs.org/zh-cn/代码编辑器工具sublimetext3
搭建开发环境(此处非小白可以忽略)
1)打开命令行窗口,输入node-v查看,出现版本号说明已安装成功,如下图:
2)使用以下命令安装vue-cli3
npminstall-g@vue/cli\nOR\nyarnglobaladd@vue/cli\n复制代码
3)安装完成,检查vue版本,如下图:
vue-V\n复制代码
4)vue-cli3创建项目及运行
vuecreatewoyouzhe\ncdwoyouzhe\nnpmrunserve\n复制代码
在浏览器地址栏输入:http://localhost:8080/
5)开发配置在使用vue-cli3脚手架创建项目后,因为webpack的配置均被隐藏,当你需要覆盖原有的配置时,则需要在项目的根目录下,新建vue.config.js文件,来配置新的配置如下(含注解):
module.exports={\npublicPath:process.env.NODE_ENV===&34;?&34;:&34;,//部署生产环境和开发环境下的URL:可对当前环境进行区分\nlintOnSave:false,//是否在代码保存时进行eslint检测\n\tproductionSourceMap:false,//是否在构建生产包时生成sourceMap文件,false将提高构建速度\n\tdevServer:{//webpack-dev-server相关配置\n\tport:8081,//端口号\n\thotOnly:false,//取消热更新\n\t//proxy:{//使用代理\n\t//&39;:{\n\t//target:&39;,//目标代理服务器地址\n\t//changeOrigin:true,//允许跨域\n\t//pathRewrite:{\n\t//&39;:&39;//重写路径,需要设置重写的话,要在后面的调用接口前加上/api来代替target\n\t//}\n\t//}\n\t//}\n\t},\n\tconfigureWebpack:{\n//把原本需要写在webpack.config.js中的配置代码写在这里会自动合并\nexternals:{\n&39;:&39;,\n&39;:&39;,\n&39;:&39;\n}\n}\n}\n复制代码
在配置文件vue.config.js中添加webpack的externals对象,把不需要打包的依赖库(减少打包文件体积),直接按上面的方式写入。然后在index.html文件中引入CDN即可,如下图:
6)公共样式,图片,字体,JS,统一存放在/src/assets/文件夹下,如下图:
js文件夹里面的utils.js文件的作用,如下图:
作者偷懒只针对酷屏首页组件库会用到,通常按照UI设计师提供的数据可视化屏幕尺寸都是宽:1920px,高:1080px,所以上面的配置也按照这个尺寸进行屏幕缩放。后续会专门讲数据可视化面板的合理布局。首页引用如下图:
iconfont文件夹存放图标文件,可以直接去阿里巴巴矢量图标库查找下载所需要的图标。
style文件夹存放base.scss(基本样式)和common.scss(组件库通用样式),直接在main.js文件引入即可,如下图:
功能设计和代码实现
按照上面的步骤完成脚手架构建,把需要的axios、vue-router、echarts、scss、jquery等依赖库引入和安装配置好,准备开始上路。
登录界面主要功能包含:背景图轮播、粒子动效、登录框抖动、自定义消息提示框等等。
背景图轮播
利用css3动画属性animation实现轮播背景图的路径,使这个动画无限循环下去,以实现背景图自动轮播的效果。背景图轮播功能已封装注册全局小组件在components/bgAnimation目录文件,直接上代码:
<template>\n<ulclass=&34;>\n<li></li>\n<li></li>\n<li></li>\n<li></li>\n</ul>\n</template>\n\n<script>\nexportdefault{\nname:&34;\n};\n</script>\n\n<stylelang=&34;>\n.slide-box{\nposition:fixed;\nwidth:100%;\nheight:100%;\nbackground:rgba(0,134,179,.5);\ntop:0;\nleft:0;\nz-index:0;\nli{\nwidth:100%;\nheight:100%;\nposition:absolute;\ntop:0px;\nleft:0px;\ncolor:transparent;\nbackground-size:cover;\nbackground-position:50%50%;\nbackground-repeat:none;\nopacity:0;\nz-index:0;\n-webkit-backface-visibility:hidden;\n-webkit-animation:imgAnimation48slinearinfinite0s;\n-moz-animation:imgAnimation48slinearinfinite0s;\n-o-animation:imgAnimation48slinearinfinite0s;\n-ms-animation:imgAnimation48slinearinfinite0s;\nanimation:imgAnimation48slinearinfinite0s;\n\n&:nth-child(1){\nbackground-image:url(../../assets/img/bg-4.jpg);\n}\n&:nth-child(2){\nbackground-image:url(../../assets/img/bg-5.jpg);\n-webkit-animation-delay:12s;\n-moz-animation-delay:12s;\n-o-animation-delay:12s;\n-ms-animation-delay:12s;\nanimation-delay:12s;\n}\n&:nth-child(3){\nbackground-image:url(../../assets/img/bg-2.jpg);\n-webkit-animation-delay:24s;\n-moz-animation-delay:24s;\n-o-animation-delay:24s;\n-ms-animation-delay:24s;\nanimation-delay:24s;\n}\n&:nth-child(4){\nbackground-image:url(../../assets/img/bg-4.jpg);\nanimation-delay:36s;\n}\n}\n}\n@-webkit-keyframesimgAnimation{\n0%{\nopacity:0;\n-webkit-animation-timing-function:ease-in;\n}\n8%{\nopacity:1;\n-webkit-transform:scale(1.1);\n-webkit-animation-timing-function:ease-out;\n}\n17%{\nopacity:1;\n-webkit-transform:scale(1.2);\n}\n25%{\nopacity:0;\n-webkit-transform:scale(1.3);\n}\n100%{\nopacity:0;\n}\n}\n@keyframesimgAnimation{\n0%{\nopacity:0;\nanimation-timing-function:ease-in;\n}\n8%{\nopacity:1;\ntransform:scale(1.1);\nanimation-timing-function:ease-out;\n}\n17%{\nopacity:1;\ntransform:scale(1.2);\n}\n25%{\nopacity:0;\ntransform:scale(1.3);\n}\n100%{\nopacity:0;\n}\n}\n</style>\n复制代码
如果对animation属性不熟,可以参考这个网站教程。
粒子动效
点击查看效果这种粒子背景特效在Vue框架中实现不难,因为已经有大神帮我们做好了,我们只需引入到自己的项目中即可,作者推荐vue-particles插件,简单看一下使用,具体用法可以移步vue-particles官网。
<vue-particles\ncolor=&6495ED&34;0.7&34;80&34;circle&34;4&34;34;\n:linesWidth=&34;\n:lineLinked=&34;\n:lineOpacity=&34;\n:linesDistance=&34;\n:moveSpeed=&34;\n:hoverEffect=&34;\nhoverMode=&34;\n:clickEffect=&34;\nclickMode=&34;\n>\n</vue-particles>\n复制代码
自定义全局消息提示框
消息弹框组件,默认3秒后自动关闭,可设置info/success/warning/error类型。效果如下图:
消息弹框功能已封装注册全局小组件在components/toast目录文件,代码如下:
<template>\n<transitionname=&34;>\n<divclass=&34;v-if=&34;>\n<divclass=&34;:class=&34;>\n<divclass=&34;>\n<iclass=&34;:class=&39;icon-&34;></i>\n<span>{{content}}</span>\n</div>\n<iv-if=&34;class=&34;@click=&34;></i>\n</div>\n</div>\n</transition>\n</template>\n\n<script>\nexportdefault{\nname:&39;,\ndata(){\nreturn{\ncontent:&39;,\ntime:3000,\nvisible:false,\ntype:&39;,//四种类型:info,success,warning,error\nhasClose:false,\n}\n},\nmounted(){\nthis.close();\n},\nmethods:{\nclose(){\nsetTimeout(()=>{\nthis.visible=false;\n},this.time);\n}\n}\n}\n</script>\n复制代码
在components/toast/index.js目录文件中注册全局组件,如下图:
在main.js中全局引用,如下图:
在登录模板界面调用即可,如下图:
参数名类型说明contentString内容timeNumber消失时间,默认3秒后消失typeStringinfo/success/warning/error,默认infohasCloseBoolean是否含关闭按钮,默认false
最后
由于时间关系,文章写的仓促,难免会有些问题或BUG出现,愿意接受批评和指正。此次实战项目分享内容分为上下两篇文章,下一篇要分享的内容大概有:自定义全局模态框、首页设计布局、数字滚动、某个酷炫小部件开发等。
作者:懒人码农链接:https://juejin.im/post/5ebbf0b25188256d8a229035来源:掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
上下轮播图网站源码分享的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于文字上下轮播、上下轮播图网站源码分享的信息别忘了在本站进行查找哦。
