• transform:scale()妙用——当下拉列表,图片无缝拉升 动画效果


     

    遇到问题

            昨天在做音乐播放器的时候,遇到了一个这样的界面:

    当下拉scroll区域列表的时候,图片会按照比例无缝连接放大,就想下面的效果图一样

     

    分析问题

            从上图可一看到,页面主要由两个div组成,图片为div1,列表为div2,当向下滑动div2,div1也上下拉升,无缝紧贴div1。既然是div(图片)的拉伸,我们就可以用到CSS3中的  transform:scale  (按比例缩放变形)。至于这个比例到底是如何,我们可以使用数学来计算。

    公式计算

          上面说了,列表div2是由better-scroll来完成数据列表滑动效果,Y轴滑动的距离我们可以通过better-scroll提供给我们的函数动态得到的(即使不用better-scroll,用原始的方式也可以得到Y轴列表滑动的距离),因此,我们拿到了向下滑动的距离Y,于是我拉升图片的比例也就出来了,就是说,下滑距离Y,那么我图片div的长与宽都要增加Y,所以比例公式为:  scale = 1 +  (Y / imageHeight)

    解决问题

          最后,拿到比例就简单了,我们直接使用CSS3给我们提供的变形属性中的缩放,就大功告成了。即

    1 this.$refs.bgImage.style[transform] = `scale(${scale})`

    -----完-----

    不安逸,不浮躁,牛B就是一个学习累积的过程
  • 相关阅读:
    LayoutInflater(布局服务)
    FOTA升级
    APK安装过程及原理详解
    Context类型
    Android应用的persistent属性
    Notification(状态栏通知)详解
    Handler消息传递机制浅析
    Selenium HTMLTestRunner 无法生成测试报告的总结
    【python】远程使用rsa登录sftp,上传下载文件
    02.性能测试中的指标
  • 原文地址:https://www.cnblogs.com/pengshengguang/p/7681733.html
Copyright © 2020-2023  润新知