如何使用jquery或css3使搜索栏响应

时间:2016-03-02 15:18:13

标签: javascript jquery html css css3

function searchToggle(obj, evt) {
  var container = $(obj).closest('.search-wrapper');
  if (!container.hasClass('active')) {
    container.addClass('active');
    evt.preventDefault();
  } else if (container.hasClass('active') && $(obj).closest('.input-holder').length == 0) {
    container.removeClass('active');
    // clear input
    container.find('.search-input').val('');
  }
}
.search-wrapper {
  position: absolute;
  left: 79%;
  top: -25px;
  transform: translate(-50%, 50%);
}
.search-wrapper .input-holder {
  height: 70px;
  width: 70px;
  overflow: hidden;
  background: black;
  border-radius: 16px;
  position: relative;
  transition: all 0.3s ease-in-out;
}
.search-wrapper.active .input-holder {
  width: 400px;
  border-radius: 50px;
  background: rgba(0, 0, 0, 0.5);
  transition: all .5s cubic-bezier(0.000, 0.105, 0.035, 1.570);
}
.search-wrapper .input-holder .search-input {
  width: 100%;
  height: 50px;
  padding: 0 70px 0 20px;
  position: absolute;
  top: 0;
  left: 0;
  background: transparent;
  box-sizing: border-box;
  border: none;
  outline: none;
  font-family: "Open Sans", Arial, Verdana;
  font-size: 16px;
  font-weight: 400;
  line-height: 20px;
  color: #FFF;
  transform: translate(0, 60px);
  transition: all .3s cubic-bezier(0.000, 0.105, 0.035, 1.570);
  transition-delay: 0.3s;
  opacity: 0;
}
.search-wrapper.active .input-holder .search-input {
  opacity: 1;
  transform: translate(0, 10px);
}
.search-wrapper .input-holder .search-icon {
  width: 70px;
  height: 70px;
  border: none;
  border-radius: 6px;
  background: #fff;
  padding: 0;
  outline: none;
  position: relative;
  z-index: 2;
  float: right;
  cursor: pointer;
  transition: all 0.3s ease-in-out;
}
.search-wrapper.active .input-holder .search-icon {
  width: 50px;
  height: 50px;
  margin: 10px;
  border-radius: 30px;
}
.search-wrapper .input-holder .search-icon span {
  width: 22px;
  height: 22px;
  display: inline-block;
  vertical-align: middle;
  position: relative;
  transform: rotate(45deg);
  transition: all .4s cubic-bezier(0.650, -0.600, 0.240, 1.650);
}
.search-wrapper.active .input-holder .search-icon span {
  transform: rotate(-45deg);
}
.search-wrapper .input-holder .search-icon span::before,
.search-wrapper .input-holder .search-icon span::after {
  position: absolute;
  content: '';
}
.search-wrapper .input-holder .search-icon span::before {
  width: 4px;
  height: 11px;
  background: #FE5F55;
  border-radius: 2px;
  left: 9px;
  top: 18px;
}
.search-wrapper .input-holder .search-icon span::after {
  width: 14px;
  height: 14px;
  border: 4px solid #FE5F55;
  border-radius: 50%;
  left: 0;
  top: 0;
}
.search-wrapper .close {
  position: absolute;
  z-index: 1;
  top: 24px;
  right: 20px;
  width: 25px;
  height: 25px;
  cursor: pointer;
  transform: rotate(-180deg);
  transition: all .3s cubic-bezier(0.285, -0.450, 0.935, 0.110);
  transition-delay: 0.2s;
}
.search-wrapper.active .close {
  right: -50px;
  transform: rotate(45deg);
  transition: all .6s cubic-bezier(0.000, 0.105, 0.035, 1.570);
  transition-delay: 0.5s;
}
.search-wrapper .close::before,
.search-wrapper .close::after {
  position: absolute;
  content: '';
  background: #FE5F55;
  border-radius: 2px;
}
.search-wrapper .close::before {
  width: 5px;
  height: 25px;
  left: 10px;
  top: 0px;
}
.search-wrapper .close::after {
  width: 25px;
  height: 5px;
  left: 0px;
  top: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>

<div class="search-wrapper">
  <div class="input-holder">
    <input type="text" class="search-input" placeholder="Type to search" />
    <button class="search-icon" onclick="searchToggle(this, event);"><span></span>
    </button>
  </div>
  <span class="close" onclick="searchToggle(this, event);"></span>
</div>

经过大量的研究,我终于设法改变了我的搜索栏。但据我说,它没有执行搜索功能例如,如果我在其中输入“home”中的任何内容并按下搜索图标就不会发生任何事情。所以我想问一下我是否错了,即搜索功能是否有效,其次我想让它像Google的搜索栏一样响应。我的意思是我希望它记住搜索,并在我输入时缩短结果。

任何帮助都将受到高度赞赏。谢谢:))

1 个答案:

答案 0 :(得分:0)

我强烈建议您使用Bootstrap。它只使用CSS并且是轻量级的。您可以在Bootstrap FormsW3S找到详细记录。如果您不想使用框架,可以尝试为自己构建一些东西。为此,您可以再次查看引导程序(或其他CSS框架)并复制您想要使用的任何内容。

同样,您应该使用CSS框架进行响应式设计,它们可以帮助您实现更轻松的生活。

此致,Megajin