2013-11-28 60 views
4

我试图保留div s的文本位于父元素中间的循环中。当只有一个报价div时,这工作正常。一旦我有一个以上,他们骑自行车,他们似乎左对齐。jquery cycle - center divs

http://jsfiddle.net/k8UvP/

$(document).ready(function() { 
    $('#txtRotate').cycle({ 
     fx: 'scrollRight', 
     timeout: 3, 
     cleartypeNoBg: true 
    }); 
}); 

回答

2

嗨,我找到了一些解决方案,为您提供:

  • 一个改变你的风格和直接的风格你a标签:

    第一你需要设置width100% ---为什么我使用!important因为th e插件仅在开始时根据窗口大小创建新的width内联样式,使用此功能,您甚至可以调整窗口大小。

    #txtRotate { 
        width: 100% !important; 
    } 
    .quoteRotate { 
        width: 100% !important; 
    } 
    

    其次你里面的元素设置widthmargin

    .quoteRotate a, .quoteRotate .author { 
        display:block; 
        width:600px; 
        margin:auto; 
    } 
    

    看到这里演示http://jsfiddle.net/k8UvP/25/

  • 第二个选择,我可以建议是利用这个添加 - 中我发现http://jquery.malsup.com/cycle2/demo/center.php

+0

谢谢,这个解决方案为我工作。 – user1110562

1

一种方式做到这一点是改变像这样的scrollRight作用,围绕使用left:50%一半宽度的负margin-left和改变txtRotate

left位置的子元素
$(document).ready(function() { 
    $('#txtRotate').cycle({ 
     fx: 'scrollRight', 
     timeout: 900, 
     cleartypeNoBg: true 
    }); 
    $('.quoteRotate').css({'left':'50%', 'margin-left':'-300px'}); 
}); 

$.fn.cycle.transitions.scrollRight = function($cont, $slides, opts) { 
    $cont.css('overflow','hidden'); 
    opts.before.push($.fn.cycle.commonReset); 
    var w = $cont.width(); 
    opts.cssFirst = { left: 0 }; 
    opts.cssBefore= { left: -w, top: 0 }; 
    opts.animIn = { left: "50%" }; 
    opts.animOut = { left: 2*w }; 
}; 

Updated jsFiddle

您可能还想使用text-align:centerquoteRotate中心对齐文本

+0

在一个侧面说明,你应该把更长的超时,很难就循环 –

+2

这不是他的要求之前把它读完了。他希望报价集中在页面上。试着调整窗口的大小,你会发现报价的容器确实与页面相关。 – kei

+0

是超时只是临时的例子。真实网站会有更长的超时时间。 – user1110562

1

这是你想要实现的? http://jsfiddle.net/MPt73/

#txtRotate { 
    font-family:'Montserrat', sans-serif; 
    width: 100%; 
    height: 160px; 
    text-align:center; 
} 
+0

否我需要整个div(.quoteRotate)居中父div 。 – user1110562

+0

'.quoteRotate { width:600px; height:160px; margin-left:auto; margin-right:auto; font-size:22px; color:#000000; vertical-align:middle; }' 增加了最后一行“vertical-align:middle;”这是在中间对齐div的一种方法。 – Ekin

+0

这不起作用。 – user1110562

0

我添加了一些颜色来识别。 嗯,我认为在.quoteRotate中使用百分比更好。

.quoteRotate { 
    position: absolute; 
    width: 60%; 
    height: 160px; 
    margin-right: 20%; 
    margin-left: 20%; 
    font-size: 22px; 
    color: #000000; 
    background: #f2f2f2; 
    display: block; 
} 

在小提琴看看: http://jsfiddle.net/k8UvP/5/

+0

增加窗口大小,你会看到发生了什么 – DaniP

+0

是的,它并不总是居中取决于浏览器的大小。看起来jQuery循环在应用时覆盖了一些CSS,但我不知道为什么或者什么。 – user1110562