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


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应用之禁止抓屏、复制、打印
Feb 21 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
Apr 01 Javascript
jquery.boxy插件的iframe扩展代码
Jul 02 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
Mar 01 Javascript
javascript设置页面背景色及背景图片的方法
Dec 29 Javascript
jQuery实现背景弹性滚动的导航效果
Jun 01 Javascript
JavaScript解析JSON格式数据的方法示例
Jan 24 Javascript
详解@angular/cli 改变默认启动端口两种方式
Nov 29 Javascript
vue动态禁用控件绑定disable的例子
Oct 28 Javascript
js实现淘宝首页的banner栏效果
Nov 26 Javascript
jQuery实现简单日历效果
Jul 05 jQuery
vue使用video插件vue-video-player详解
Oct 23 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
smarty基础之拼接字符串的详解
2013/06/18 PHP
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
Yii框架常见缓存应用实例小结
2019/09/09 PHP
php+ajax实现文件切割上传功能示例
2020/03/03 PHP
深入理解JavaScript编程中的同步与异步机制
2015/06/24 Javascript
jquery原理以及学习技巧介绍
2015/11/11 Javascript
深入理解JS DOM事件机制
2016/08/06 Javascript
前端js弹出框组件使用方法
2020/08/24 Javascript
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
bootstrap+jquery项目引入文件报错的解决方法
2018/01/22 jQuery
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
webpack多入口多出口的实现方法
2018/08/17 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
vue-cli 关闭热更新操作
2020/09/18 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
Python中字典的setdefault()方法教程
2017/02/07 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
python逆向入门教程
2018/01/15 Python
Python实现的各种常见分布算法示例
2018/12/13 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
墨西哥购物网站:Elektra
2020/01/21 全球购物
超市商业计划书
2014/05/04 职场文书
护林防火标语
2014/06/27 职场文书
社区服务标语
2014/07/01 职场文书
交通工程专业推荐信
2014/09/06 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
详解MySQL的Seconds_Behind_Master
2021/05/18 MySQL
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸