jQuery SmoothScroll and Select-Option

谁都会走 提交于 2019-12-11 06:16:39

问题


I'm creating a select menu to make my site responsive. I'm using smoothscroll (https://github.com/kswedberg/jquery-smooth-scroll) to handle the scrolling of my regular a href #hash link menu items, but could use some help getting it to work for select & option.

Here is my select menu;

<select>   
    <option value=""> </option>
    <option value="#home" class="smoothscroll">Home</option>
    <option value="#what-we-do" class="smoothscroll">What we do</option>
    <option value="#case-studies" class="smoothscroll">Case Studies</option>
    <option value="#testimonials" class="smoothscroll">Testimonials</option>
    <option value="#contact" class="smoothscroll">Contact</option>
</select>

And here is my jQuery code;

$('nav select').change(function() {
    $.smoothScroll({offset: -70, speed: 2000});
});

As it is right now, if you scroll down on my page and use the select menu and choose any option, it smooth-scrolls back up to the top of the page -- not to the correct #hash tag. If you select an option when you're at the top of the page, nothing happens.

Your help would be much appreciated. Thank you.


回答1:


It looks to me like you are not actually telling smoothscroll where you want to go. According to the docs you can give the function a target simply by using scrollTarget like this (where $(this).val() is the current value of the select element):

$('nav select').change(function() {
    $.smoothScroll({
        offset: -70,
        speed: 2000,
        scrollTarget: $(this).val()
    });
});


来源:https://stackoverflow.com/questions/22055914/jquery-smoothscroll-and-select-option

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!