如何使用选择>制作锚点使用类的选项元素

时间:2013-12-25 00:46:30

标签: javascript jquery html html5 drop-down-menu

当您更改select元素中的选项时,我会进行锚点滚动。但是,这只能在值属性中插入一个id。可以使用href吗?我会将值atribute用于其他事情。谢谢,圣诞快乐!!

DEMO

<!-- THIS WORK -->

<select>
   <option value="#b1">1 test</option>
   <option value="#b2">2 test</option>
   <option value="#b3">3 test</option>
 </select>

 <!-- THIS DON`T WORK =/ -->

 <select>
     <option href="#b1">1 test</option>
     <option href="#b2">2 test</option>
     <option href="#b3">3 test</option>
 </select>

3 个答案:

答案 0 :(得分:2)

对于课堂可以这样做:

  $('select').on('change', function () {
      var $el = $($(this).find(':selected').attr('class'));
      $('html,body').animate({
          scrollTop: $el.offset().top
      }, 500);

  })

DEMO

答案 1 :(得分:1)

你的小提琴

 // fluid scroll in the select>option change

      $('select').on('change', function () {


           $('html,body').animate({
                      scrollTop: $(this.value).offset().top
                  }, 500);
      });
  });

此处为您提供$(this.value)的scrollTop,因此仅当您提供value = "#b1"

时才有效

将其更改为$(this.options[this.selectedIndex].id),它将适用于id="#b1"

答案 2 :(得分:0)

此处更新了小提琴:http://jsfiddle.net/E3MBb/5/

使用类,即使我觉得以这种方式使用类也很奇怪。正确的方法是在我的脑海中使用价值,但在这里你去:)

很容易编辑小提琴以获取所选的选项ID,href或除了值之外你想要的其他任何属性,最好像以前一样使用this.value