最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • [ 前端 ] 简单分析 B 站动态 banner 图

    正文概述 掘金(jwenjian)   2020-11-29   767

    B 站过段时间就会在首页加上一个动态的 banner 图,鼠标放上之后左右移动,banner 图中的各个元素(人物 / 物品)会随之移动,交互性很高且很有吸引力,今天简单分析一下如何实现的。

    [ 前端 ] 简单分析 B 站动态 banner 图

    审查元素之后可以看到,banner 区域的 HTML 结构如下:

    <div class='animated-banner'>
      <div class='layer'>
        <img src='0.png' />
      </div>
      <div class='layer'>
        <img src='1.png' />
      </div>
      <div class='layer'>
        <img src='2.png' />
      </div>
      <div class='layer'>
        <img src='3.png' />
      </div>
      ...
    </div>    
    

    div.layer 的样式表:

    .animated-banner>.layer {
        position: absolute;
        left: 0;
        top: 0;
        height: 100%;
        width: 100%;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-align: center;
        align-items: center;
        -ms-flex-pack: center;
        justify-content: center;
    }
    

    从上面的代码可以看出,要实现这样的 banner 图,首先要将一张动态图分割为多个图层,分别保存为 0 - n.png,每一层只有一部分元素,比如:

    • 0.png 只包含背景图
    • 1.png 只包含排球照片,其余部位为透明
    • 2.png 只包含奇数位运动员照片,其余部位为透明
    • 3.png 只包含偶数位运动员照片,其余部位为透明

    由于 .layer class 的 position 属性值为 absolute, left 和 top 均为 0,按顺序加载之后,0 - 3 这 4 张 png 图片叠加成一个完整的图片,但是只是一个静态的 banner 图

    接下来用鼠标在 banner 图上划过,可以看到每层的图片(除了背景图)都在随着鼠标滑动,但是滑动距离各有不同:

    [ 前端 ] 简单分析 B 站动态 banner 图

    可以看到,在 HTML 元素上表现为 每个 layer 层 div 中的 img 元素的样式的 trasform 属性值会随着鼠标的左右滑动而改变,这样原来静态的图片就随着鼠标动了起来。

    还可以看到每一层的 img 元素的样式的 transform 属性值变化的速率也不一样,使得每层图片运动距离都不一样,显得动画更真实。

    具体在实现方式上应该是给 .layer 的 div 元素绑定了 mousemove 事件,根据鼠标运动的距离和方向对每层图片的 transform 属性值进行动态修改。


    起源地下载网 » [ 前端 ] 简单分析 B 站动态 banner 图

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元