首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在返回初始幻灯片时重写淡出函数,iDangero.us Swiper

问在返回初始幻灯片时重写淡出函数,iDangero.us Swiper
EN

Stack Overflow用户
提问于 2014-01-19 10:37:20
回答 1查看 1.1K关注 0票数 0

在本站上,当库被激活时,左侧的导航菜单就会消失。当鼠标悬停在覆盖屏幕左边230 in的div (下面代码片段中的#leftbar)上时,它会重新出现。到目前为止还不错,但是当访问者回到最初的幻灯片时,我希望这个效果停止。

索引号是从我使用的滑块插件iDangero.us Swiper返回的。现在,当我从幻灯片1导航到2并返回到1时,菜单会按预期的方式重新出现,但当鼠标将上述div放在窗口的左侧时,菜单就会消失,这应该只发生在幻灯片索引#1和更高版本上。

为了调试目的,幻灯片索引(来自插件)显示在title-tag中。由于索引在来回浏览图库时显示正确,所以我认为可以排除与插件相关的问题。

下面是代码:

代码语言:javascript
复制
function slidefader(){
  var slideindex = mySwiper.activeIndex;
  $('title').html(slideindex);
  // First slide
  if (slideindex == 0) {
    $('.fade').clearQueue();
    $('.fade').delay(600).fadeIn(200);
    $('.fade2').fadeOut(100);
  }

  // Other slides
  if (slideindex >= 1) {
    $('.fade').clearQueue();
    $('.fade').fadeOut(200);
    $('.fade2').fadeIn();


$('#leftbar').mouseenter(function(){
    $('.fade').fadeIn(200);
})
    $('#leftbar').mouseleave(function(){
    $('.fade').fadeOut(200);
})

  }
}

谢谢你的建议!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-19 12:58:56

如果我理解正确,那么您需要多次使用.off(),如下所示:

代码语言:javascript
复制
function slidefader(){
    var slideindex = mySwiper.activeIndex;
    $('title').html(slideindex);
    // First slide
    if (slideindex == 0) {
        $('.fade').clearQueue().delay(600).fadeIn(200);
        $('.fade2').fadeOut(100);

        $('#leftbar').off('mouseenter').off('mouseleave');
    }

    // Other slides
    if (slideindex >= 1) {
        $('.fade').clearQueue().fadeOut(200);
        $('.fade2').fadeIn();

        $('#leftbar').off('mouseenter').on('mouseenter', function() {
            $('.fade').stop().fadeIn(200);
        }).off('mouseleave').on('mouseleave', function(){
            $('.fade').stop().fadeOut(200);
        });
    }
}

对于幻灯片#0,任何当前附加的鼠标/鼠标保存处理程序都将被删除。

对于幻灯片#1,任何当前附加的鼠标/鼠标保存效果将被删除(以防止效果的积累),并将附加新的处理程序。

虽然你没有要求,但我也包括了.stop()。这将停止当前正在运行的任何效果,然后再启动所需的效果。如果没有stop(),所需的动画将在任何当前效果完成后运行。这是重要的,以迎合一个快速的鼠标-鼠标保存序列(或更糟,例如。mouseenter-mouseleave-mouseenter-mouseleave-mouseenter-mouseleave).

另请注意:

  • 使用.on(...)代替.mouseenter()和.mouseleave()是可选的。当同时使用.on()时,使用.off()可能会更清晰一些
  • 方法链接提高了代码的效率。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21215661

复制
相关文章

相似问题

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