jquery - 无法使用 CSS + jQuery 设置左侧

标签 jquery css

我正在尝试使用基于 http://www.queness.com/post/923/create-a-simple-infinite-carousel-with-jquery 的 JQuery 实现轮播. 它几乎可以正常工作。只有当我向左和向右滑动时,我才不会回到我的初始位置。通过调试我发现我的 ul 元素中没有设置左集。代码:

Javascript

var container = $('#calendarContainer ul');
var moveWidth = container[0].clientWidth / 3;
var currentIndent = container.position().left;


if (event.type == "swipeleft") {
   $('#calendarContainer ul').css('left', currentIndent - moveWidth);
}
if (event.type == "swiperight") {
   $('#calendarContainer ul').css('left', currentIndent + moveWidth);
}

HTML

<div id="calendarContainer" >
    <ul>
        <li id ="calendarDivLeft">
            <fieldset id="calendarWeekGridLeft" class="ui-grid-a"></fieldset>
        </li>
        <li id ="calendarDiv" >
            <fieldset id="calendarWeekGrid" class="ui-grid-a"></fieldset>
        </li>
        <li id="calendarDivRight">              
            <fieldset id="calendarWeekGridRight" class="ui-grid-a"></fieldset>
        </li>
    </ul>
</div>

CSS

#calendarContainer ul 
{
     width : 300%;
     list-style: none;
     padding:0px;
     left : 0%;
     position:relative;
     margin: 0px;
     padding: 0px;
 }

 #calendarContainer ul li
 { 
     width: 33.333%; 
     float:left;   
     position:relative;
     margin: 0px;
     padding: 0px;
 }

例如,如果当前左边为 5,我向左移动 594px,我希望左边为 -589。 相反,我得到了 585 的左转!如果我向右移动 595,左边变成 605 而不是 600。

这怎么可能?

最佳答案

试试这个:

$('#calendarContainer ul').css('left', function(index, oldValue){
    var newValue = oldValue - moveWidth;
    return newValue;
});

css() function 可以接受一个函数,其参数是集合中元素的索引和被引用属性的当前值。只需在此函数中进行数学计算并返回新值即可。

关于jquery - 无法使用 CSS + jQuery 设置左侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8666840/

相关文章:

javascript - 如何在 setTimeout() 函数中使用 $(this) 访问 asp 控件

javascript - 如果超过计数,则停止可拖动对象进入可排序对象

javascript - 如何将表单数据从 jQuery 获取到 ASP.NET Controller ?

javascript - 将 n 层嵌套对象转换为数组

javascript - 单击按钮后如何更改颜色按钮

html - 简单的 CSS 旋转器元素在旋转时摇摆不定

css - 来自兄弟父 div 的子选择器使用 css 实现悬停效果

html - 信息框内溢出 :hidden container should be visible outside

javascript - HTML 5 的 <picture> 延迟加载(没有 jquery)

html - 位置div在底部