小程序实现悬浮搜索框


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 相关文章推荐
javascript下操作css的float属性的特殊写法
Aug 22 Javascript
javascript YUI 读码日记之 YAHOO.util.Dom - Part.4
Mar 22 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
Apr 25 Javascript
jquery和css3实现的炫酷时尚的菜单导航
Sep 01 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
Mar 27 Javascript
JavaScript中的Array 对象(数组对象)
Jun 02 Javascript
JS获取url参数、主域名的方法实例分析
Aug 03 Javascript
用js读写cookie的简单方法(推荐)
Aug 08 Javascript
js获取隐藏元素的宽高
Feb 24 Javascript
JS三目运算(三元运算)方法详解
Mar 01 Javascript
Vue 进阶教程之v-model详解
May 06 Javascript
CSS3+JavaScript实现翻页幻灯片效果
Jun 28 Javascript
小程序实现搜索框功能
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
用libtemplate实现静态网页生成
2006/10/09 PHP
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
2007/07/21 PHP
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
php编程每天必学之验证码
2016/03/03 PHP
jquery ui dialog里调用datepicker的问题
2009/08/06 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
bootstrap布局中input输入框右侧图标点击功能
2016/05/16 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
2017/05/10 Javascript
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
angular框架实现全选与单选chekbox的自定义
2017/07/06 Javascript
详解React Native 屏幕适配(炒鸡简单的方法)
2018/06/11 Javascript
Python实现PS图像调整黑白效果示例
2018/01/25 Python
TensorFLow用Saver保存和恢复变量
2018/03/10 Python
python读取图片任意范围区域
2019/01/23 Python
python之生产者消费者模型实现详解
2019/07/27 Python
Python操作远程服务器 paramiko模块详细介绍
2019/08/07 Python
Python单元测试与测试用例简析
2019/11/09 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
Pyecharts 中Geo函数常用参数的用法说明
2021/02/01 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
《春雨》教学反思
2014/04/24 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
信息工作经验交流材料
2014/05/28 职场文书
三严三实对照检查材料范文
2014/09/23 职场文书
教师廉洁自律个人总结
2015/02/10 职场文书
个人更名证明
2015/06/23 职场文书
三好学生竞选稿
2015/11/21 职场文书
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers