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


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 while语句和do while语句的区别分析
Dec 08 Javascript
Ext.MessageBox工具类简介
Dec 10 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
Sep 19 Javascript
基于jquery跨浏览器显示的file上传控件
Oct 24 Javascript
JavaScript基础语法让人疑惑的地方小结
May 23 Javascript
JQuery实现简单时尚快捷的气泡提示插件
Dec 20 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
May 19 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
Nov 05 Javascript
jquery控制页面部分刷新的方法
Jun 24 Javascript
Map.vue基于百度地图组件重构笔记分享
Apr 17 Javascript
JS原生瀑布流效果实现
Apr 26 Javascript
微信公众号生成新浪短网址的实现(快速生成)
Aug 18 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 批量删除数据的方法分析
2009/10/30 PHP
php学习笔记之 函数声明(二)
2011/06/09 PHP
php简单获取目录列表的方法
2015/03/24 PHP
Smarty中的注释和截断功能介绍
2015/04/09 PHP
详解PHP中的PDO类
2015/07/06 PHP
javascript针对DOM的应用分析(三)
2012/04/15 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
jQuery scroll事件实现监控滚动条分页示例
2014/04/04 Javascript
js图片预加载示例
2014/04/30 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
2016/02/22 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
vue父组件向子组件传递多个数据的实例
2018/03/01 Javascript
vue中使用input[type=&quot;file&quot;]实现文件上传功能
2018/09/10 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
2018/12/10 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
pyhton列表转换为数组的实例
2018/04/04 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
Python实例教程之检索输出月份日历表
2020/12/16 Python
详解pandas映射与数据转换
2021/01/22 Python
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
三个Unix的命令面试题
2015/04/12 面试题
个性发展自我评价
2014/02/11 职场文书
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
培训班开班仪式主持词
2014/03/28 职场文书
期中考试反思800字
2014/05/01 职场文书
汽车维修求职信
2014/06/15 职场文书
电子商务专业求职信
2014/07/10 职场文书
大学生简短的自我评价
2014/09/12 职场文书
研究生简历自我评
2015/03/11 职场文书
安全责任协议书范本
2016/03/23 职场文书
Python 数据可视化之Bokeh详解
2021/11/02 Python