javascript - 即使输入被隐藏,也要在输入文本旁边放置按钮?

标签 javascript jquery html css opacity

我有一个搜索表单,我需要输入文本开始隐藏,并且有一个名为搜索的按钮,输入出现,当显示输入时,名为搜索的按钮转换为关闭按钮以再次隐藏输入文本。 我的问题是,当输入文本被隐藏时,按钮会移动到我网站的中心。我需要留在搜索框旁边。

这是我的代码:

<div class="main-search-continer">
     <form action="/content/testing.html">
        <input class="inputSearch" size="41" maxlength="2048" name="q" value="">        
        <button type="button" class="js-btn-toggle_search">X Close</button>
     </form>
     <div class="clear"></div>
</div>

JS:

$(document).on("click", "button.js-btn-toggle_search", function(){
    var $btn = $(this)
    $("input.inputSearch").toggle(0, '', function() {
        if($(this).is(":visible")) {
            $btn.text("X Close")
        } else {
            $btn.text("Search")
        }
    })
})

我的 CSS 非常简单:

input.inputSearch {
    font-size: 30px;
    width: 65%;
    margin: 0 auto;
    color: #939497;
    font-weight: 300;
    display:none;
}
div.main-search-continer {
    width: 100%;
}

A fiddle查看行为。

最佳答案

jsFiddle demo

jQuery toggle() 方法对 display 属性进行操作,当设置为 display:none; 时,基本上会隐藏您的元素文档流。

而是使用 CSS visibility hidden/visible 通过 .css() 方法访问它。

这是一个代码示例

$(document).on("click", "button.js-btn-toggle_search", function(){
    var $input = $("input.inputSearch");
    var tog = $input.css("visibility") === "visible";
    $input.css({visibility: tog ? "hidden" : "visible"});
    $(this).text(tog ? "Search" : "X Close");
});

或者也使用 ^ XOR 作为 1/0 toggler

$(document).on("click", "button.js-btn-toggle_search", function(){
    var tog = this.tog^=1;   // 1/0 Toggler // or use this.dataset.tog^=1;
    $("input.inputSearch").css({visibility: tog?"hidden":"visible"});
    $(this).text(tog?"Search":"X Close");
});

http://www.w3.org/wiki/CSS/Properties/visibility https://developer.mozilla.org/en/docs/Web/CSS/visibility

关于javascript - 即使输入被隐藏,也要在输入文本旁边放置按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33423791/

相关文章:

javascript - 无法运行任何 JavaScript

javascript - 如何在 html java 页面中的静态图像上固定标记

javascript - 如果在选择框中选择了相关项目,则打开隐藏的 div

JavaScript 无法在我机器上的任何浏览器上运行

javascript - 在HTML中加载页面3秒后加载引导警报

javascript - 包含外部JS文件的内容

Javascript提示框字段大小限制

javascript - Node.js - 等待循环中抛出的所有 promise

javascript - 帮助使用正则表达式从括号内提取值

javascript - ASP : A string don't work if I assign a value to it