网易云音乐开发--search模块基本功能实现(除历史记录模块)

这篇具有很好参考价值的文章主要介绍了网易云音乐开发--search模块基本功能实现(除历史记录模块)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

search头部搭建

网易云音乐开发--search模块基本功能实现(除历史记录模块)老样子搭建一个search搜索页面

网易云音乐开发--search模块基本功能实现(除历史记录模块) 还有一块没有实现,那就是让输入框默认的文本变换颜色

网易云音乐开发--search模块基本功能实现(除历史记录模块) 微信小程序: input输入框placeholder样式的修改_微信小程序placeholder样式_酷伊奥的博客-CSDN博客

 百度搜索了一下,找到了这个大佬的解决方案。很nice

网易云音乐开发--search模块基本功能实现(除历史记录模块)

<view class="searchContainer">
    <view class="header">
        <view class="searchInput">
            <text class="iconfont icon-search1 searchIcon"></text>
            <input type="text" placeholder="搜索歌曲" placeholder-class="placeholder-style"/>
        </view>
        <text class="cancel">取消</text>
    </view>
</view>
/* pages/search/search.wxss */
.header{
    display: flex;
    height: 60rpx;
    line-height: 60rpx;
    padding: 10rpx;
}
.searchInput{
    position: relative;
    flex: 1;
    background: rgba(237, 237, 237, 0.3);
    border-radius: 30rpx;
}
.cancel{
    width: 100rpx;
    text-align: center;
}
.searchIcon{
    position: absolute;
    left: 15rpx;
}
.searchInput input{
    margin-left: 50rpx;
    height: 60rpx;
}
.placeholder-style{
    /* color: #d43c33; */
    font-size: 30rpx;
}

热搜榜静态搭建

网易云音乐开发--search模块基本功能实现(除历史记录模块)

.hotContainer .title{
    font-size: 28rpx;
    height: 80rpx;
    line-height: 80rpx;
    border-bottom: 1rpx solid #eee;
}
.hotList{
    display: flex;
    flex-wrap: wrap;
}
.hotItem{
    width: 50%;
    height: 80rpx;
    line-height: 80rpx;
    font-size: 26rpx;
}
.hotItem .order{
    margin: 0 10rpx;
}
<view class="hotContainer">
        <view class="title">热搜榜</view>
        <!-- 热搜列表 -->
        <view class="hotList">
            <view class="hotItem">
                <text class="order">1</text>
                <text >偏爱</text>
            </view>
            <view class="hotItem">
                <text class="order">1</text>
                <text >偏爱</text>
            </view>
            <view class="hotItem">
                <text class="order">1</text>
                <text >偏爱</text>
            </view>
            <view class="hotItem">
                <text class="order">1</text>
                <text >偏爱</text>
            </view>
            <view class="hotItem">
                <text class="order">1</text>
                <text >偏爱</text>
            </view>
            <view class="hotItem">
                <text class="order">1</text>
                <text >偏爱</text>
            </view>
            <view class="hotItem">
                <text class="order">1</text>
                <text >偏爱</text>
            </view>
            <view class="hotItem">
                <text class="order">1</text>
                <text >偏爱</text>
            </view>
            <view class="hotItem">
                <text class="order">1</text>
                <text >偏爱</text>
            </view>
            <view class="hotItem">
                <text class="order">1</text>
                <text >偏爱</text>
            </view>
            <view class="hotItem">
                <text class="order">1</text>
                <text >偏爱</text>
            </view>
            <view class="hotItem">
                <text class="order">1</text>
                <text >偏爱</text>
            </view>
            <view class="hotItem">
                <text class="order">1</text>
                <text >偏爱</text>
            </view>
            <view class="hotItem">
                <text class="order">1</text>
                <text >偏爱</text>
            </view>



        </view>
    </view>

热搜榜,placeholder数据动态展示

查看文档

网易云音乐开发--search模块基本功能实现(除历史记录模块)网易云音乐 NodeJS 版 API (binaryify.github.io) 

网易云音乐开发--search模块基本功能实现(除历史记录模块) 返回来的数据是这样的

书写返回搜索数据的方法

网易云音乐开发--search模块基本功能实现(除历史记录模块) 已经变成了动态数据

onLoad(options) {
        // 初始化数据
        this.getInfoData()
    },
    async getInfoData(){
        let placeholderData=await request('/search/default')
        this.setData({
            placeholderContent:placeholderData.data.showKeyword
        })
    },

 热搜榜动态数据

网易云音乐开发--search模块基本功能实现(除历史记录模块)

网易云音乐开发--search模块基本功能实现(除历史记录模块)

网易云音乐开发--search模块基本功能实现(除历史记录模块) 跟之前的方法一样

let hotListData=await request('/search/hot/detail')



hotList:hotListData.data

 然后在去添加icon

网易云音乐开发--search模块基本功能实现(除历史记录模块)

 <image class="iconImg" wx:if="{{item.iconUrl}}" src="{{item.iconUrl}}" mode=""/>

如果不添加wx:if会导致占空间

关键字模糊匹配搜索数据

这里要说到表达项的俩个数据

input-->实时监听       change-->使其焦点

首先,我们需要拿到表单项的数据,然后调用接口,拿数据

网易云音乐开发--search模块基本功能实现(除历史记录模块)

 网易云音乐开发--search模块基本功能实现(除历史记录模块)网易云音乐开发--search模块基本功能实现(除历史记录模块)

这样就能拿到表单项的内容,但是是一个对象。

这里有一个疑惑?为什么我们没有value={{searchList}}但是能动态的渲染出来 ?

网易云音乐开发--search模块基本功能实现(除历史记录模块) 因为这个bindinput事件默认返回的就是value的值

我们为了性能优化,使用节流

网易云音乐开发--search模块基本功能实现(除历史记录模块)

handleInputChange(event){
        this.setData({
            searchContent:event.detail.value.trim()
        })
        // 函数节流
        if(isSend){
            return
        }
        isSend=true
        this.getSearchList()
        setTimeout(()=>{
            // 发请求获取关键字模糊匹配数据
             isSend=false
        },300)
    },
    //获取搜索数据的功能函数
    async getSearchList(){
        let searchListData=await request('/search',{keywords:this.data.searchContent,limit:10})
            this.setData({
                searchList:searchListData.result.songs
            })
    },

搜索列表动态显示

网易云音乐开发--search模块基本功能实现(除历史记录模块)

网易云音乐开发--search模块基本功能实现(除历史记录模块)就是根据这一块,我们先搭一个界面,然后把返回回来的数据动态渲染到页面上,就可以了

网易云音乐开发--search模块基本功能实现(除历史记录模块) 样式书写完毕,但是又有一个bug

网易云音乐开发--search模块基本功能实现(除历史记录模块) 当我们删除掉这个字母的时候,是空串,然后向服务器发请求,会报错

网易云音乐开发--search模块基本功能实现(除历史记录模块) 我们如果输入的是一个空串,直接return出去就可以了

看这个页面还是很乱,搜索内容展示与热搜榜,应该是一种互斥的效果

网易云音乐开发--search模块基本功能实现(除历史记录模块) 我们通过这个wx:if来实现,如果数组有数据,那么就显示,否则不显示 文章来源地址https://www.toymoban.com/news/detail-456949.html

到了这里,关于网易云音乐开发--search模块基本功能实现(除历史记录模块)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [MAUI]模仿网易云音乐黑胶唱片的交互实现

    @ 目录 创建页面布局 创建手势控件 创建影子控件 唱盘拨动交互 唱盘和唱针动画 项目地址 用过网易云音乐App的同学应该都比较熟悉它播放界面。 这是一个良好的交互设计,留声机的界面隐喻准确地向人们传达产品概念和使用方法:当手指左右滑动时,便模拟了更换唱盘从而

    2023年04月25日
    浏览(23)
  • 网易音乐网站系统|前后端分离springboot+vue实现在线音乐网站

    作者主页:编程千纸鹤 作者简介:Java、前端、Python开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发、毕业设计开发、面试技术整理、最新技术分享 收藏点赞不迷路  关注作者有好处 文末获得源码 项目编号:BS-PT-104 网易音乐网站系统是一个在线的音乐网站

    2024年02月05日
    浏览(26)
  • 【微信小程序学习】网易云音乐歌曲详情页代码实现

    这里记录一下做网易云小程序的音乐播放详情页面的代码。 音乐播放界面的主要的重点有几个:   1、磁盘和摇杆的旋转效果,这里运用了css的动画属性   2、音乐播放和暂停,下一首/上一首等播放效果的实现   3、进度条的样式和控制   4、和上一页音乐推荐列表页通信,利

    2024年02月09日
    浏览(33)
  • 微信小程序网易云音乐设计与实现 毕业设计-附源码261620

    随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,微信小程序的网易云音乐系统被用户普遍使用,为方便用户能够可以随时进行微信小程序的网易云音乐系统的

    2024年02月05日
    浏览(28)
  • 尚硅谷微信小程序开发 仿网易云音乐App 小程序 后端接口服务器搭建

    目录 小程序学习 视频相关的教程文档与笔记分享 配套服务器 源码地址: 接口使用说明文档 接口列表 启动服务 测试服务启动OK网页  http://localhost:3000/test.html​编辑  Postman测试服务器接口 postman配置 服务ip地址全局变量 ​编辑选择全局变量 登录接口测试 1. 发送验证码  手

    2024年02月09日
    浏览(38)
  • ssm+微信小程序网易云音乐设计与实现毕业设计源码261620

    随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,微信小程序的网易云音乐系统被用户普遍使用,为方便用户能够可以随时进行微信小程序的网易云音乐系统的

    2023年04月17日
    浏览(31)
  • SSM+微信小程序网易云音乐设计与实现 毕业设计-附源码261620

      随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,微信小程序的网易云音乐系统被用户普遍使用,为方便用户能够可以随时进行微信小程序的网易云音乐系统

    2024年02月10日
    浏览(24)
  • uniapp实战仿写网易云音乐(三)—视频页面(scroll-view组件实现横线滑动,mescroll-uni实现视频列表,向下滑动刷新当前页面)

    接着上篇文章继续完成剩下的部分,本篇文章是完成第二个页面——视频页面的部分,视频还是没有做播放的效果,主要是做展示效果。下面附上两篇文章链接,没看过的同学可以回头看看: uniapp实战仿写网易云音乐(一)—底部工具栏以及首页轮播图swiper的实现 uniapp实战仿写

    2023年04月25日
    浏览(32)
  • Python爬虫网易云音乐,Tkinter制作音乐播放器

    目录 一、效果展示 二、环境 三、实现过程 四、源码 页面的美化以及功能还有待升级~ 先来说一下已有功能吧: 可以在搜索框中通过歌曲或歌手名称进行搜索,效果和在网易云官网搜索一样。 点击开始下载,就会将搜索结果的第一条歌曲下载到指定文件夹 下载完毕后,会遍

    2024年02月04日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包