代码之家  ›  专栏  ›  技术社区  ›  Non

我如何创建像Facebook或WhatsApp这样的搜索框?(移动)

  •  0
  • Non  · 技术社区  · 9 年前

    有没有手动执行的方法?我想用 Ionic Framework ,他们有一个 attribute 但现在已被弃用。

    通过Facebook/WhatsApp的搜索框,我的意思是:

    1-一叹息就隐藏

    2-如果你想看它,你必须放下

    3-一旦你关注它,它就会延伸到屏幕顶部并与标题重叠

    4-有一个X按钮用于删除搜索框的内容,另一个名为“取消”的按钮用于关闭搜索框。

    很肯定每个人都已经注意到了这种行为。

    那么,实现它的技术是什么?

    我正在使用Angular,所以我不知道是否有一种方法来执行指令,或者仅仅使用css?你有什么建议?

    enter image description here enter image description here

    something like this

    1 回复  |  直到 9 年前
        1
  •  1
  •   Non    9 年前

    要我意识到这一切太耗时了。但如果您熟悉css3中的“过渡”,就不那么困难了。

    这是“精简版”

    var searchbox={
    	topPos_open:0, topPos_close:-50, isOpen:false,
    	open:function(){
    	    var box=document.getElementById("searchbox");
    	    box.style.top=this.topPos_open+"px";
            document.getElementById("searchfield").focus();
            this.isOpen=true;
    	},
    	close:function(){
    	    var box=document.getElementById("searchbox");
    	    box.style.top=this.topPos_close+"px";
    	    this.isOpen=false;
    	},
    	pop:function(){
    	    !this.isOpen?this.open():this.close();
    	},
    	clear:function(){
    		document.getElementById("searchfield").value="";
    	}
    }
    #searchbox{position:fixed; top:-50px; left:0px; width:100%; height:60px; background-color:rgba(135, 206, 235, 1); -webkit-transition:top 0.5s ease 0s; -moz-transition:top 0.5s ease 0s; transition:top 0.5s ease 0s;}
    #searchbox input{border:0px none; margin:0px 10px 0px 10px; padding:0px; width:80%; font-size:20px;}
    #searchbox #input{float:left; background-color:rgba(255, 255, 255, 1); border:1px solid #dddddd; border-radius:20px; margin:5px; padding:5px; width:70%; min-width:250px;}
    #searchbox #close{float:right; padding:10px:}
    #searchbox button{border:0px none; background-color:transparent; font-size:20px; cursor:pointer;}
    #searchbox #dots{clear:both; text-align:center; font-size:25px; cursor:pointer;}
    <div id="searchbox">
        <div id="input">
          <input type="text" id="searchfield" value="">
          <button type="button" onclick="searchbox.clear()">
            X
          </button>
        </div>
        <div id="close">
          <button type="button" onclick="searchbox.close()">
            Cancel
          </button></div>
        <div id="dots" onclick="searchbox.pop()">
          ......
        </div>
    </div>
    
    
    <br>
    <br>
    <br>
    <br>
    Click the dots