【问题标题】:Sliding from right to left从右向左滑动
【发布时间】:2011-02-01 17:05:50
【问题描述】:

我正在尝试将面板从按钮的右侧滑到左侧。这是我的CSS:

style.css:

.pToolContainer {
    position : absolute;
    right: 0;
}
.btn-pTool{
    //display:block;
    position:absolute;
    right: 0;
    margin:0;
    padding:0;
    background-image: url(slide_button.png);
    background-repeat:no-repeat;
}
.btn-pToolName{
    text-align: center; 
    width: 26px; 
    height: 190px; 
    display: block; 
    color: #fff; 
    text-decoration: none;  
    font-family: Arial, Helvetica, sans-serif;  
    font-weight: bold; 
    font-size: 1em; 
    line-height: 32px; 
}
.pToolSlidePanel{
    min-height: 185px;
    min-width: 185px; /*WIDTH OF HIDDEN SLIDE PANEL*/ 
    display: none; /*THE ELEMENT WILL NOT BE DISPLAYED*/ 
    border-right-width: 2px; /*ADDS RIGHT BORDER OF 2PX*/ 
    border-left-width: 2px; /*ADDS LEFT BORDER OF 2PK*/ 
    border-right-style: solid; /*MAKES RIGHT BORDER SOLID*/ 
    border-left-style: solid; /*MAKES LEFT BORDER SOLID*/ 
    border-right-color: #626262; /*RIGHT BORDER COLOR*/ 
    border-left-color: #626262; /*LEFT BORDER COLOR*/ 
    background-color: #949494; /*SLIDE PANEL BACKGROUND COLOR*/ 
    border-bottom-width: 2px; /*ADDS BOTTOM BORDER OF 2PX*/ 
    border-bottom-style: solid; /*MAKES BOTTOM BORDER SOLID*/ 
    border-bottom-color: #626262;
    border-top-width: 2px; /*ADDS BOTTOM BORDER OF 2PX*/ 
    border-top-style: solid; /*MAKES BOTTOM BORDER SOLID*/ 
    border-top-color: #626262; /*BOTTOM BORDER COLOR*/ 
    opacity: .8; /*SETS SLIDE PANEL BACKGROUND'S OPACITY TO 80%*/ 
    margin: auto; /*CENTERS OUR SLIDE PANEL*/ 
    position: fixed;
    //bottom: 50px;
    overflow:hidden;
}

test.html:

<div class="pToolContainer">
     <span class="btn-pTool">
         <a class="btn-pToolName" href="#"></a>
     </span>
     <div class="pToolSlidePanel"></div>
</div>

我尝试了以下 jquery 语句,但它似乎不起作用:

$(pToolSlidePanel).animate({width:'toggle'},2000);

其中 pToolSlidePanel 是在我的 javascript 文件中创建的 HTMLElement:

var pToolSlidePanel = document.createElement("div");

我也尝试过以下教程http://www.learningjquery.com/2009/02/slide-elements-in-different-directions,但我不断收到错误消息,指出 HTMLElement 没有 css 方法

【问题讨论】:

  • 我在下面用一个工作示例更新了我的答案。

标签: javascript jquery css slide


【解决方案1】:
        $(function() {
            var iXS = 3, $slider = $('.panel-inner'), liW = $slider.find('li:first').width(), liFW = parseInt(liW * $slider.find('li').length);
            $slider.css('width', liFW + 'px');
            $('.button a').click(function() {
                var left = (this.id == 'right') ? parseInt($slider.css('left').toString().replace('-', '')) : parseInt($slider.css('left'));
                var side = (this.id == 'right') ? (((left + (liW * iXS)) == liFW) ? 0 : -(left + liW)) : ((left < 0) ? -(parseInt(left.toString().replace('-', '')) - liW) : 0);
                rotate(side);
                return false;
            });
            var rotate = function(leftY) {
                $slider.stop(true, true).animate({
                    left : leftY
                }, 500);
            }
        });

完整代码请查看演示示例的源代码。

【讨论】:

    【解决方案2】:

    试试这个

    $(".pToolSlidePanel").animate({width:'toggle'},2000);
    

    对于pToolSlidePanel类,使用$(".pToolSlidePanel")

    例如:id pToolSlidePanel 使用$("#pToolSlidePanel")

    【讨论】:

    • 好吧 pToolSlidePanel 已经是一个 HTMLElement 所以我放“。”并不重要。在它面前与否。我已经创建了 pToolSlidePanel 使用: var pToolSLidePanel = document.createElement("p")...
    【解决方案3】:

    编辑:在这里试试这个配置 http://jsfiddle.net/TQZh5/50/

    我删除了一些 CSS 以使其更容易,但将其重新添加应该很简单。

    $(pToolSlidePanel).animate({width:'toggle'},2000);
    

    应该是

    $('.pToolSlidePanel').animate({width:'toggle'},2000);

    另外,你将动画动作绑定到什么? jQuery 是否包含在 ready() 函数中以便知道 DOM 已完全加载?

    【讨论】:

    • 那么 jquery 被包装在一个函数中,该函数被加载到 html 文件中。
    【解决方案4】:

    想要将元素从位置 A(右)滑动到 B(左)?

    HTML:

    <div class="pToolContainer">
        <div class="pToolSlidePanel">
        </div>
    </div>
    

    CSS:

    .pToolContainer {
        width:400px;
        height:100px;
        background-color:#ccc;
        position:relative;
    }
    .pToolSlidePanel
    {
        position:absolute;
        right:0;
        top:0;
        width:100px;
        height:100px;
        background-color:#ffcc33;
    }
    

    Javascript (jQuery):

    $('.pToolSlidePanel').animate({
        left: '-=200'
      }, 2000);
    

    【讨论】:

      猜你喜欢
      • 2010-10-10
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多