javascript - 平滑滚动选择更改 jquery

标签 javascript jquery html

我试图在下拉选择更改时平滑地滚动到 anchor 。尝试了很多来自其他答案的代码,但由于我没有使用 jquery 的经验,所以无法让它工作。 任何帮助,将不胜感激! P.S:不要介意链接选择器 if 语句

这是我的下拉列表

<select class="form-control " id="dropDownSelect" onchange="location = this.value;">
                                    <option value="#">Hotel Selection</option>
                                    <option value="#ecoHotel">EcoName</option>
                                    <option value="#luxuryHotel">LuxuryName</option>
                                </select>

这是我要在其中实现的 jquery

<script>


    $("#dropDownSelect").change(function() {
        console.log(this.value);

        // Here Should be my smoothscroll       

        if (this.value === "#luxuryHotel") {
            $("#inqLink").attr('href', "http://www.google.com");
        }
        else{
            $("#inqLink").attr('href', "package-dentmodern-hollywoodsmile-inquire.html");
        }


    });




</script>

最佳答案

我为您准备了另一个解决方案。制作你自己的dropdown,这样你更容易实现你想要的。我用 JQuery 做了所有的下拉功能,你只需要设置下拉菜单的样式:

$(document).ready(function(){

  $('.target-click').click(function(){
   $('.hidden-drop').slideToggle();
  })
      $('nav  li a').click(function(e) {
      setTimeout(function(){
         $('.hidden-drop').slideUp();
      }, 200);
    $('html, body').animate({
      scrollTop: $($(this).attr('href')).offset().top
    }, 600);
    return false;
  });
  });
select {
  margin-bottom: 30px;
}
#ecoHotel {
  background-color: lightgreen;
}
#luxuryHotel {
  background-color: lightgrey;
}
.page {
    display: block;
  height: 100vh;
    width: 100%;
    transition: all .3s ease;
}
.hidden-drop {
  display: none;
}
ul li {
  cursor: pointer;
  list-style: none;
}
ul {
padding: 0;  
}
span.target-click {
  color: #444;
    border: 1px solid #ddd;
    background-color: #f7f7f7;
    height: 44px;
    display: inline-block;
    line-height: 44px;
    padding-left: 10px;
    padding-right: 10px;
}
<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.4.min.js"></script>

  <nav>
    <ul> 
     <li>
     <span class="target-click">Hotel Selection</span>  
     <ul class="hidden-drop">
       <li><a href="#ecoHotel">EcoName</a></li>
       <li><a href="#luxuryHotel">LuxuryName</a></li>
   </ul>
   </li>
</ul>
</nav>
                                
 <div id="ecoHotel" class="page">Eco Hotel Section</div>
 <div id="luxuryHotel" class="page">Luxury Hotel Section</div>

关于javascript - 平滑滚动选择更改 jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38376536/

相关文章:

javascript - 如果我单击子 div,父 div 单击功能不会运行

javascript - 如何使用 moment.js 查找日期格式(不针对特定格式进行验证)

php - 避免多次服务器调用, "self-filtering"JqueryUI 自动完成

javascript - 如何删除 h1 标签的一部分并在其他地方使用它而不影响 h1

javascript - 如何获取所选输入 radio 的索引

html - 文本重叠视频标签 CSS

jquery - 有没有办法在 Webkit 浏览器上使用 jQuery 1.3.0 获取 $.mobile.pageCreate?

javascript - Autoprefixer 在 Gulpfile.js 中不起作用

html - JSF 组件作为 css 样式的选择器

javascript - 显示下一个隐藏的 div 和隐藏当前显示的 div