小程序实现悬浮搜索框


Posted in Javascript onJuly 12, 2019

本文实例为大家分享了小程序实现悬浮搜索框的具体代码,供大家参考,具体内容如下

悬浮搜索框是当数据界面不断滚动时,搜索框始终悬浮在最上方。来看一下效果图

小程序实现悬浮搜索框

UI代码

<view class="search-wrapper">
  <view class="search-panel">
   <view class="search-section">
    <view class="search-button-wrapper">
     <image class="search-button" src="/images/scan.png" bindtap="scan"></image>
    </view>
    <view class="search-input-wrapper ">
     <input bindinput="bindBarcodeInput" bindconfirm="query" bindfocus="bindBarcodeFocus" bindblur="bindBarcodeBlur" class="search-input" placeholder="扫描或者手动输入条码" value="{{barcode}}" confirm-type="search" />
    </view>
    <view class="search-button-wrapper">
     <image class="search-button" src="/images/search.png" bindtap="query"></image>
    </view>
   </view>
  </view>
  <view class="search-demo" hidden="{{hiddenDropdown}}">
   <button size="mini" bindtap="setDemoData">示例</button>
   <button size="mini" bindtap="clear" style="margin-left:10px;">清空</button>
  </view>
 </view>

样式

.search-wrapper {
 position: fixed;/*悬停搜索框的关键样式*/
 top: 0px;
 left: 0;
 width: 100%;
 z-index: 999;
}
 
.search-panel {
 background-color: #f50;
}
 
.search-section {
 padding: 5px 0px;
 display: flex;
 flex-direction: row;
}
 
.search-demo {
 padding: 5px;
 flex-direction: row;
 background-color: #eee;
 padding-left:42px;  
 align-items: flex-start;
}
 
.search-input-wrapper {
 flex: 8;
 padding: 5px;
 background-color: #eee;
 border-radius: 3px;
}
 
.search-input {
 padding-top: 5px;
}
 
.search-clear {
 float: right;
 width: 32px;
 height: 32px;
 z-index: 998;
}
 
.search-button-wrapper {
 padding-left: 5px;
 padding-right: 5px;
 padding-top:5px; 
}
 
.search-button {
 flex: 1;
 border: none !important;
 color: white !important;
 width: 32px;
 height: 32px;
}

JS代码

//获取应用实例
var app = getApp()
Page({
  data: {
    barcode: "",
    hiddenLoading: true,
    hiddenData: true,
    hiddenDropdown: true,
    hiddenClear:true,
    demoData: 'XXXX',
    Product: {},
  },
  bindBarcodeInput: function (e) {
    this.setData({
      barcode: e.detail.value
    })
  },
  bindBarcodeFocus: function (e) {
    this.setData({
      hiddenDropdown: false,
      hiddenClear:false
    })
  },
  bindBarcodeBlur: function (e) {
    this.setData({
      hiddenDropdown: true,
      hiddenClear:true
    })
  },
  scan: function (e) {
    var that = this;
    wx.scanCode({
      success: function (res) {
        that.setData({
          barcode: res.result
        });
        that.query(e);
      },
      fail: function () {
        that.setData({
          barcode: "",
          hiddenData: true
        });
      },
      complete: function () {
        // complete
      }
    })
  },
  setDemoData: function (e) {
    this.setData({
      barcode: this.data.demoData
    });
  },
  clear: function (e) {
    this.setData({
      barcode: "",
      hiddenData: true
    });
  },
  query: function (e) {
    var url = "https://www.xxx.com/query";//查询数据的URL
    var that = this;
    if (that.data.barcode == undefined
      || that.data.barcode == null
      || that.data.barcode.length <= 0) {
      that.setData({ hiddenData: true });
      wx.showToast({
        title: '请输入条码',
        image: '/images/fail.png',
        duration: 2000
      });
      return;
    }
    wx.request({
      url: url,
      data: { barcode: that.data.barcode },
      method: 'GET',
      success: function (res) {
        var result = res.data;
        if (result.Status != 0) {
          that.setData({ hiddenData: true });
          wx.showToast({
            title: result.Message,
            image: '/images/fail.png',
            duration: 2000
          })
          return;
        }
        that.setData({ Product: result.Data, hiddenData: false });
        wx.showToast({
          title: "获取数据成功",
          image: '/images/ok.png',
          duration: 2000
        })
      },
      fail: function (e) {
        var toastText = '获取数据失败' + JSON.stringify(e);
        that.setData({
          hiddenLoading: !that.data.hiddenLoading,
          hiddenData: true
        });
        wx.showToast({
          title: toastText,
          icon: '',
          duration: 2000
        })
      },
      complete: function () {
        // complete
      }
    })
  }
})

用到的几个图片

小程序实现悬浮搜索框小程序实现悬浮搜索框小程序实现悬浮搜索框小程序实现悬浮搜索框

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
有关js的变量作用域和this指针的讨论
Dec 16 Javascript
javascript 判断中文字符长度的函数代码
Aug 27 Javascript
JavaScript实现的一个计算数字步数的算法分享
Dec 06 Javascript
javascript实现回到顶部特效
May 06 Javascript
如何通过js实现图片预览功能【附实例代码】
Mar 30 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
Jun 12 Javascript
微信小程序开发教程之增加mixin扩展
Aug 09 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
Aug 11 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
Mar 21 Javascript
Vue列表渲染的示例代码
Nov 01 Javascript
vue动态合并单元格并添加小计合计功能示例
Nov 26 Vue.js
jquery实现淡入淡出轮播图效果
Dec 13 jQuery
小程序实现搜索框功能
Mar 26 #Javascript
iview的table组件自带的过滤器实现
Jul 12 #Javascript
es6中比较有用的7个技巧小结
Jul 12 #Javascript
echarts大屏字体自适应的方法步骤
Jul 12 #Javascript
javascript实现简易聊天室
Jul 12 #Javascript
简单了解vue中父子组件如何相互传递值(基础向)
Jul 12 #Javascript
小程序实现短信登录倒计时
Jul 12 #Javascript
You might like
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
再谈PHP中单双引号的区别详解
2016/06/12 PHP
万能的php分页类
2017/07/06 PHP
laravel手动创建数组分页的实现代码
2018/06/07 PHP
PDO::_construct讲解
2019/01/27 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
实现复选框全选/全不选切换
2006/12/23 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
实例分析javascript中的call()和apply()方法
2014/11/28 Javascript
JavaScript实现网站访问次数统计代码
2015/08/12 Javascript
jQuery实现滚动切换的tab选项卡效果代码
2015/08/26 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
jQuery纵向导航菜单效果实现方法
2016/12/19 Javascript
js实现楼层导航功能
2017/02/23 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
详解微信小程序Page中data数据操作和函数调用
2017/09/27 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
countUp.js实现数字动态变化效果
2019/10/17 Javascript
vue中使用GraphQL的实例代码
2019/11/04 Javascript
Vue+Vuex实现自动登录的知识点详解
2020/03/04 Javascript
python使用正则搜索字符串或文件中的浮点数代码实例
2014/07/11 Python
Python使用正则匹配实现抓图代码分享
2015/04/02 Python
Python使用微信SDK实现的微信支付功能示例
2017/06/30 Python
python中有函数重载吗
2020/05/28 Python
浅谈Python中的继承
2020/06/19 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
德国在线香料制造商:Gewürzland
2020/03/10 全球购物
天逸系统(武汉)有限公司Java笔试题
2015/12/29 面试题
公司财务自我评价分享
2013/12/17 职场文书
班级旅游计划书
2014/05/03 职场文书
党的群众路线教育实践活动教师自我剖析材料
2014/10/09 职场文书
敬老院志愿者活动总结
2015/05/06 职场文书
在pyCharm中下载第三方库的方法
2021/04/18 Python