博客列表 >完善抖音小程序页面

完善抖音小程序页面

过儿的博客
过儿的博客原创
2019年02月01日 14:01:13997浏览

index.wxml文件

实例

<!--index.wxml-->
<!-- 顶部导航 -->
<view class="header">
   <view class='header_l'>
    <icon type='search'></icon>
   </view>
    <view class='header_c'>
     <text space="emsp" decode='true' style="font-size:31rpx;">  推荐  </text>
     <text  space="emsp" decode='true' style="font-size:19rpx;">  |  </text>
     <text  space="emsp" decode='true' style="font-size:25rpx;">  河北</text>
    </view>
     <view class='header_r'>
       <image src='../../img/scan.png'></image>
       <image src='../../img/live.png'></image>
     </view>
</view>
<!-- 滑块视图容器 vertical纵向 autoplay不自动切换 indicator-dots不显示面板 -->
<swiper vertical='true' autoplay='' indicator-dots="" style='height:{{widowHeight}}px;'>
  <!-- <swiper-item>每个单元滑动容器 -->
  <swiper-item wx:for="{{play}}" wx:key="">
    <view class='right'>
      <view>
      <image src='{{item.avatar}}' class='avatar'></image>
      <image src='../../img/follow.png' style='width:30rpx;height:30rpx;'></image>
      </view>
      <view>
        <image src="../../img/love.png" class='r_img'></image>
        <view class='text'>{{item.zan}}</view>
          <image src="../../img/forwa.png" class='r_img'></image>
        <view class='text'>{{item.msg}}</view>
          <image src="../../img/com.png" class='r_img'></image>
        <view class='text'>{{item.forward}}</view>
        <image class='img' src="{{item.song_url}}" animation='{{animationData}}'></image>
      </view>
    </view>
    <!-- 视频 -->
    <video class='mv' src='{{item.src}}'></video>
    <!-- 标题-内容-歌曲 -->
    <view style="position:fixed;left:30rpx;bottom:10rpx;z-index:999;color:#fff;font-size:28rpx;">
      <view style="margin-bottom:10rpx;">
        @<span style="font-size:35rpx;">{{item.title}}</span>
      </view>
      <view style='margin-bottom:10rpx;'>
        {{item.conten}}
      </view>
      <view class='box'>
         <view class='flex-box' style='left:{{posLeft2}}px'>
             <view id='txt3' class='txt'>{{item.song}}</view>
             <view class='txt' style="margin-left:{{marginLeft}}px">{{item.song}}</view>
         </view>
      </view>
    </view>
    <!-- 歌曲文字前面的抖音logo -->
      <image src='../../img/dou.png' style='width:20rpx;height:20rpx;position:fixed;bottom:40rpx;z-index:999;left:30rpx;'></image>
  </swiper-item>
</swiper>

运行实例 »

点击 "运行实例" 按钮查看在线实例

index.js文件

实例

//index.js
//获取应用实例
const app = getApp()
let roll_img,roll_word;
Page({  //data是页面第一次渲染使用的初始数据
  data: {
    play:[{
      id:1,     //视频id
      autoplay:false,  //定义视频是否自动播放
      iritial:0, //视频从多少秒开始播放
      src:'http://zhiyou.babydaigou.com//upload/7.mp4',//视频地址
      avatar:'https://img.php.cn/upload/avatar/000/126/153/5b592fa41732b439.jpg', //头像
      zan:'666',//点赞数
      msg:800,//评论数
      forward:90,//转发数
      title:'过儿',
      conten:'人生漫漫,苦海无边,回头是岸!',//发布内容
      song:'@过儿的原创歌曲', //使用歌曲
  song_url:'https://img.php.cn/upload/avatar/000/000/001/0cf3a808f8440a422206ce1975188334.jpg',//歌曲图旋转
      animationData:{}
    }
      
    ],
    windowHeight:0,  //屏幕可使用高度
    pace:1,  //滚动速度
    posleft2:0,  //水平滚动中left值
    marginLeft:30  //水平滚动中两条文本之间的间距
  },
  onLoad:function () {
    this.setData({ //setData函数用于将数据从逻辑层发送到视图层,同时改变对应的this.data的值(同步)
      widowHeight:wx.getSystemInfoSync().windowHeight//获取屏幕可使用高度
    })
    //创建动画
    var animation=wx.createAnimation({
      //创建小程序里的动画实例
      duration:'100000000',//动画持续时间
      timingFunciton:'linear'//匀速播放
    })
    //连续的动画需要添加一个定时器
    roll_img=setInterval(function(){
      animation.rotate(180*30000).step()//从原点旋转一个角度,旋转的角度,范围
      this.setData({
        animationData:animation.export()//导出动画队列
      })
    }
    .bind(this),500
    )
  },
  roll2:function(that,txtLength,windowWidth){
    roll_word = setInterval(function(){
      if(-that.data.posLeft2 < txtLength + that.data.marginLeft){
        that.setData({
          posLeft2:that.data.posLeft2 - that.data.pace
        })
      }else{  //第二段文字滚动到左边后重新滚动
        that.setData({
          posLeft2:0
        })
        clearInterval(roll_word);
        that.roll2(that,txtLength,windowWidth);
      }
    },20)
  },
  //显示页面就开始滚动
  onShow: function () {
    let that = this;
    let windowWidth = wx.getSystemInfoSync().windowWidth; //屏幕宽度
    wx.createSelectorQuery().select('#txt3').boundingClientRect(function(rect){
      let txtLength = rect.width; //文字+图标长度
      that.roll2(that,txtLength,windowWidth);
    }).exec()
  },
  //离开页面就停止滚动
  onHide:function(){
    clearInterval(roll_word);
  }
})

运行实例 »

点击 "运行实例" 按钮查看在线实例

 

index.wxss文件

实例

/**index.wxss**/
.header{
  position: fixed;
  top: 30rpx;
  left: 20rpx;
  z-index: 999;
}
.header_c{
  position: fixed;
  left: 260rpx;
  top:30rpx;
}
.header_r{
  position: fixed;
  right: 30rpx;
  top: 30rpx;
}
.header_r image{
  width:40rpx;
  height: 40rpx;
  margin-left: 25rpx; 
}
.right{
  position: fixed;
  right: 20rpx;
  bottom: 50rpx;
  width: 100rpx;
  text-align: center;
  z-index: 999;
}
.avatar{
  width: 80rpx;
  height: 80rpx;
  border-radius: 50%;
} 
.r_img{
  width:50rpx;
  height: 50rpx;
  margin-top:30px;
}
.text{
  font-size: 20rpx;
  color: #fff;
}
.img{
  width:100rpx;
  height: 100rpx;
  margin-top: 30rpx;
  border-radius: 50%;
}
.mv{
  width: 100%;
  height: 100%;
}
/* 轮动文字 */
.box{
  position: relative;
  width: 100%;
  height: 80rpx;
  line-height: 80rpx;
  overflow: hidden;
  margin-left: 30rpx;
}
.flex-box{
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  position: absolute;
  top: 0;
}
.txt{
  white-space: nowrap;
}
@keyframes roll{
  0%{left: 650rpx;}
  100%{left:-100%;}
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

 

app.json文件

实例

{
  "pages":[
    "pages/index/index",
    "pages/logs/logs",
    "pages/index/follow",
    "pages/index/msg",
    "pages/index/me"
  ],
  "window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "抖音",
    "navigationBarTextStyle":"black"
  },
  "tabBar":{
    "backgroundColor":"#000",
    "color":"#ccc",
    "selectedColor":"#fff",
    "list":[ {
      "pagePath":"pages/index/index",
      "text":"首页"
      },
      {
        "pagePath": "pages/index/follow",
        "text": "关注"
      },
      {
        "pagePath": "pages/index/msg",
        "text": "+"
      },
      {
        "pagePath": "pages/index/msg",
        "text": "消息"
      },
      {
        "pagePath": "pages/index/me",
        "text": "我"
      }
    ]
  }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

weibo.png

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议
张然2019-05-09 18:40:181楼
有github的地址吗。或许完整的实例吗