轮播图-动态响应轮播图-分析|学习笔记

简介: 快速学习 轮播图-动态响应轮播图-分析

开发者学堂课程【移动 Web 前端开发:轮播图-动态响应轮播图-分析】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/594/detail/8460


轮播图-动态响应轮播图-分析

 

内容简介

之前完成了一个导航条,并且是一个详细的导航条的 bootstrap 已经给一个组件

因为调整好了 bootstrap 的运营环境,拿过来直接就可以用,但是它和产品还是有定的差距。

那么要把预制的图片修改为产品的一个导航条,就需要那么几个步骤,是使用bootstrap 当中里面的一个方法把样式弄明白把样式等于选择器给覆盖掉然后凸显样式再调整一下响应项,bootstrap 还涉及到轮播图这块内容把carousel 轮播图组件结构分析了一遍做了一个非移动端的做了一个移动端的把两个东西都整合在一起做了一个静态的响应式的轮播图

那么静态的响应式轮播图功能已经实现了可以把这个轮播图移到 index.html 上面先看一下再做它的优化因为它有同时加载两种图片的缺点

正文

.m_imageBox{

display: block;

width:100%;

}

.m_imageBox img{

width: 100%;

display: block;

}

pc_imageBox{

display: block;

width: 100%;

height: 450px;

background-repeat: no-repeat;

background-size: cover;

background-position: center;

}

这段样式是需要的在 index.css 中另起一个模块复制进来

/*轮播图*/

.wjs_banner{}

这些样式是属于 banner 模块的每一个选择器前面都加一个 wjs_banner代码如下

.wjs_banner{

border- bottom :1px solid #ccc ;

}

wjs_banner.m_imageBox{

display: block;

width:100%;

}

wjs_banner.m_imageBox img{

width: 100%;

display: block;

}

wjs_banner.pc_imageBox{

display: block;

width: 100%;

height: 450px;

background-repeat: no-repeat;

background-size: cover;

background-position: center;

}

轮播图下面来一个边框就可以了样式齐了要把 html 结构复制过来要把整块内容都粘贴过去放在 banner 区域里面现在 banner 不需要版型它占满了整个屏幕样式就可以直接删掉删掉之后结构对了路径不对需要把../去掉,../相对是同级目录没必要整上一级的把../去掉这时目录就没有问题了包括图片

这就是放在首页当中的轮播图

刷新一下页面轮播图就有了可以切换

image.png

其实这个轮播图高度只要求410px405px 是因为能继续增加一些属性像其它需要丰满的时候可以用它不管改成多少它都会铺满刷新一下

image.png 

轮播图在大屏,中屏,小屏超小屏中都是自适应的这样轮播图就没有问题了

接下来进行优化需要把../images/slide_01 640x340. jpg'这样的一种加载同时加载两张图片变成按需加载要根据当前设备属于哪一类设备具体加载哪一类图片比如是全屏的就应该加载大图缩小就应该加载小图按需加载,按当前设备加载现在归分为四类设备但是轮播图只有两种情况一种移动端一种非移动端,移动端和非移动端的临界点是多少

或者怎么判断当前设备是非移动端还是移动端移动端可以认为是超小型设备它的区间是276。

判断好当前设备之后根据自己的设备加载图片怎么加载

如果在大型设备里面的 a display,../image 这个数据会不会加载这有个页面页面上有个 aa 是 display里面有个 image页面初始化的时候 image 会不会加载

答案是会加载因为在大屏设备里把 a 写入 display:none ,这个图片也会加载,这时候仅仅把 a 设成 display:none ,但是 src 还是存在的,还是会向后台发出请求下载图片,所以隐藏是没有作用的,是达不到这样的效果的

比如在页面中按下 f12, 在network 可以看到加载的东西,这个是用来看当前页面到底会下载什么东西的现在隐藏了某些图片,但刷新后 network 里这些图片还是被加载了可以看到2000的这张也被加载了所以在页面初始化的时候不管是隐藏还是不隐藏都是会被加载的所以 css 控制不了 image 的加载,js可以控制。方法是让  

里面没有东西,让这两个都空再让当前的屏幕动态的追加一张追加 m_ imageBox 还是 pc_imageBox  当前设备有关系js可以判断当前设备可以按需渲染图片

现在有四张图片,可能会出现三张图片,两张图片,五张图片六张图片的情况,因为可能有动态效果出现,所以要实现的功能是动态响应式轮播图,而且是为了做动态渲染做优化而提出的这样一个东西

在 index.js 中完成

响应式要兼容pc端又要兼容移动端

输入$(function(){    

/*动态的响应式轮播图*/

});

在入口函数之外声明一个 banner

var banner = function(){  

之后在入口函数之后调用

banner();

意思是页面文档加载之后执行 banner()函数因为它跟 windows 有一定的区别windows 上是等页面上所有的资源包括图片js 下载完成之后再进行执行而这个只需要文档页面上的字符渲染完解析完就可以了不需要等其他东西加载出来

完成动态响应轮播图需要从动态出发就要依赖于数据动态的需要数据,不能写死,是从后台抓取来的,抓取之后渲染成轮播图。接下来要把轮播图里的东西抽象成一组数据比如京东,

image.png

这是一个商品需要哪些信息才能描述出来才能把 html 中展示出来不可缺少的图片名称,价格以及原价,没有这些东西就构建不了 html 结构,后面就会发现渲染就是数据来驱动的,是跟数据息息相关的,页面最终是要绑定数据的。

把轮播图抽象成一组数据需要图片地址但是第一张轮播图有两种情况一种是pc 端的地址,一种是移动端的地址,所以需要两个数据,如果没有这两个数据就无法根据当前设备进行渲染。

所以在第一步就要准备数据如果学了阿里云之后就从后台获取数据模拟数据,一张图片里面有两个地址构成一个对象,有n张图片多个对象就需要多张图片构成一个数组。

1.模拟数据从后台回去数据[{ }],[{ }]   数组包含着若干个对象

有了数据之后就需要把它转化成轮播图而且要根据当前设备所以就是判断当前设备

2.判断当前设备   768px

将数据根据当前设备转化车工轮播图,判断是移动端还是非移动端。

当设备是768px 以下都是移动端,这是根据设备分类来判断的,768px是临界点

3.根据当前设备把数据转化成 html(渲染过程)  

根据数据判断那些需要动态生成,点容器内容需要动态生成,图片容器内容需要动态生成,利用通过拼接字符串的方式转化当把字符串拼接好之后

4.渲染到页面当中  html 追加  

添加或者追加到页面当中渲染到页面当中

哪些 html 需要动态的转化呢哪些数据是动态的或者哪些页面时活的要根据数据来的

点盒子要变成动态的它要根据图片的数量对应的比如有五张图就有五个点这里也需要动态渲染所以3这里需要两步点容器需要动态生成

3.1点容器内容需要动态生成

Carousel-inner 也是需要动态,四个盒子代表四张图五张图就要变成五个 div既然都是动态的这里面的a就可以变成动态所以就可以根据设备是选择把第一个a 拼进去还是第二个a拼进去是这样一个过程

3.2图片容器内容需要动态生成

4这步就完成了一个动态渲染

把这些图都渲染完怎么测试它在不同设备能正常显示呢需要在页面尺寸发生改变的时候来看当前的轮播图能不能当前展示所以需要测试

5.测试能否响应  两种设备(移动端和非移动端  监听页面尺寸改变重新渲染

把容器都动态渲染之后测试页面尺寸发生改变时,当前轮播图就需要重新渲染就是根据实时根据当前页面的宽度重新渲染

既然是响应式轮播图,就是要在移动端也能正常显示,就必须具备移动端手势切换功能。

6.移动端 手势切换功能  左滑 右滑

轮播图只需要左滑,右滑切换图片这里是手势,并不是滑动,手势是整个操作过程而不是一直在滑动。

/*

*1.模拟数据(从后台回去数据)[{},{}]

*2.判断当前设备768px

*3.根据当前设备把数据转换成html拼接字符串

*3.1点容器内容需要动态生成

*3.2图片容器内容需要动态生成

4.渲染到页面当中ihtml 追加

*

* 5.测试能否响应两种设备  监听页面尺寸改变重新渲染

*

* 6.移动端 手势切换功能 左滑右滑

* */

这六个需求就已经分析完了并且实现方式也分析完了数据格式是字母判断设备根据 768px拼接字符串渲染设备html 追加渲染到页面当中监听页面尺寸改变重新渲染进行测试通过左滑右滑手势进行移动端切换从功能到需求到实现全部都分析一遍了。

相关文章
|
2月前
|
移动开发
H5页面及店铺分享带图简介
H5页面及店铺分享带图简介
|
3月前
|
JavaScript
如何通过点击商品的信息(图片或者文字)跳转到更加详细的商品信息介绍(前后端分离之Vue实现)
该博客文章介绍了如何在Vue 2框架下实现前后端分离的商品信息展示和详情页跳转,包括排序筛选、详情展示、加入购物车和分享功能。
如何通过点击商品的信息(图片或者文字)跳转到更加详细的商品信息介绍(前后端分离之Vue实现)
|
3月前
|
前端开发 JavaScript 机器人
中后台前端开发问题之动态标注组件渲染到界面上如何解决
中后台前端开发问题之动态标注组件渲染到界面上如何解决
33 0
|
移动开发 JavaScript 前端开发
数据可视化大屏百度地图手机端标注开发实战案例解析(jsAPI接口、标注分类图片、文本标签、分类筛选、自适应高度信息弹窗、PHP后端API)
数据可视化大屏百度地图手机端标注开发实战案例解析(jsAPI接口、标注分类图片、文本标签、分类筛选、自适应高度信息弹窗、PHP后端API)
205 0
|
6月前
|
前端开发 容器
|
11月前
|
容器
会议OA项目-首页->flex弹性布局,轮播图后台数据获取及组件使用(后台数据交互mockjs),首页布局
会议OA项目-首页->flex弹性布局,轮播图后台数据获取及组件使用(后台数据交互mockjs),首页布局
79 0
|
前端开发 JavaScript Java
【日志显示】vue实现前端展示后端带颜色的日志
vue实现后端日志到前端展示中能带颜色。
2435 0
【日志显示】vue实现前端展示后端带颜色的日志
|
容器
ivx页面(3)轮播图的动态数据绑定实现以及轮播图点击跳转页面
ivx页面(3)轮播图的动态数据绑定实现以及轮播图点击跳转页面
211 0
|
前端开发
如何对ajax请求的后台数据添加到swiper轮播图并展示到页面
如何对ajax请求的后台数据添加到swiper轮播图并展示到页面
144 0
|
前端开发 JavaScript
前端动画(动态)图标库收集
前端动画(动态)图标库收集
151 0