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


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 相关文章推荐
javascript 动态添加表格行
Jun 22 Javascript
javascript 写类方式之五
Jul 05 Javascript
jQuery 幻灯片插件(带缩略图功能)
Jan 24 Javascript
超链接的禁用属性Disabled使用示例
Jul 31 Javascript
js实现C#的StringBuilder效果完整实例
Dec 22 Javascript
浅谈Angularjs link和compile的使用区别
Oct 21 Javascript
原生js封装自定义滚动条
Mar 24 Javascript
Vue form 表单提交+ajax异步请求+分页效果
Apr 22 Javascript
vue.js实例todoList项目
Jul 07 Javascript
JavaScript计算正方形面积
Nov 26 Javascript
Vue简单实现原理详解
May 07 Javascript
uniapp微信小程序实现一个页面多个倒计时
Nov 01 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
将数字格式的计算结果转为汉字格式
2006/10/09 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
点图片上一页下一页翻页效果
2008/07/09 Javascript
FusionCharts图表显示双Y轴双(多)曲线
2012/11/22 Javascript
JS中Iframe之间传值的方法
2013/03/11 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
jQuery的框架介绍
2016/05/11 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
js制作网站首页图片轮播特效代码
2016/08/30 Javascript
常用的js方法合集
2017/03/10 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
详解vue服务端渲染浏览器端缓存(keep-alive)
2018/10/12 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
Javascript文本框脚本实现方法解析
2020/10/30 Javascript
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
selenium+python实现自动登录脚本
2018/04/22 Python
django ajax json的实例代码
2018/05/29 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
Python截图并保存的具体实例
2021/01/14 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
小加工厂管理制度
2014/01/21 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
单方离婚协议书范本(2014版)
2014/09/30 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
四年级数学上册教学计划
2015/01/20 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
拙作再改《我的收音机情缘》
2022/04/05 无线电