8

从某人那里得到了一个代码....

我喜欢的是让滑动 div 从右滑到左,我的意思是它把 div 隐藏到右边,然后慢慢地向左滑动 300px 宽度。

HTML

<a id="loginPanel">quote</a>
<div id="userNav">User Area</div>

CSS

#loginPanel {
    color: #000;
    cursor:pointer;
}

#userNav {
    width: 200px;
    height: 200px;
    display: none;
    background: #ff0000;
}

jQuery

// Open / Close Panel According to Cookie //    
if ($.cookie('panel') == 'open'){    
    $('#userNav').slideDown('fast');
} else {
    $('#userNav').slideUp('fast');
}

// Toggle Panel and Set Cookie //
$('#loginPanel').click(function(){        
    $('#userNav').slideToggle('fast', function(){
        if ($(this).is(':hidden')) {
            $.cookie('panel', 'closed');
        } else {
            $.cookie('panel', 'open');
        }
    });
});

请在这方面需要帮助。只是为了让 div 从右向左滑动

这是小提琴http://jsfiddle.net/7m7uK/195/

4

5 回答 5

14

您可以使用 jQueryUI 和附加效果Slide

http://docs.jquery.com/UI/Effects/Slide

例子:

$('#userNav').hide("slide", {direction: "left" }, 1000);
$('#userNav').show("slide", { direction: "right" }, 1000);

您不能使用 .slideToggle() 从左向右滑动,反之亦然,从http://api.jquery.com/slideToggle/

.slideToggle() 方法为匹配元素的高度设置动画。这会导致页面的下部向上或向下滑动,似乎显示或隐藏项目。如果元素最初被显示,它将被隐藏;如果隐藏,它将显示。

您应该尝试更改代码以实现此代码,但我认为如果您尝试使用@s15199d答案可能会比您不需要使用 jQueryUI 更好

好的,我创建了 jsfiddle,你必须包含 jQueryUI 才能工作,你有不同的滑动方向组合:

http://jsfiddle.net/7m7uK/197/

好的,用 cookie 创建了另一个小提琴

http://jsfiddle.net/7m7uK/198/

于 2013-03-27T12:44:27.840 回答
6

不依赖 JQuery-UI

您需要将<div>要滑动的内容放在 wrapper<div>中。然后将内容 div 的右边距设置为其负宽度。包装器的诀窍<div>是将其x-overflow设置为 hidden 以便隐藏内容<div>。然后,您可以使用 jQuery 的原生animate()例程将右边距设置为 0,以使内容<div>出现水平滑动效果。

HTML:

<div id="slider-wrapper">
    <div id="slider-content">
</div>

CSS:

#slider-wrapper {
    overflow-x: hidden;
}
#slider-content {
    width:         300px;
    margin-right: -300px;
}

JavaScript:

$("#slider-button").click(function () {
    $("#slider-content").animate({ "margin-right": 0 }, "slow");
});

这是一个使用句柄<div>展开和折叠 div 的演示:http: //jsfiddle.net/gingi/KUCaL/

于 2014-04-01T18:41:16.143 回答
3

从右到左和从左到右滑动 DIV

<div class="nav ">
       <ul>
        <li><a href="#">HOME</a></li>
        <li><a href="#">ABOUT</a></li>
        <li><a href="#">SERVICES</a></li>
        <li><a href="#">CONTACT</a></li>
       </ul>
   </div>

CSS:

/*nav*/
.nav{
    position: fixed;
    right:0;
    top: 70px;
    width: 250px;
    height: calc(100vh - 70px);
    background-color: #333;
    transform: translateX(100%);
    transition: transform 0.3s ease-in-out;

}
.nav-view{
    transform: translateX(0);
}

JS:

  $(document).ready(function(){
  $('a#click-a').click(function(){
    $('.nav').toggleClass('nav-view');
  });
});

http://www.themeswild.com/read/slide-navigation-left-to-right

于 2016-07-22T06:12:14.280 回答
0
$("#DivName").animate({"left": "-=300px", "opacity":1}, "slow");
于 2013-03-27T12:40:14.423 回答
-4

你试过这个吗?

if ($.cookie('panel') == 'open'){    
    $('#userNav').slideLeft('fast');
} else {
    $('#userNav').slideRight('fast');
}
于 2013-03-27T12:35:23.507 回答