什么"错误"用这个切换脚本?

时间:2016-02-15 19:10:21

标签: javascript jquery toggle

我使用这个JS代码来切换我的响应式菜单,但它不能在手机中顺利运行。你能明白为什么吗?

    <script>
    $(function() {
        var pull        = $('.slide-toggle');
            menu        = $('.menu');
            menuHeight  = menu.height();

        $(pull).on('click', function(e) {
            e.preventDefault();
            menu.slideToggle(500);
        });

        $(window).resize(function(){
            var w = $(window).width();
            if(w > 768 && menu.is(':hidden')) {
                menu.removeAttr('style');
            }
        });
    });
</script>

感谢您的帮助!0

1 个答案:

答案 0 :(得分:0)

这是一个CSS3动画的示例,它将帮助您实现滑动菜单。我不确定菜单的确切行为,但我认为这会给你一个很好的起点。 https://jsfiddle.net/jtholla2/73a7czm9/1/

* {
  margin: 0;
  padding: 0;
  font-family: "Helvetica Neue", Helvetica, Sans-serif;
  word-spacing: -2px;
}
h1 {
  font-size: 40px;
  font-weight: bold;
  color: #191919;
  -webkit-font-smoothing: antialiased;
}
h2 {
  font-weight: normal;
  font-size: 20px;
  color: #888;
  padding: 5px 0;
}
.menu {
  background: #181818;
  color: #FFF;
  position: absolute;
  top: -250px;
  left: 0;
  width: 100%;
  height: 250px;
  padding: 20px;
  transition: 300ms cubic-bezier(0.17, 0.04, 0.03, 0.94);
  overflow: hidden;
  box-sizing: border-box;
}
.menu h1 {
  color: #FFF;
}
#toggle {
  position: absolute;
  appearance: none;
  cursor: pointer;
  left: -100%;
  top: -100%;
}
#toggle + label {
  position: absolute;
  cursor: pointer;
  padding: 10px;
  background: #26ae90;
  width: 100px;
  border-radius: 3px;
  padding: 8px 10px;
  color: #FFF;
  line-height: 20px;
  font-size: 12px;
  text-align: center;
  -webkit-font-smoothing: antialiased;
  cursor: pointer;
  margin: 20px 50px;
  transition: all 500ms ease;
}
#toggle + label:after {
  content: "Open"
}
.container {
  transition: margin 300ms cubic-bezier(0.17, 0.04, 0.03, 0.94);
  padding: 5em 3em;
}
#toggle:checked ~ .menu {
  top: 0;
}
#toggle:checked ~ .container {
  margin-top: 250px;
}
#toggle:checked + label {
  background: #dd6149;
}
#toggle:checked + label:after {
  content: "Close"
}
<input type="checkbox" name="toggle" id="toggle" />
<label for="toggle"></label>

<div class="container">
  <h1>CSS3 Slide Down Toggle Demo Menu</h1>
  <h2>Click the Open button to see the menu.</h2>
</div>

<div class="menu">
  <ul>
    <li>Item One</li>
    <li>Item Two</li>
    <li>Item Three</li>
    <li>Item Four</li>
  </ul>
</div>