JQuery的幻灯片并不平滑

JQuery的幻灯片并不平滑,jquery,Jquery,使用与此完全相同的代码- 我在幻灯片部分有一个垂直菜单,下面是问题 每次单击菜单中的链接时,幻灯片都会折叠。所以,如果用户必须打开另一个页面,他必须单击div以再次展开它 单击链接后,幻灯片会折叠一半,然后目标页面会加载一个flash,然后继续折叠。因此,滑梯倒塌是非常不平稳的 我认为,第一个问题可以通过菜单上的lil按钮(在顶部)来解决,以打开或关闭幻灯片,而不是当前的“单击功能”。但缺点是,用户必须将光标移到顶部才能将其折叠。我无法决定什么是最好的 …我对第二件事一无所知 HTML: <

使用与此完全相同的代码-

我在幻灯片部分有一个垂直菜单,下面是问题

  • 每次单击菜单中的链接时,幻灯片都会折叠。所以,如果用户必须打开另一个页面,他必须单击div以再次展开它

  • 单击链接后,幻灯片会折叠一半,然后目标页面会加载一个flash,然后继续折叠。因此,滑梯倒塌是非常不平稳的

  • 我认为,第一个问题可以通过菜单上的lil按钮(在顶部)来解决,以打开或关闭幻灯片,而不是当前的“单击功能”。但缺点是,用户必须将光标移到顶部才能将其折叠。我无法决定什么是最好的

    …我对第二件事一无所知

    HTML:

    <div class="slide">
       Vertical menu here
    </div>
    <div style="width:350px; background:#ccc;">
         Pages load here
    </div>
    
    .slide {
        position:absolute;
        width:300px;
        top:10px;
        left:-280px;
        background-color:#8cc;
        cursor:pointer;
    }
    
    $(document).ready(function(){
        var r=0, dir=true;
        $(".slide").click(function() {
            dir = !dir;
            r = dir? -280 : 0;
            $(this).stop().animate({left: r+'px'}, 800);
        });
    });
    
    JS:

    <div class="slide">
       Vertical menu here
    </div>
    <div style="width:350px; background:#ccc;">
         Pages load here
    </div>
    
    .slide {
        position:absolute;
        width:300px;
        top:10px;
        left:-280px;
        background-color:#8cc;
        cursor:pointer;
    }
    
    $(document).ready(function(){
        var r=0, dir=true;
        $(".slide").click(function() {
            dir = !dir;
            r = dir? -280 : 0;
            $(this).stop().animate({left: r+'px'}, 800);
        });
    });
    

    通过添加StopRopagation()可以停止链接单击时幻灯片的折叠

    拨弄

    编辑

    添加功能以在单击“外部”时关闭菜单

    $(document).ready(function(){
        var r=-280, dir=true;
        $(".slide").click(function(e) {
            dir = !dir;
            r = dir? -280 : 0;
            $(this).stop().animate({left: r+'px'}, 500);
            e.stopPropagation();
        });
        $(".slide a").click(function (e) {
            e.stopPropagation();
        });
        $(document).click(function (e) {
            console.log(r);
            if(r==0)$(".slide").click();
        });
    });
    

    FIDLE-

    您可以通过添加stopPropagation()来停止链接单击时幻灯片的折叠

    拨弄

    编辑

    添加功能以在单击“外部”时关闭菜单

    $(document).ready(function(){
        var r=-280, dir=true;
        $(".slide").click(function(e) {
            dir = !dir;
            r = dir? -280 : 0;
            $(this).stop().animate({left: r+'px'}, 500);
            e.stopPropagation();
        });
        $(".slide a").click(function (e) {
            e.stopPropagation();
        });
        $(document).click(function (e) {
            console.log(r);
            if(r==0)$(".slide").click();
        });
    });
    

    FIDLE-

    您可以通过添加stopPropagation()来停止链接单击时幻灯片的折叠

    拨弄

    编辑

    添加功能以在单击“外部”时关闭菜单

    $(document).ready(function(){
        var r=-280, dir=true;
        $(".slide").click(function(e) {
            dir = !dir;
            r = dir? -280 : 0;
            $(this).stop().animate({left: r+'px'}, 500);
            e.stopPropagation();
        });
        $(".slide a").click(function (e) {
            e.stopPropagation();
        });
        $(document).click(function (e) {
            console.log(r);
            if(r==0)$(".slide").click();
        });
    });
    

    FIDLE-

    您可以通过添加stopPropagation()来停止链接单击时幻灯片的折叠

    拨弄

    编辑

    添加功能以在单击“外部”时关闭菜单

    $(document).ready(function(){
        var r=-280, dir=true;
        $(".slide").click(function(e) {
            dir = !dir;
            r = dir? -280 : 0;
            $(this).stop().animate({left: r+'px'}, 500);
            e.stopPropagation();
        });
        $(".slide a").click(function (e) {
            e.stopPropagation();
        });
        $(document).click(function (e) {
            console.log(r);
            if(r==0)$(".slide").click();
        });
    });
    

    Fiddle-

    您需要停止幻灯片中链接的bubling中的单击事件使用e.stopPropagation()`

    看到这个了吗

    将此添加到您的代码中

    $(".slide a").click(function (e) {
       e.stopPropagation();
    
    
     });
    

    您需要使用e.stopPropagation()停止幻灯片中链接的点击事件`

    看到这个了吗

    将此添加到您的代码中

    $(".slide a").click(function (e) {
       e.stopPropagation();
    
    
     });
    

    您需要使用e.stopPropagation()停止幻灯片中链接的点击事件`

    看到这个了吗

    将此添加到您的代码中

    $(".slide a").click(function (e) {
       e.stopPropagation();
    
    
     });
    

    您需要使用e.stopPropagation()停止幻灯片中链接的点击事件`

    看到这个了吗

    将此添加到您的代码中

    $(".slide a").click(function (e) {
       e.stopPropagation();
    
    
     });
    

    此代码在单击内部菜单时打开,在单击外部菜单时关闭


    此代码在单击内部菜单时打开,在单击外部菜单时关闭


    此代码在单击内部菜单时打开,在单击外部菜单时关闭


    此代码在单击内部菜单时打开,在单击外部菜单时关闭




    我觉得你的小提琴很流畅,你的幻灯片菜单里有什么?如果你想要更流畅的动画,请考虑使用CSS3转换,那些是硬件加速的浏览器,它对我来说也是非常好的。我认为一个问题是,jQuery动画并不是在所有设备上都是硬件加速的(正如gary所说),所以它们在更便宜的系统和移动设备上可能非常落后。我推荐这样的东西。它用jQuery语法制作CSS动画,非常流畅。小提琴工作正常,因为没有页面加载和垂直菜单。我在问题中提出了动画抖动的原因。请改用css转换。我觉得你的小提琴很流畅,你的幻灯片菜单里有什么?如果你想要更流畅的动画,请考虑使用CSS3转换,那些是硬件加速的浏览器,它对我来说也是非常好的。我认为一个问题是,jQuery动画并不是在所有设备上都是硬件加速的(正如gary所说),所以它们在更便宜的系统和移动设备上可能非常落后。我推荐这样的东西。它用jQuery语法制作CSS动画,非常流畅。小提琴工作正常,因为没有页面加载和垂直菜单。我在问题中提出了动画抖动的原因。请改用css转换。我觉得你的小提琴很流畅,你的幻灯片菜单里有什么?如果你想要更流畅的动画,请考虑使用CSS3转换,那些是硬件加速的浏览器,它对我来说也是非常好的。我认为一个问题是,jQuery动画并不是在所有设备上都是硬件加速的(正如gary所说),所以它们在更便宜的系统和移动设备上可能非常落后。我推荐这样的东西。它用jQuery语法制作CSS动画,非常流畅。小提琴工作正常,因为没有页面加载和垂直菜单。我在问题中提出了动画抖动的原因。请改用css转换。我觉得你的小提琴很流畅,你的幻灯片菜单里有什么?如果你想要更流畅的动画,请考虑使用CSS3转换,那些是硬件加速的浏览器,它对我来说也是非常好的。我认为一个问题是,jQuery动画并不是在所有设备上都是硬件加速的(正如gary所说),所以它们在更便宜的系统和移动设备上可能非常落后。我推荐这样的东西。它用jQuery语法制作CSS动画,非常流畅。小提琴工作正常,因为没有页面加载和垂直菜单。我在问题中提出了动画抖动的原因。请改用css转换。那太好了。当点击div之外的任何地方时,是否有类似于折叠div的操作。在链接点击后,菜单仍在折叠我在chrome浏览器中没有遇到过。。您使用的是哪种浏览器?请试一试小提琴检查最后一把小提琴。它具有点击外部关闭功能,幻灯片位于母版中。页面加载在同一主控中的iframe中。这就是为什么会有闪光和塌陷的原因吗。当点击div之外的任何地方时,是否有类似于折叠div的操作。菜单仍在折叠