摘要
逛淘宝的时候,发现淘宝搜索框中一直在垂直方向上轮播热搜提示词,觉得这是个不错的设计,除了能让空间更充分使用,也能让页面更有动感,最重要的是能够增加搜索框的使用频率。就在小程序中试着实现实现。
效果
体验
实现思路
思路比较简单,主要是两点,
1:input处于热搜提示词上层,用z-index实现
2:热搜词轮播用swiper实现,方向为vertical
3:在input聚焦时获取swiper当前值,设置为placeholder
4:将swiper隐藏
已封装成组件
组件代码:
wxss
<view class="swiper-view"> <swiper class="swiper_container" vertical="true" autoplay="true" circular="true" interval="2000"> <block wx:for="{{msgList}}"> <swiper-item> <view class="swiper_item">{{item.title}}</view> </swiper-item> </block> </swiper> </view>
wxss
.container { width: 100%; height: 80rpx; display: flex; flex-direction: row; justify-content: center; align-items: center; background: #ededed; } .search-container { width: 690rpx; height: 60rpx; display: flex; flex-direction: row; justify-content: flex-start; align-items: center; background: #fff; border-radius: 5rpx; } .swiper_container { margin-left: 15rpx; height: 60rpx; width: 100%; display: flex; flex-direction: row; justify-content: flex-start; align-items: center; position:absolute; z-index:1; } .swiper_item { height: 60rpx; font-size: 26rpx; color: #999; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: flex; flex-direction: row; justify-content: flex-start; align-items: center; }
js
Component({ /** * 组件的属性列表 */ properties: { msgList:{ type:JSON, value: [] } }, /** * 组件的初始数据 */ data: { placeholder:'', currentIndex:0, index:0, isFocus:false, msgList: [], content:'', confirmContent:'' }, ready(){ this.setData({ msgList:this.properties.msgList }) }, /** * 组件的方法列表 */ methods: { changeIndex(e){ this.setData({ index:e.detail.current }) }, focusInput(){ this.setData({ isFocus:true, placeholder:this.data.msgList[this.data.index].title }) }, blurInput(){ if (this.data.content == ""){ this.setData({ isFocus: false, currentIndex: this.data.index, placeholder: '' }) } }, confirm(e){ var confirmContent = '' if(e.detail.value==''){ confirmContent = this.data.placeholder }else{ confirmContent = e.detail.value } this.triggerEvent('search', {confirmContent}) }, inputContent(e){ this.setData({ content: e.detail.value }) } } })
json
{ "component": true, "usingComponents": {} }
页面代码
js
Page({ data: { msgList: [ { title: "朋友圈" }, { title: "文章" }, { title: "公共号" }, { title: "小程序" }, { title: "音乐" }, { title: "表情" }, { title: "订阅号" }] }, search(e){ wx.showToast({ icon:"none", title: "正在搜索"+e.detail.confirmContent, }) } })
wxss
<swiperSearch msgList="{{msgList}}" bind:search="search"></swiperSearch>
总结
以上所述是小编给大家介绍的微信小程序仿淘宝热搜词在搜索框中轮播功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
本文向大家介绍JS仿淘宝搜索框用户输入事件的实现,包括了JS仿淘宝搜索框用户输入事件的实现的使用技巧和注意事项,需要的朋友参考一下 淘宝是我们经常用的一个网上购物平台,打开淘宝网首页,找到淘宝首页的搜索框,如下如所示: 大家可以看到,当页面一打开,搜索框中就可以看到灰色字体“少女高跟鞋”,还有闪烁的光标。当用户点击输入的时候,灰色字消失。当用户清空文本框的所有内容的时候,灰色字自动恢复。 接下来,
本文向大家介绍如何对淘宝搜索框进行测试相关面试题,主要包含被问及如何对淘宝搜索框进行测试时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 一, 功能测试 输入关键字,查看: 返回结果是否准确,返回的文本长度需限制 1.1输入可查到结果的正常关键字、词、语句,检索到的内容、链接正确性; 1.2输入不可查到结果的关键字、词、语句; 1.3输入一些特殊的内容,如空、特殊符、标点符、极限值等,可引入
本文向大家介绍vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示),包括了vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)的使用技巧和注意事项,需要的朋友参考一下 完整效果演示 首先完成这个伪搜索框 src/components/search/index.vue (通用搜索框组件) src/assets/js/util.js 节流函数(防止请求数据时频率过快消耗性能)
本文向大家介绍微信小程序搜索组件wxSearch实例详解,包括了微信小程序搜索组件wxSearch实例详解的使用技巧和注意事项,需要的朋友参考一下 wxSearch优雅的微信小程序搜索框 一、功能 支持自定义热门key 支持搜索历史 支持搜索建议 支持搜索历史(记录)缓存 二、使用 1、将wxSearch文件夹整个拷贝到根目录下 2、引入 3、使用3.1 wxml文件这里有两种模板:一种为wxSe
本文向大家介绍微信小程序3D轮播实现代码,包括了微信小程序3D轮播实现代码的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了微信小程序3D轮播实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 效果如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍微信小程序实现轮播图效果,包括了微信小程序实现轮播图效果的使用技巧和注意事项,需要的朋友参考一下 微信小程序实现轮播图,和网站,APP的效果差不多,代码少,效率高。 先来看看效果图: 主要用swiper + swiper-item来实现 一个简单的小案例,轮播图,代码简洁,功能强大。 源码点击下载 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
1、面试官介绍组里干啥的 2、 自我介绍 3、预计实习时间 4、new 和 malloc 区别 5、malloc可以重载吗 6、智能指针 7、**智能指针和裸指针性能区别** 8、智能指针和裸指针访问速度 9、**智能指针内部怎么实现的访问控制** 10、linux排查性能问题 11、linux 排查内存问题 12、介绍一下你的项目 13、epoll如何选择哪个线程处理业务逻辑 14、如何处理惊群
本文向大家介绍微信小程序轮播图swiper代码详解,包括了微信小程序轮播图swiper代码详解的使用技巧和注意事项,需要的朋友参考一下 微信小程序自定义swiper 滑块视图容器。其中只可放置swiper-item组件,否则会导致未定义的行为。 先在index.wxml中写 style=“background:{ {item}}” 报错不要管,不影响页面布局 再在index.js中写 最后在ind