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


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 相关文章推荐
innerHTML,outerHTML,innerTEXT三者之间的区别
Jan 28 Javascript
JavaScript库 开发规则
Jan 31 Javascript
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
Apr 14 Javascript
JQuery开发的数独游戏代码
Oct 29 Javascript
js 弹出菜单/窗口效果
Oct 30 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
Mar 10 Javascript
JavaScript SetInterval与setTimeout使用方法详解
Nov 15 Javascript
jquery自动填充勾选框即把勾选框打上true
Mar 24 Javascript
第一次接触神奇的Bootstrap导航条
Aug 09 Javascript
如何从0开始用node写一个自己的命令行程序
Dec 29 Javascript
layui表格 返回的数据状态异常的解决方法
Sep 10 Javascript
微信小程序进入广告实现代码实例
Sep 19 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 socket的讲解与实例分析
2013/06/13 PHP
destoon调用discuz论坛中带图片帖子的实现方法
2014/08/21 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
PHP中static关键字以及与self关键字的区别
2015/07/01 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
js替代copy(示例代码)
2013/11/27 Javascript
JS获取html对象的几种方式介绍
2013/12/05 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
jQuery取id有.的值的方法
2014/05/21 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
2014/08/18 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
2017/04/14 jQuery
Vue修改mint-ui默认样式的方法
2018/02/03 Javascript
vue设计一个倒计时秒杀的组件详解
2019/04/06 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
python 生成器生成杨辉三角的方法(必看)
2017/04/10 Python
python try except 捕获所有异常的实例
2018/10/18 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
Mistine官方海外旗舰店:泰国国民彩妆品牌
2016/12/28 全球购物
VICHY薇姿英国官网:全球专业敏感肌护肤领先品牌
2017/07/04 全球购物
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
酒店管理专业毕业生推荐信
2013/11/10 职场文书
大型活动策划方案
2014/01/12 职场文书
数学检讨书1000字
2014/02/24 职场文书
成绩单公证书
2014/04/10 职场文书
文明寄语大全
2014/04/11 职场文书
团代会邀请函
2015/02/02 职场文书
小学英语课教学反思
2016/02/15 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书
员工试用期工作总结
2019/06/20 职场文书