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


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 相关文章推荐
JS 页面自动加载函数(兼容多浏览器)
May 18 Javascript
Eclipse引入jquery报错如何解决
Dec 01 Javascript
JavaScript实现99乘法表及隔行变色实例代码
Feb 24 Javascript
JS使用单链表统计英语单词出现次数
Jun 16 Javascript
JavaScript实现两个select下拉框选项左移右移
Mar 09 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
May 18 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
Nov 24 Javascript
bootstrap下拉框动态赋值方法
Aug 10 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
Aug 20 Javascript
浅谈Vue数据响应
Nov 05 Javascript
vue-router命名路由和编程式路由传参讲解
Jan 19 Javascript
layui table 表格模板按钮的实例代码
Sep 21 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
PHP统计目录下的文件总数及代码行数(去除注释及空行)
2011/01/17 PHP
简单实用的.net DataTable导出Execl
2013/10/28 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
php中session定期自动清理的方法
2015/11/12 PHP
javascript call和apply方法
2008/11/24 Javascript
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
Javascript 中的类和闭包
2010/01/08 Javascript
jquery.Jwin.js 基于jquery的弹出层插件代码
2012/05/23 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
2014/08/16 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
2017/11/21 Javascript
使用Vue.js开发微信小程序开源框架mpvue解析
2018/03/20 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
JavaScript实现异步图像上传功能
2018/07/12 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
vue实现购物车选择功能
2020/01/10 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
JavaScript如何实现图片处理与合成
2020/05/29 Javascript
Python比较2个时间大小的实现方法
2018/04/10 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
Pytorch十九种损失函数的使用详解
2020/04/29 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
CSS3中Transform动画属性用法详解
2016/07/04 HTML / CSS
解决H5的a标签的download属性下载service上的文件出现跨域问题
2019/07/16 HTML / CSS
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
Otel.com:折扣酒店预订
2017/08/24 全球购物
神路信息Java面试题目
2013/03/31 面试题
外科实习自我鉴定
2013/10/06 职场文书
优秀高中生事迹材料
2014/02/11 职场文书
党员廉洁自律承诺书
2014/05/26 职场文书
营销经理工作检讨书
2014/11/03 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers