这是基于之前发布 Google Play 的 iPixel Wallpaper APP 修改而来,本就不是为了运营,只是录做视频与文章使用,有兴趣的可以看看(😈),当(🔘)前还有 Web 版本的,目前都在同步更新中。 本(🎇)文先写写首页的内容吧,其他页面后续更新。 最(👪)近滚回原生党,除非巨(🧔)型项目,否则都会使用原生(🌯),包括但不限于小程序。 标签列表 效果: 相关代(💛)码: html 这里应该使用 scroll-view,然后设置 x 方(😌)向(🚓)滚动。因为当时写顺手了,就弄了个 view,然后手动(➖) css 设置(🈹) x 滚动,据说性能是差一点,但(🖋)是既然代码这样,就先这样放出来,当个反面教材。 然后,wx:for 与 wx:key 是一对冤家(🙀),基本都是一(🌰)起出现,for 是循环好理解,key 是避(😖)免 for 生成的节点不唯一导致的一些(⛓) bug,这里不细说,简单记下就是一起(🃏)出现即可。对了,key 要唯一(🆒),所以一般来说,index 是最好的小伙伴。 bindtap 就是 click 事件的“别名”了,但道理上是不一样的,这样记问题不大。 data-index 就是绑定的数据,可以在 js 里面类似 DOM data 属性一样获取到。 “{{x}}” 就是获取 js 里面声明的 data 绑定数据了,这个 data 数据是可以自动绑定的。 其他就是跟 HTML 区别不大了,除了标签名之外。 css css 没什么说得,不说样式(🏙)丑就行。 js 前两行是(❣)获取小程序实例,以及第三方相关,这里第(🚳)三方就是之前项目提供数据源的地(🈴)方,不打广告,理解成后台获取(🚸)资源就行,具体获取方式在 js 里面,也(⚾)不要深究。 onReady 是当前页(⏹)加载前,此时(👱)获取数据,因为是异步,所以应该不会出现渲染失败。注意是应该,个人建议还是放(🛄)在 onLoad 里面, 我这里因为(🍺)是第三(🥈)方官网的 Demo 拷贝,就没有去改它,等下有自己写的,我都是放在 onLoad。 React 小(✳)伙伴应(🍰)该比较熟悉,这里就是小程序数据绑(💪)定修改方式,这种方式修改可以使得 wxml(HTML)里面“{{}}”绑定的视图同步更新。 没错,this.data.x = y 可以修改但是不能同步更新(♎),明白了? 注意:与 React 不同,这玩意是同步的(🕜),不是 React 那种异步,所以不存在回调处理。 tapButton 就是绑定在标签上的点击事件,与获取图片列表有关。 那么,到这里,整个标签列表就完成了。 图片列表 效果: 相关代码: html wx:for-item 指定循环遍历使用的 item 名,配套的有 wx:for-index 指定循环遍历使用的 index 名。是的,默认不(📡)写就是 item、index。这里为了语义清(📏)楚点,就设置成 url 了。 lazy-load 说是可以懒加载,不知道是不是我图量少,目前没有体验出来。还是说我用错了? 至于 mode="aspectFit 就是个人喜欢小程序的一点了,图片缩放处(🧘)理已经被框架处理好,不要自己再去配置 width、height、自动缩放等等了。具体可以看官方说明:小程(🆑)序组件——image scroll-view 就不用说了,也是框架提供好的滚动视图,设置下具(🎠)体宽高(🥋),在配(😛)置想方向就可以了:scroll-y 或 scroll-x。 css 由于我们是竖直方向滚动(🕘),所以设置的 #main 的高。原来是想像 APP 一样实现(💮)瀑布流,但是发现 Grid 小程序(🔦)好像不支持?就只能退而求其次的选择比较 low 的常规两列布局了。具体 Grid 的瀑布流(🅾),效果如下:(💙) 小程序的,哎…… 中间 img-container,一样是夹层,方便(🐾)以后拓展。 js 注意,默认 data 里面有(💗)一个标签(🚮),就是(🐬)为了防(💍)止第一次进来没东西。 这个就相对简单不说那么具体,提一下需要注意的优化点: 小结 欢迎关注,如有需要 Web,App,小程序,请留言联系。<view id="nav"> <button class="item" bindtap='tapButton' wx:for="{{classes}}" wx:key="{{index}}" data-index="{{index}}"> {{item}} </button></view>
#nav { white-space: nowrap; overflow-x: scroll; height: 64rpx;}#nav .item { display: inline; min-width: 120rpx; line-height: 64rpx; margin: 8rpx 0; color: grey;}
//index.js//获取应用实例const app = getApp()const AV = app.globalData.AVPage({ data: { classes: ['Asuna'], images: [], }, // 获取标签列表 getClasses() { new AV.Query('CLASSES') .find() .then(res => { const classes = Array.from(res, item => item.get('className')) this.setData({ classes: classes }) }) .catch(console.error) }, // 点击标签 tapButton(e) { const className = this.data.classes[e.target.dataset.index] this.getImages(className) }, onReady() { this.getClasses() },})
this.setData({ classes: classes})
<scroll-view id='main' scroll-y> <view class='img-container' wx:for="{{images}}" wx:key="index" wx:for-item="url" data-index="{{index}}" bindtap='tapImage'> <image src="{{url}}" lazy-load mode="aspectFit"></image> </view></scroll-view>
#main { height: calc(100% - 64rpx);}.img-container { display: inline-block; width: 47%; height: 400rpx;}.img-container:nth-child(2n + 1) { margin-left: 2%; margin-right: 1%;}.img-container:nth-child(2n) { margin-left: 1%; margin-right: 2%}image { width: 100%; height: 100%;}
//index.js//获取应用实例const app = getApp()const AV = app.globalData.AVPage({ data: { classes: ['Asuna'], images: [], }, // 获取标签下图片列表 getImages(className) { this.setData({ images: [], title: className }) wx.showLoading({ title: "获(🏂)取列表数据中……" }) new AV.Query(className) .find() .then(res => { wx.hideLoading() this.setData({ images: Array.from(res, item => item.get('url')) }) }) .catch(console.error) }, onLoad() { this.getImages(this.data.classes[0]) },})
1.请问哪个网站可以免费在线观看动漫《亚洲大乳无码专区》?
优酷视频网友:http://www.ahxhhy.com/video/390473641.html
2.《亚洲大乳无码专区》是什么时候上映/什么时候开播的?
腾讯视频网友:上映时间为2022年,详细日期可以去百度百科查一查。
3.《亚洲大乳无码专区》是哪些演员主演的?
爱奇艺网友:亚洲大乳无码专区演员表有,导演是。
4.动漫《亚洲大乳无码专区》一共多少集?
电影吧网友:目前已更新到全集已完结
5.手机免费在线点播《亚洲大乳无码专区》有哪些网站?
手机电影网网友:美剧网、腾讯视频、电影网
6.《亚洲大乳无码专区》评价怎么样?
百度最佳答案:《亚洲大乳无码专区》口碑不错,演员阵容强大演技炸裂,并且演员的演技一直在线,全程无尿点。你也可以登录百度问答获得更多评价。
Copyright © 2008-2024