首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在数字之间切换并在滚动上运行函数

问在数字之间切换并在滚动上运行函数
EN

Stack Overflow用户
提问于 2018-06-01 20:00:42
回答 2查看 47关注 0票数 0

如何在单击和滚动时在这些数字之间切换类?所以,基本上我想在旋转鼠标滚轮时在它们之间切换,然后在那之后触发某种回调…

编辑:因此,我希望能够将鼠标滚轮移动到窗口中的任何位置,这将在li中切换类.active。另外,当选择li#runOne时,它应该运行一个回调函数,比如runFunctionOne。当li#runTwo被选择/滚动到时-它将运行例如runFunctionTwo...

​

代码语言:javascript
复制
$("#runTwo").on('click', function() {
  $("#runTwo").toggleClass("active", function() {
    // Run some callback
    console.log("Two");
  });
});

$(window).scroll(function() {
  // Switch between numbers on scroll
});
代码语言:javascript
复制
ul {
  margin: 50px auto;
  width: 300px;
}

.active {
  background-color: lightblue;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li id="runOne" class="runOne active">Run 1</li>
  <li id="runTwo" class="runTwo">Run 2</li>
  <li id="runThree" class="runThree">Run 3</li>
</ul>

​

EN

回答 2

Stack Overflow用户

发布于 2018-06-01 20:16:16

您可以使用单击和鼠标滚轮切换类,如下所示

https://codepen.io/creativedev/pen/rKOBEq

代码语言:javascript
复制
$('.rr').on('click, mousewheel', function() {
          $('.rr').removeClass('active');
         $(this).addClass('active');
            console.log("Two");
});
票数 1
EN

Stack Overflow用户

发布于 2018-06-01 21:06:37

HTML代码:

代码语言:javascript
复制
<ul>
   <li id="runOne" class="runOne active list">Run 1</li>
   <li id="runTwo" class="runTwo list">Run 2</li>
   <li id="runThree" class="runThree list">Run 3</li>
</ul>

jQuery代码:

代码语言:javascript
复制
$('.list').click(function(e){
  $('.list.active').removeClass('active');
  $(this).addClass('active').trigger('activeEvent');
});
$(document).on('mousewheel',function(e){
  var currentScrollAmt=$(window).scrollTop();
  var activeLi=$('.list.active');
   $('.list.active').removeClass('active');

  if(e.originalEvent.wheelDelta /120 > 0) {
       //Scrolling Up
   if(!activeLi.is(':first-child'))
      activeLi.prev('li').addClass('active').trigger('activeEvent');
    }
    else{
        //Scrolling Down
      if(!activeLi.is(':last-child'))
      activeLi.next('li').addClass('active').trigger('activeEvent');
    }  
});
$('li').on('activeEvent',function(e){
 runCallback(e.target.id);
});
function runCallback(id)
{
  if(!id)
    return false;
  switch(id)
  {
     case 'runOne':
       alert('runOne Callback Code');
       break;
     case 'runTwo':
       alert('runTwo Callback Code');
       break;
     case 'runThree':
        alert('runThree Callback Code');
         break;
 }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50642962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档