【问题标题】:Menu slide with link to section of page smoothly带有链接到页面部分的菜单幻灯片
【发布时间】:2016-02-25 11:08:34
【问题描述】:

我试图让我的 div 菜单在我单击标签时隐藏,同时平滑地向下滚动到页面的一部分。该站点可以向下滑动到我想要的位置,但我无法隐藏菜单。我使用 CSS3 和 Jquery,我对 Jquery 还是很陌生,但也许我可以只用 Jquery 做到这一点?如果我只能通过使用链接或标签以外的其他东西来做到这一点,那不是问题。我愿意接受建议。 感谢您的帮助。

CSS:

<style>
*{
    box-sizing:border-box;
}
body{
    padding: 0;
    margin: 0;
}
#container{
    width: 80%;
    height: 3000px;
    background-color: #A77676;
    margin: 0 auto;
    position: relative;
}
.menu-cont{
    width: 100%;
    height: 500px;
    background-color: #7B87FF;
}
.menu{
    width: 200px;
    height:400px;
    background-color: #C6C6C6;
    overflow: hidden;
    position: relative;
    top: 0;
    left: 0px;
    z-index: 10;

}
.menu-slide{
    width: 200px;
    height: 200px;
    background-color: #8BE2FF;
    position: absolute;
    top: 200px;
    right: 0;
    z-index: 11;
}
.jqueryscrollto{
    width: 100%;
    height: 200px;
    background-color: #00FF00;
    position: relative;
    margin-top: 1500px;
}

/************************************/
label.button{
    width: 25px;
    height: 25px;
    font-weight: bold;
    color: #FF0000;
    /*background-color: #1800FF;*/
    display: inline-block;
}
label.linkbutton{
    width: 25px;
    height: 25px;
    background-color: #36FF00;
    display: inline-block;
}
/********slide starter****/
input.toggle ~ .menu-slide{
    overflow: hidden;
    transition: .5s ease-in-out;
    transform: translateX(0px);
}
input.toggle:checked ~ .menu-slide{
    transform: translateX(-200px);
}
input.toggle{
    display: none;
}
/*****************************/
input.togglelink ~ .menu-slide{
    overflow: hidden;
    transition: .5s ease-in-out;
    transform: translateX(0px);
}
input.togglelink:checked ~ .menu-slide{
    transform: translateX(-200px);
}
input.togglelink{
    display: none;
}
</style>

HTML:

<body>
<div id="container">
  <div class="menu-cont">

    <div class="menu">
        <input type="checkbox" class="toggle" id="iconbtn">
        <label class="button" for="iconbtn">ICON BUTTON</label>
        <input type="checkbox" class="togglelink" id="linkbtn" data-href="#SCROLL">
      <div class="menu-slide">
        <div class="menu-content">
          <h2>SLIDER</h2>
          <label class="linkbutton" for="linkbtn">ABOUT US-LINKBTN</label>
        </div>
      </div><!--menu slide -->
    </div><!-- menu -->

  </div><!-- menu-cont -->
  <div class="jqueryscrollto">I WANT TO SCROLL HERE</div><label id="SCROLL"></label>

</div><!-- #container -->
</body>

jquery:

<head>
<script src="https://code.jquery.com/jquery-1.6.4.js"></script>
</head>

<body>
<script>
try {$('input').click(function(){
 href=$(this).data('href');
$('html, body').animate({
scrollTop: $(href).offset().top
}, 500);
return false;
});
} catch (error) { throw error; }
</script>
</body

我将 jquery 放在 HTML 正文的底部。

【问题讨论】:

    标签: jquery html css menu slider


    【解决方案1】:

    这是一种使用Js隐藏html元素的方法

     $("button").click(function(){
            $("p").hide(1000);
        });
    

    【讨论】:

    • 那么您认为最好完全忘记 CSS3 而只使用 Jquery 吗?感谢您的快速回复。
    • 对我来说 Jquery 方法似乎更安全,因为不同的浏览器呈现 css 有点不同。
    • 对.. 有道理。唯一的问题是我对 jquery 还是很陌生。但我会尽力按照你的建议。我会告诉你进展如何。
    • 我正在寻找的东西并不安静。但它是一个开始。我试图找出如何将 jquery scrollTop 与 jquery div 幻灯片连接起来。
    【解决方案2】:

    我想通了。只是坚持书本并学习了基础知识:)

    $(function() {
    $(document.onload)
    
      var left = true;
      $(".button, .icon").click(function() {
         $(".slide-container").animate({
            left: left ? "0px" : "-200px"
         }, 1000);
    
         left = !left;
    
      });
    
      $('.button').on('click', function(){
    
        href=$(this).data('href');
    
        $('html, body').animate({
        scrollTop: $(href).offset().top
        }, 1000);
    
      });
    
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多