小程序实现悬浮搜索框


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中为元素加上name属性的方法
May 09 Javascript
可以用鼠标拖动的DIV实现思路及代码
Oct 21 Javascript
js全选按钮的实现方法
Nov 17 Javascript
浅析Ajax语法
Dec 05 Javascript
详解angularjs结合pagination插件实现分页功能
Feb 10 Javascript
详解基于webpack2.x的vue2.x的多页面站点
Aug 21 Javascript
Vue项目中设置背景图片方法
Feb 21 Javascript
使用vue-router为每个路由配置各自的title
Jul 30 Javascript
原生JS实现轮播图效果
Oct 12 Javascript
微信小程序文字显示换行问题
Jul 28 Javascript
js 递归json树实现根据子id查父id的方法分析
Nov 08 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
Nov 12 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
php数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
购物车实现的几种方式优缺点对比
2018/05/02 PHP
彪哥1.1(智能表格)提供下载
2006/09/07 Javascript
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
2015/04/01 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
浅谈jQuery中hide和fadeOut的区别 show和fadeIn的区别
2016/08/18 Javascript
JS给swf传参数的实现方法
2016/09/13 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
jQuery、layer实现弹出层的打开、关闭功能
2017/06/28 jQuery
JavaScript设计模式之装饰者模式定义与应用示例
2018/07/25 Javascript
在Vue中使用Echarts实例图的方法实例
2020/10/10 Javascript
[00:20]TI9不朽观赛名额抽取
2019/08/05 DOTA
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
python django 实现验证码的功能实例代码
2017/05/18 Python
Python+OpenCV让电脑帮你玩微信跳一跳
2018/01/04 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
基于python list对象中嵌套元组使用sort时的排序方法
2018/04/18 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
Python 中的lambda函数介绍
2018/10/10 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
计算s=f(f(-1.4))的值
2014/05/06 面试题
如何查找和删除数据库中的重复数据
2014/11/05 面试题
北京大学自荐信范文
2014/01/28 职场文书
化妆品活动策划方案
2014/05/23 职场文书
人口与计划生育责任书
2015/05/09 职场文书
2015年校本培训工作总结
2015/07/24 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
python3美化表格数据输出结果的实现代码
2021/04/14 Python
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers