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


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 相关文章推荐
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
Oct 01 Javascript
javascript中万恶的function实例分析
May 25 Javascript
用按钮控制iframe显示的网页实现方法
Feb 04 Javascript
原生的html元素选择器类似jquery选择器
Oct 15 Javascript
js添加事件的通用方法推荐
May 15 Javascript
简单实现的JQuery文本框水印插件
Jun 14 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
Dec 01 Javascript
关于React动态加载路由处理的相关问题
Jan 07 Javascript
更优雅的微信小程序骨架屏实现详解
Aug 07 Javascript
node.js爬虫框架node-crawler初体验
Oct 29 Javascript
JS常用跨域方法实现原理解析
Dec 09 Javascript
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
微信小程序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
老照片 - 几十年前的收音机与人
2021/03/02 无线电
PHP MSSQL 存储过程的方法
2008/12/24 PHP
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
node.js读取文件到字符串的方法
2015/06/29 Javascript
4种JavaScript实现简单tab选项卡切换的方法
2016/01/06 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
JS插件plupload.js实现多图上传并显示进度条
2016/11/29 Javascript
Nodejs高扩展性的模板引擎 functmpl简介
2017/02/13 NodeJs
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
详解jquery和vue对比
2019/04/16 jQuery
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
2019/04/18 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
Python中zip()函数用法实例教程
2014/07/31 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
利用Python实现学生信息管理系统的完整实例
2020/12/30 Python
canvas绘图按照contain或者cover方式适配并居中显示
2019/02/18 HTML / CSS
Mavi牛仔裤美国官网:土耳其著名牛仔品牌
2016/09/24 全球购物
Yahoo-PHP面试题1
2016/07/20 面试题
暑期培训随笔感言
2014/03/10 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
2015年小学教师培训工作总结
2015/07/21 职场文书
2015年秋学期师德师风建设工作总结
2015/10/23 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
5分钟教你docker安装启动redis全教程(全新方式)
2021/05/29 Redis
win10如何开启ahci模式?win10开启ahci模式详细操作教程
2022/07/23 数码科技