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

标签 javascript jquery html css

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 的搜索栏一样响应。我的意思是我希望它记住搜索并在我输入时缩短结果。

任何帮助将不胜感激。谢谢:)

最佳答案

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

同样,您应该使用 CSS 框架进行响应式设计,它们有很大帮助,让您的生活更轻松。

问候,Megajin

关于javascript - 如何使用 jquery 或 css3 使搜索栏响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35751212/

相关文章:

jquery - 在 jQuery AJAX 请求到 Flask 之后渲染 Jinja

c# - 在 C# 的后端代码中访问 data-href

javascript - 在点击 javascript 之前不显示搜索栏

javascript - 如何在 D3 中沿 X 轴设置自定义刻度?或命名条形图中的条形?

javascript - 在使用历史 API 时更改页面标题?

javascript - Rails Ajax重绘html无法识别模型之间的关系

html - 在 twitter bootstrap 中指定图像

javascript - 使用 javascript 事件处理程序更改 html 输入图像

javascript - 如果文本框不为空,请选中复选框

jquery - 获取 Twitter 时间线的正确 URL