莫名其妙的孤独和无可救药的喜欢。

首先你想要的东西是这样的嘛?

视频是上滑 加载下一个视频的
默认数据

export const list1 = [{id: 1,title: '标题1',like: 0,likeCount: 111,follow: 0,topic: '帅气',headPic: 'https://mp-zhuantui-1259100054.cos.ap-guangzhou.myqcloud.com/demo/my.jpg',site: '深圳南山小院',description: '描述1111111111',src: 'https://jxtt.diangoumall.com/149c30b0vodcq1258058953/49c7db9a5285890787353753574/Q5UBGGmat3IA.mp4',pic: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/d40981735285890792272813628/5285890792272813629.png'},{id: 2,title: '标题1',like: 0,likeCount: 111,follow: 0,topic: '帅气',headPic: 'https://mp-zhuantui-1259100054.cos.ap-guangzhou.myqcloud.com/demo/my.jpg',site: '深圳南山小院',description: '描述22222222222',src: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/64f5e9d45285890792488081407/8oURskeCNB4A.mp4',pic: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/8f50418c5285890792278024360/5285890792278024361.jpg'},{id: 3,title: '标题1',like: 0,likeCount: 111,follow: 0,topic: '帅气',headPic: 'https://mp-zhuantui-1259100054.cos.ap-guangzhou.myqcloud.com/demo/my.jpg',site: '深圳南山小院',description: '描述33333333333',src: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/d40981735285890792272813628/0WwtSZ6LaQsA.mp4',pic: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/028c7b2e5285890790259303635/5285890790259303636.jpg'},{id: 4,title: '标题1',like: 0,likeCount: 111,follow: 0,topic: '帅气',headPic: 'https://mp-zhuantui-1259100054.cos.ap-guangzhou.myqcloud.com/demo/my.jpg',site: '深圳南山小院',description: '描述44444444444',src: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/8f50418c5285890792278024360/culTK7B9wQUA.mp4',pic: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/f242fcb05285890790418518803/5285890790418518804.jpg'},{id: 5,title: '标题1',like: 0,likeCount: 111,follow: 0,topic: '帅气',headPic: 'https://mp-zhuantui-1259100054.cos.ap-guangzhou.myqcloud.com/demo/my.jpg',site: '深圳南山小院',description: '描述5555555555555',src: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/028c7b2e5285890790259303635/xakDxdIyH40A.mp4',pic: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/23b7ad255285890792120624145/5285890792120624146.jpg'},{id: 6,title: '标题1',like: 0,likeCount: 111,follow: 0,topic: '帅气',headPic: 'https://mp-zhuantui-1259100054.cos.ap-guangzhou.myqcloud.com/demo/my.jpg',site: '深圳南山小院',description: '描述666666666666666',src: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/f242fcb05285890790418518803/pyuSPahvZJYA.mp4',pic: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/b5cf86cd5285890791051309493/5285890791051309494.jpg'},
]export const list2 = [{id: 7,title: '标题1',like: 0,likeCount: 111,follow: 0,topic: '帅气',headPic: 'https://mp-zhuantui-1259100054.cos.ap-guangzhou.myqcloud.com/demo/my.jpg',site: '深圳南山小院',description: '描述777777777',src: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/23b7ad255285890792120624145/qvGzDAESscgA.mp4',pic: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/add3fcfa5285890792400897279/5285890792400897280.jpg'},{id: 8,title: '标题1',like: 0,likeCount: 111,follow: 0,topic: '帅气',headPic: 'https://mp-zhuantui-1259100054.cos.ap-guangzhou.myqcloud.com/demo/my.jpg',site: '深圳南山小院',description: '描述88888888',src: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/b5cf86cd5285890791051309493/NQYuQR6PHUUA.mp4',pic: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/571e296f5285890792433782008/5285890792433782010.jpg'},{id: 9,title: '标题1',like: 0,likeCount: 111,follow: 0,topic: '帅气',headPic: 'https://mp-zhuantui-1259100054.cos.ap-guangzhou.myqcloud.com/demo/my.jpg',site: '深圳南山小院',description: '描述99999999',src: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/add3fcfa5285890792400897279/J68IWjyhVt0A.mp4',pic: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/b37367f55285890790258233848/5285890790258233849.jpg'},{id: 10,title: '标题1',like: 0,likeCount: 111,follow: 0,topic: '帅气',headPic: 'https://mp-zhuantui-1259100054.cos.ap-guangzhou.myqcloud.com/demo/my.jpg',site: '深圳南山小院',description: '描述1010101010',src: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/571e296f5285890792433782008/RjqYUPUdKskA.mp4',pic: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/1304a2995285890792449807508/5285890792449807509.jpg'},{id: 11,title: '标题1',like: 0,likeCount: 111,follow: 0,topic: '帅气',headPic: 'https://mp-zhuantui-1259100054.cos.ap-guangzhou.myqcloud.com/demo/my.jpg',site: '深圳南山小院',description: '描述111111111111111111111111',src: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/b37367f55285890790258233848/DY6aaTzbJKcA.mp4',pic: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/7c9f7a335285890792437129391/5285890792437129392.jpg'},{id: 12,title: '标题1',like: 0,likeCount: 111,follow: 0,topic: '帅气',headPic: 'https://mp-zhuantui-1259100054.cos.ap-guangzhou.myqcloud.com/demo/my.jpg',site: '深圳南山小院',description: '描述121212121212121212121212',src: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/1304a2995285890792449807508/0Afh78SL0jQA.mp4',pic: 'http://jxtt.diangoumall.com/149c30b0vodcq1258058953/7c9f7a335285890792437129391/5285890792437129392.jpg'},
]

html

<!-- <search class="search"></search> -->
<!--index.wxml-->
<!-- 引入.wxs文件 src为相对路径,module指定当前模块的名称 -->
<wxs module="filter" src="../../utils/returnMTime.wxs"></wxs><view class='container'><search class="search"></search><view class='tab-wrapper'><view id='popularRecommendation' class='tab-left {{currentTab === 0 ? "tab-active":""}}' bindtap='switchTab'>热门推荐<text class="bobr"></text></view><view id='selectedCourse' class='tab-center {{currentTab === 1 ? "tab-active" : ""}}' bindtap='switchTab'>精选课程<text class="bobr"></text></view><view id='myCourseRack' class='tab-right {{currentTab === 2 ? "tab-active" : ""}}' bindtap='switchTab'>我的课架<text class="bobr"></text></view></view>
</view><view wx:if='{{currentTab === 0}}' style="padding-top: {{paddingTop}}px;" class="box"><view class='content-wrapper ' id="popularRecommendation"><!-- <popularRecommendation bind:myevent="onGetCode" />  poster="{{threeItemParam.pic}}" --><swiper vertical="{{true}}" circular="{{true}}" current="{{current}}" skip-hidden-item-layout="{{true}}" bindchange="changeCurrent" bindanimationfinish="changeItem"><swiper-item item-id="{{oneItemParam.id}}"><video bindwaiting="videoWaiting" bindtimeupdate="timeupdate" show-center-play-btn="{{false}}" title="1111111" id="myVideo0" bindfullscreenchange="fullScreen" src="{{oneItemParam.src}}" custom-cache="{{true}}" controls="{{true}}" bindplay="eventPlay" bindtap="tabVideo"></video></swiper-item></swiper><!-- 用户 --><view hidden="{{isFull}}" class="user flex flex-alignItems"><view class="userBox"><image src="/static/img/defaultUserHead.png" class="head"></image><image src="/static/img/follow@2x.png" bindtap="followBtn" class="followBtn"></image><image src="/static/img/Collection@2x.png" bindtap="collectionBtn" class="CollectionBtn"></image><text class="collectionNum">{{true ? '收藏' : filter.filter.million(11110400)}}</text><image src="/static/img/share@2x.png" class="shareBtn"></image><button  open-type="share">1</button><text class="shareNum">{{true ? '转发' : filter.filter.million(11110400)}}</text><image bindtap="thumbsUpBtn" src="/static/img/thumbsUp@2x.png" class="thumbsUp"></image><text class="thumbsUpNum">{{true ? '点赞' : filter.filter.million(11110400)}}</text></view></view><image hidden="{{isFull}}" src="/static/img/fullScreen@2x.png" bindtap="fullBtn" class="fullScreenBtn"></image><!-- 话题 描述 --><view hidden="{{isFull}}" class="courseVideoInfo"><view class="courseVideoInfoTop"><view class="businessName">@ 费恩莱斯 </view><view class="courseTitile">费恩莱斯高级全能私人健身教练 认证课程</view></view><view class="courseVideoInfoBottom"><view class="courseIntroduction">大幅加强腰腹核心力量和肌耐力,雕塑般的腹 肌不是梦,从此告别大幅加强腰腹核心力量和肌耐力,雕塑般的腹 肌不是梦,从此告别腹愁者…</view><view class="lookMoreBtn">查看更多</view></view></view></view>
</view><view style="padding-top: {{paddingTop}}px;"><view class='content-wrapper' wx:if='{{currentTab === 1}}'><selectedCourse/></view><view class='content-wrapper' wx:if='{{currentTab === 2}}'><myCourseRack/></view>
</view>

js

//index.js
//获取应用实例
//获取应用实例
import {list1,list2
} from './mock.js'const app = getApp()
let videoContext = null; //video实例
let time = nullPage({properties: {phone: { // 属性名type: Number, // 类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型)value: '' // 属性初始值(可选),如果未指定则会根据类型选择一个}},data: {currentTab: 0,code: '',paddingTop: 0,paddingBottom: 0,// -------videoId: 1, // 视频Idcurrent: 0, // 当前swiper所在的位置videoList: [], // 视频列表videoParam: {}, // 当前播放视频playMark: 2, // 播放开关 1是暂停 2是播放oneItemParam: {}, // 第一个itemtwoItemParam: {}, // 第二个itemthreeItemParam: {}, // 第一个itemfullScreen: false,fullScreenId: 'myVideo0',isFull: false,height1: 0,height: 0,},onLoad: function() {// 拿到当前视频的实例this.videoContext0 = wx.createVideoContext('myVideo0')/* 初始化页面视频id 及 视频下标 */this.setData({videoId: e.videoId || 1,videoList: list1})let videoIndex = this.data.videoList.findIndex(v => v.id == this.data.videoId)console.log(videoIndex)let current = videoIndex % 3;/* 拿到对应视频的数据 */this.getVideoParam(videoIndex);if (current === 0) {this.setData({oneItemParam: list1[videoIndex],})} else if (current === 1) {this.setData({twoItemParam: list1[videoIndex],})} else if (current === 2) {this.setData({threeItemParam: list1[videoIndex],})}this.tabItem(current, videoIndex); // 匹配对应数据this.play(videoIndex); /* 开始播放视频 */// ------------------------------------------------------------------------this.getPaddingTopFn();if (app.globalData.userInfo) {this.setData({userInfo: app.globalData.userInfo,hasUserInfo: true})} else if (this.data.canIUse) {// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回// 所以此处加入 callback 以防止这种情况app.userInfoReadyCallback = res => {this.setData({userInfo: res.userInfo,hasUserInfo: true})}} else {// 在没有 open-type=getUserInfo 版本的兼容处理wx.getUserInfo({success: res => {app.globalData.userInfo = res.userInfothis.setData({userInfo: res.userInfo,hasUserInfo: true})}})}},getUserInfo: function(e) {console.log(e)app.globalData.userInfo = e.detail.userInfothis.setData({userInfo: e.detail.userInfo,hasUserInfo: true})},switchTab(e) {console.log(e)let tab = e.currentTarget.idif (tab === 'popularRecommendation') {this.setData({currentTab: 0})} else if (tab === 'selectedCourse') {this.setData({currentTab: 1})} else if (tab === 'myCourseRack') {this.setData({currentTab: 2})}},onGetCode: function(e) {this.setData({code: e.detail.val})},getPaddingTopFn() {let that = this;wx.createSelectorQuery().selectAll('.container').boundingClientRect(function(rects) {that.setData({paddingTop: rects[0].height,paddingBottom: app.globalData.systemInfo.statusBarHeight})}).exec();},// ----------------------------------------------------------changeCurrent(e) {if (e.detail.current == 0) {this.setData({fullScreenId: 'myVideo0'})} else if (e.detail.current == 1) {this.setData({fullScreenId: 'myVideo1'})} else if (e.detail.current == 2) {this.setData({fullScreenId: 'myVideo2'})}// 当前视频的数据列表let videoList = this.data.videoList;// 当前视图视频idlet id = e.detail.currentItemId;/* 根据当前视图视频id拿到对应的视频列表下标 */let videoIndex = videoList.findIndex(v => v.id == id)/* 滑动到倒数第二个视频 加载视频列表 */if (videoIndex == (videoList.length - 2)) {let newList = [...this.data.videoList, ...list2]this.setData({videoList: newList})}},/***  current 变化时 修改视频容器对应的数据*/changeItem(e) {console.log(e)// 当前item的位置let current = this.data.current;// swiper滑到的位置let swiperIndex = e.detail.current;// 如果没有切换就不执行其他操作if (current == swiperIndex) return;// 当前视频的数据列表let videoList = this.data.videoList;// 当前视图视频idlet id = e.detail.currentItemId;/* 根据当前视图视频id拿到对应的视频列表下标 */let videoIndex = videoList.findIndex(v => v.id == id);/* 拿到对应视频的数据 */this.getVideoParam(videoIndex);// 匹配对应数据this.tabItem(swiperIndex, videoIndex);/* 销毁视频实例 */this.stop();/* 开始播放视频 */this.play(swiperIndex)},// 根据swiperIndex videoIndex匹配对应数据tabItem(swiperIndex, videoIndex) {// 当前视频的数据列表let videoList = JSON.parse(JSON.stringify(this.data.videoList))let next = 0let first = 0/* 上一个 */if (videoIndex == 0) {first = videoList.length - 1} else {first = videoIndex - 1}/* 下一个 */if (videoIndex == videoList.length - 1) {next = 0} else {next = videoIndex + 1}switch (swiperIndex) {case 0:this.setData({twoItemParam: videoList[next],threeItemParam: videoList[first]})break;case 1:this.setData({oneItemParam: videoList[first],threeItemParam: videoList[next]})break;case 2:this.setData({oneItemParam: videoList[next],twoItemParam: videoList[first],})break;default:}this.setData({current: swiperIndex})},// 拿到当前视图的视频数据getVideoParam(videoIndex) {// 当前视频的数据列表let videoList = JSON.parse(JSON.stringify(this.data.videoList))this.setData({videoParam: videoList[videoIndex]})},// 播放play(swiperIndex) {let that = this;let index = parseInt(swiperIndex)switch (index) {case 0:that.videoContext0 && that.videoContext0.play()break;case 1:that.videoContext1 && that.videoContext1.play()break;case 2:that.videoContext2 && that.videoContext2.play()break;default:}},// 销毁视频 注意 必须在切换之前销毁stop() {this.videoContext0 && this.videoContext0.pause()this.videoContext1 && this.videoContext1.pause()this.videoContext2 && this.videoContext2.pause()},// 开始播放 eventPlay(e) {this.setData({playMark: 2})},// 点击视频tabVideo(e) {return;console.log(e)let swiperIndex = this.data.currentlet playMark = this.data.playMarkif (playMark == 2) { // 播放this.stop()this.setData({playMark: 1})} else {this.play(swiperIndex)this.setData({playMark: 2})}},// 关注followBtn() {},// 收藏collectionBtn() {},// 点赞thumbsUpBtn() {// 深拷贝let videoParam = JSON.parse(JSON.stringify(this.data.videoParam))this.setData({['videoParam.like']: videoParam.like == 1 ? 0 : 1,['videoParam.likeCount']: videoParam.like == 1 ? videoParam.likeCount - 1 : videoParam.likeCount + 1})},/**视屏进入、退出全屏 */fullBtn(e) {this.setData({isFull: true})var videoContext = wx.createVideoContext(this.data.fullScreenId, this);videoContext.requestFullScreen();this.setData({fullScreen: true})},// 监听进入全屏fullScreen(e) {if (e.detail.fullScreen) {this.setData({isFull: true})} else {this.setData({isFull: false})}},// 视频播放时长timeupdate(e) {// console.log(e)},// 视频缓冲videoWaiting(e) {console.log(e)}
})
/**index.wxss**/.container {position: fixed;top: 0;left: 0;z-index: 20;display: flex;flex-direction: column;width: 100%;/* height: 100%; */box-sizing: border-box;margin: 0;padding: 0;background: #fafafa;
}.tab-wrapper {display: flex;flex-direction: row;align-items: center;width: 100%;height: 80rpx;background:linear-gradient(270deg,rgba(254,115,88,1) 0%,rgba(235,70,84,1) 100%);
}.tab-left, .tab-center, .tab-right {display: flex;align-items: center;justify-content: center;flex: 1;font-size: 28rpx;color: rgb(255, 255, 255);text-align: center;height: 100%;}.tab-active {position: relative;
}.tab-active .bobr {display: inline-block;position: absolute;bottom: 2rpx;left: 50%;transform: translate(-50%, -50%);height: 4px;width: 24px;background-color: #ffffff;border-radius:4px;
}
page {width: 100%;height: 100%;
}
.content-wrapper {width: 100%;height: 100%;
}.box {position: fixed;left: 0;top: 0;width: 100%;height: 100%;box-sizing: border-box;
}/* --------------------------------------------------------------- */
/* ---------------------------------------------------------------- */
/* ---------------------------------------------------------------- */
/* pages/index/popularRecommendation/popularRecommendation  */swiper {width: 100%;height: 100%;background: #000;
}swiper video {width: 100%;height: 100%;display: block;
}/**index.wxss**/.video-box {width: 100%;height: 100%;transition: all 0.4s cubic-bezier(1, 1, 0, 0.42);transform: translate(0%, 0%);position: relative;
}/* --------- :start ---------- */.user {position: absolute;right: 30rpx;top: 472rpx;
}.user .userBox {position: relative;display: flex;flex-direction: column;align-items: center;font-size: 26rpx;color: #fff;
}.user .userBox .shareBtn {margin: 0;padding: 0;
}
.user .userBox button {position: absolute;bottom: 95px;background: transparent;border: none;/* background: hsl(350, 100%, 88%, 0.1); */color: transparent;opacity: 0.1;/* margin: 0;padding: 0; */
}.user .userBox .head {width: 72rpx;height: 72rpx;border-radius: 50%;
}.user .userBox .followBtn {margin-top: -17rpx;width: 34rpx;height: 34rpx;
}.user .userBox .CollectionBtn {width: 66rpx;height: 60rpx;margin-top: 54rpx;
}.user .userBox .collectionNum {margin-top: 20rpx;
}.user .userBox .shareBtn {width: 59rpx;height: 48rpx;margin-top: 52rpx;
}.user .userBox .shareNum {margin-top: 20rpx;
}.user .userBox .thumbsUp {width: 72rpx;height: 72rpx;margin-top: 40rpx;
}.user .userBox .thumbsUpNum {margin-top: 26rpx;
}/* --------- :end ---------- */.fullScreenBtn {position: absolute;left: 20rpx;top: 50%;/* transform: translate(0, -50%); */width: 58rpx;height: 58rpx;
}/* ----------------------- */.courseVideoInfo {position: absolute;color: #fff;width: 100%;/* height: 160rpx; */bottom: 100rpx;left: 0;font-size: 26rpx;z-index: 13;padding-left: 30rpx;padding-right: 30rpx;box-sizing: border-box;
}.courseVideoInfo .courseVideoInfoTop {display: flex;flex-direction: column;width: 504rpx;
}.courseVideoInfo .courseVideoInfoTop .businessName {font-size: 30rpx;
}.courseVideoInfo .courseVideoInfoTop .courseTitile {font-size: 34rpx;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;margin: 4rpx 0;
}.courseVideoInfo .courseVideoInfoBottom {display: flex;justify-content: space-between;align-items: center;width: 100%;padding-top: 11rpx;margin-top: 11rpx;
}.courseVideoInfo .courseVideoInfoBottom .courseIntroduction {width: 504rpx;font-size: 28rpx;text-overflow: -o-ellipsis-lastline;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;color: #b3b3b3;border-top: 1rpx solid #ccc;
}.courseVideoInfo .courseVideoInfoBottom .lookMoreBtn {display: flex;align-items: center;justify-content: center;width: 152rpx;height: 64rpx;color: #fff;background: rgba(255, 255, 255, 0.19);border-radius: 8rpx;}

就是这个样子 特别简单

微信小程序像抖音一样上滑视频相关推荐

  1. 17_微信小程序之抖音微视无限滑动视频列表自定义组件编写

    微信小程序之抖音微视无限滑动视频列表自定义组件编写 一.先上效果图 看到上面,你可能首先会想到,使用swiper然后将swiper的circular设置为true,那么,想象一下,假如视频很多的情况下 ...

  2. 从微信小程序到抖音小程序:转换指南

    抖音小程序是一种新兴的小程序平台,与微信小程序类似,都是基于小程序框架的开发,不过两者的开发环境和API有所不同.如果你已经开发了一款微信小程序,想要将其转换为抖音小程序,可以按照以下步骤进行: 1. ...

  3. 微信小程序实现抖音切换视频效果

    微信小程序实现抖音切换视频效果 思路: 使用微信小程序的swiper组件,使其竖向滑动 分页加载,每次加载3个视频,当滑动到只剩1个视频时加载下一页 问题: 加载多个视频时,多个视频会同时播放 效果图 ...

  4. 微信小程序仿抖音视频

    微信小程序仿抖音视频 使用轮播图实现视频滑动效果. wxml 部分 <view class="video-contain"><!-- 自定义头部 -->&l ...

  5. 微信小程序和抖音小程序的区别?如何选择?

    随着5G的到来,电商向多元化新型电商的转型也已成时代必然.2020年,当我们的Vlog.自媒体行业风生水起时,依托第三方的电商平台销售模式已经逐渐难以满足新型电商的应用场景,例如微信的私域流量.抖音对 ...

  6. 微信小程序与抖音小程序的区别

    1. 前缀区别:tt 与 wx 2. 调用前一个页面的方法时 微信小程序 let pages = getCurrentPages(); let prePage = pages[pages.length ...

  7. 微信小程序仿抖音上下滑动整屏切换视频

    微信小程序仿抖音上下滑动整屏切换视频 使用官网上面的扩展组件 官方使用的方式: 可结合自己业务修改: 使用官网上面的扩展组件 https://developers.weixin.qq.com/mini ...

  8. 微信小程序云开发如何实现上传视频 以及 图片

    微信小程序云开发如何实现上传视频 以及 图片 最基础的数据库增删改查,上传到云存储即可实现,附源码 wxml文件 <button bindtap="upload">上传 ...

  9. 微信小程序仿抖音项目实战说明

    功能说明 短视频管理后台: 1.bgm管理(增删改查.文件上传.点击播放) 2.用户列表 3.举报管理 4.用户视频管理 因为微信端Api接口管理后台是围绕微信端功能做的,所以这里我就将功能列举到一起 ...

最新文章

  1. nvJPEG Codec库
  2. CMOS及CCD感光sensor的主要技术参数解析
  3. “治沙女杰”殷玉珍:和沙漠较量的女人
  4. 零基础学UI设计,哪些知识需要重点学习?
  5. 【Python】Matplotlib画布图案保存为PDF文件
  6. 企业级市场,正成为IT老兵创业的最佳选择
  7. 比国内贵3000元!小米11 Ultra将于5月11日登陆欧洲市场
  8. mtk协议与qc协议_通用充电器快充协议QC2.0,QC3.0,MTK PE,PE+,充电识别
  9. 《微微一笑很倾城》中肖奈大神说的平方根倒数速算法是什么鬼?三十分钟理解!
  10. ARM汇编 BIC和ORR指令
  11. 苹果付费app共享公众号_【苹果iOS付费游戏应用帐号分享】新增一款25元iOS游戏应用共享帐号...
  12. 给计科专业的学弟学妹们的一封信
  13. Java URI 和 android Uri 中的 getSchemeSpecificPart() 方法
  14. linux下关于笔记本的显卡驱动安装archlinux
  15. MySQL主从状态检查
  16. 专访Alasend万能登陆器创作团队
  17. java生成ca证书_生成CA根证书的脚本
  18. java方面的文献综述怎么写_java毕业论文参考文献范文[工作范文]
  19. JVM内存监控及调优分析
  20. THOMAS 776 SEK 203 INOX 高速脱水机

热门文章

  1. python新手入门项目推荐_Python新手入门70个练手项目
  2. swoole消息转发服务器,nginx如何转发swoole
  3. super关键字的作用
  4. 为新能源汽车的发展保驾护航 ——专业的新能源汽车电性能测试
  5. 深度学习中Fine-tune是什么?
  6. HTML中P标签自动换行,浏览器补全P标签时的问题
  7. vue实现动态添加水印效果
  8. npm与包格式化时间的两种方式
  9. excel操作 - xlwings模块
  10. 比较详细的微信小程序开发流程,一步一步跟着做就好了。