微信小程序仿淘宝热搜词在搜索框中轮播功能


Posted in Javascript onJanuary 21, 2020

摘要

逛淘宝的时候,发现淘宝搜索框中一直在垂直方向上轮播热搜提示词,觉得这是个不错的设计,除了能让空间更充分使用,也能让页面更有动感,最重要的是能够增加搜索框的使用频率。就在小程序中试着实现实现。

效果

微信小程序仿淘宝热搜词在搜索框中轮播功能

体验

微信小程序仿淘宝热搜词在搜索框中轮播功能

实现思路

思路比较简单,主要是两点,

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>

总结

以上所述是小编给大家介绍的微信小程序仿淘宝热搜词在搜索框中轮播功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
DHTML Slide Show script图片轮换
Mar 03 Javascript
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
Apr 01 Javascript
jquery选择器-根据多个属性选择示例代码
Oct 21 Javascript
js检测网络是否具体连接功能的代码
May 23 Javascript
jquery操作HTML5 的data-*的用法实例分享
Aug 17 Javascript
jQuery实现输入框下拉列表树插件特效代码分享
Aug 27 Javascript
javascript事件冒泡简单示例
Jun 20 Javascript
微信小程序 slider的简单实例
Apr 19 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
Apr 27 Javascript
微信小程序签到功能
Oct 31 Javascript
JS中如何轻松遍历对象属性的方式总结
Aug 06 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
Sep 04 Javascript
微信小程序swiper实现文字纵向轮播提示效果
Jan 21 #Javascript
jquery将信息遍历到界面上实例代码
Jan 21 #jQuery
微信浏览器下拉黑边解决方案 wScroollFix
Jan 21 #Javascript
修改vue源码实现动态路由缓存的方法
Jan 21 #Javascript
微信小程序图片自适应实现解析
Jan 21 #Javascript
微信小程序button标签open-type属性原理解析
Jan 21 #Javascript
Vue实现兄弟组件间的联动效果
Jan 21 #Javascript
You might like
十大催泪虐心动漫电影,有几部你还没看
2020/03/04 日漫
探讨GDFONTPATH能否被winxp下的php支持
2013/06/21 PHP
php常用ODBC函数集(详细)
2013/06/24 PHP
php mysql 封装类实例代码
2016/09/18 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
document.designMode的功能与使用方法介绍
2007/11/22 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
关于div自适应高度/左右高度自适应一致的js代码
2013/03/22 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
js实现顶部可折叠的菜单工具栏效果实例
2015/05/09 Javascript
vue过渡和animate.css结合使用详解
2017/06/14 Javascript
AngularJS实现表格的增删改查(仅限前端)
2017/07/04 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
JS内部事件机制之单线程原理
2018/07/02 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
Python爬取网站图片并保存的实现示例
2021/02/26 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
英国最大最好的无人机商店:Drones Direct
2019/07/12 全球购物
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
一道SQL面试题
2012/12/31 面试题
思想汇报范文
2013/11/04 职场文书
应届生人事助理求职信
2013/11/09 职场文书
总经理驾驶员岗位职责
2013/12/04 职场文书
应届大专生自荐书
2014/06/16 职场文书
销售顾问工作计划书
2014/08/15 职场文书
2015年美容师个人工作总结
2015/10/14 职场文书