资讯专栏INFORMATION COLUMN

使用flex进行网易云音乐界面构建和布局解析(2)

XUI / 1600人阅读

摘要:使用进行网易云音乐界面构建和布局解析前面我们通过布局简史与决胜未来的第四代布局技术了解了布局发展史和未来,下面,我们通过使用进行网易云音乐界面构建和布局解析了解一下,如何在实际项目中使用进行布局,相信大家也体会到了它的便捷之处。

使用flex进行网易云音乐界面构建和布局解析

前面我们通过《css布局简史与决胜未来的第四代css布局技术》了解了css布局发展史和未来,下面,我们通过《使用flex进行网易云音乐界面构建和布局解析》了解一下,如何在实际项目中使用flex进行布局,相信大家也体会到了它的便捷之处。今天我们就深入项目的细节,说说每一个切图人员绕不过去的坎儿,也是jser必须要面对的一个常规任务--《网易云音乐高复用的响应式轮播图的实现》

轮播图相对于大家的工作,就和你首次去女朋友家的准备工作一样,重要而且绕不过去。遗憾的是,大部分人写轮播图都跟第一次见家长一样,没什么经验。

很多人想自己写一套轮播图,然后以后工作中不断的完善,最后形成自己的插件库,遗憾的是有这个想法的大部分人,到了行动的时候才发现,想要实现它,比兑现“结婚就买套房”的诺言都难。最后只好迫于项目压力和自身技能水平,变成了插件的搬运工。

可是插件搬运工有三个问题,首先这个东西对一个人的技术成长没什么用,其次也是重点,插件并不能完全符合项目需求,自己又没有能力进行二次开发,遇上诡异bug也只能听天由命,继续踏上寻找更合适的插件的慢慢征途。最后,有些插件很重,很臃肿,但你只需要的是最基础的轮播功能而已。你会为了吃上一碟醋,专门包顿饺子吗?我想不会。那你为什么仅仅为了使用一个轮播图会而项目里面使用几百k甚至上M的插件?

很多人可能会说因为不会写,好,今天我们就来实现一个,你会发现原来js的世界如此的简单和美好,有找插件的功夫,你都能开发出8个插件了。

=

往上看,大家都认的啥叫轮播图,仔细看下你第一步要做的至少说我拖着一个东西得能动,哪怕是一个红色方块呗。这里就得说下拖拽,拖拽改变的无非就是left和top值(外星人才改right和bottom,我们地球人一般都用left和top,别问我为什么),先让他在一个方向上动起来。




    
    
    
    Document
    
    


    

仔细看,无非就是用了移动端事件而已,分分钟就能理解,问题是很多同学会说,老师,我不理解这里,这是啥,

 var currPoint = e.changedTouches[0].pageX;
 var newLeft  = currPoint - disX;
 oDiv.style.left = newLeft +"px";

这个又是啥?

var currPoint = e.changedTouches[0].pageX;
var newLeft  = currPoint - disX;
oDiv.style.left = newLeft +"px";
oDiv.addEventListener("touchmove", doUp,false);
oDiv.addEventListener("touchend", doUp,false);

其实这些就是核心内容,简单的说就是一张图,非常简单的图,你一看就能懂。

!

其实就是算蓝线的距离只要蓝线正确,位置就错不了,真要是理解不了也没事,你就把他当成公式记住一点毛病也没有。有了这些基础知识就好办了,搭个架子,





    
    
    



    

至少现在一拖拽走起来了,这里简单吧,连纵向都不用考虑,轮播比拖拽还简单,只考虑水平方向,

问题是松手了以后,轮播图的,每一项没去正确的位置,啥叫正确的位置,其实每次改变的left的值将好是一个轮播图的宽度,上图。

!你先别管别的,看红框就是手机屏幕宽度,每次其实就是移动一个格子。那我只要定一个iNow值记录移动几个格子,只要iNow正确就一切OK了呗,说干就干。





    
    
    



    

强调一点,getBoundingClientRect(),这里我为什么没用offsetLeft呢?因为实际项目里面不可能轮播图的外层什么都不套,或者说万一有margin、padding,轮播图的距离就不对了,使用offsetLeft是不具有项目的实用性的,做演示还行,实际项目那么写就废了。

最后我说一个无限轮播图,其实就是算数字的,!)所谓无限轮播的原理,就是当iNow 等于最右边的0的时候,拉回到红框位置,左侧是当iNow 等于 最左边的4的时候,iNow等于6.

很多人有了源代码就忽略了基础的学习,直接拿过去用了,那跟直接找插件没区别,所以这个就当一个小练习吧。

四个练习:

1.实现多屏幕相应适配

2.实现无线轮播

3.实现如果滑动距离不超过50px就不播下一张

4.实现定时器自动轮播!

这里我把上面四个练习解决方法的左侧代码放出来作为提示,大家尽量学会实现。

注意学习是一个过程,不是一个结果,得到最终的源码不重要,学会自己实现这个才重要,毕竟网上有太多的资源和插件代码,如果那个有用,那么每一个人的工资都应该非常高才对。那为什么很多人的技术水平并不高,工资也不理想呢,是因为大家只努力去得到结果,而忽视了技术的实现过程。端盘子和吃菜谁都会,但是饭店却只会给厨师高工资就是这个道理。我们要做的是厨师,不是端盘子的服务员或者食客(此处仅为了说明过程的重要性,无其他意思)。

就说这么多吧,最后一句。牛顿说过,我有一个苹果我吃了你瞅着我就比你幸福,错了牛顿说他没说过这句话,他说的是,我有一个思想,你也有一个,咱俩一交换,就又生一个思想(牛顿好像大意如此,大家理解就OK)。

所以大家有问题可以留言,根据大家的留言我会提供更有针对性的课程。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/58140.html

相关文章

  • 使用flex进行网易音乐界面构建布局解析(1)

    摘要:使用进行网易云音乐界面构建和布局解析为什么要用进行布局第一,布局需要清除浮动,很麻烦。剩下的部分切出来。解决动态的多屏幕适配问题提示动态计算参考代码兼容性提示 使用flex进行网易云音乐界面构建和布局解析 1.为什么要用flex进行webapp布局 第一,float布局 需要清除浮动,很麻烦。 第二,绝对定位需要考虑位置和空间占位 第三,元素垂直水平居中问题。 2.网易云音乐首页分析 ...

    xingqiba 评论0 收藏0
  • 使用flex进行网易音乐界面构建布局解析(1)

    摘要:使用进行网易云音乐界面构建和布局解析为什么要用进行布局第一,布局需要清除浮动,很麻烦。剩下的部分切出来。解决动态的多屏幕适配问题提示动态计算参考代码兼容性提示 使用flex进行网易云音乐界面构建和布局解析 1.为什么要用flex进行webapp布局 第一,float布局 需要清除浮动,很麻烦。 第二,绝对定位需要考虑位置和空间占位 第三,元素垂直水平居中问题。 2.网易云音乐首页分析 ...

    Drummor 评论0 收藏0
  • 使用flex进行网易音乐界面构建布局解析2

    摘要:使用进行网易云音乐界面构建和布局解析前面我们通过布局简史与决胜未来的第四代布局技术了解了布局发展史和未来,下面,我们通过使用进行网易云音乐界面构建和布局解析了解一下,如何在实际项目中使用进行布局,相信大家也体会到了它的便捷之处。 使用flex进行网易云音乐界面构建和布局解析 前面我们通过《css布局简史与决胜未来的第四代css布局技术》了解了css布局发展史和未来,下面,我们通过《使用...

    geekzhou 评论0 收藏0
  • Vue 实现网易音乐 WebApp

    摘要:基于等开发一款移动端音乐,界面参考了安卓版的网易云音乐布局适配常见移动端。图标使用阿里巴巴图标库,中间的唱片旋转动画使用了实现。搜索功能实现功能搜索歌手歌单歌曲热门搜索数据节流上拉刷新保存搜索记录。 基于 Vue(2.5) + vuex + vue-router + vue-axios +better-scroll + Scss + ES6 等开发一款移动端音乐 WebApp,UI ...

    Karuru 评论0 收藏0
  • Vue 实现网易音乐 WebApp

    摘要:基于等开发一款移动端音乐,界面参考了安卓版的网易云音乐布局适配常见移动端。图标使用阿里巴巴图标库,中间的唱片旋转动画使用了实现。搜索功能实现功能搜索歌手歌单歌曲热门搜索数据节流上拉刷新保存搜索记录。 基于 Vue(2.5) + vuex + vue-router + vue-axios +better-scroll + Scss + ES6 等开发一款移动端音乐 WebApp,UI ...

    Terry_Tai 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<