【问题标题】:jQuery Fade Slider - remove defined height?jQuery Fade Slider - 删除定义的高度?
【发布时间】:2013-08-19 09:45:00
【问题描述】:

我正在我正在构建的网站上实现一个 jQuery Fade Slider,尽管定义高度会给我带来一些问题。

我使用以百分比定义的列作为它们各自的宽度,col-25 = 宽度的 25%。我的图像放置在一个名为 .img-holder 的类中,其中宽度设置为 100%。截至目前,当使用淡入淡出滑块时,图像高度在我的屏幕上的宽度和高度都很好,但是当缩小到较小的屏幕时,定义的高度显然会变得有问题,因为我在图像和段落文本上有左/右箭头导航以下。我不想通过我的 css 中的 @media 查询为每个屏幕变化使用不同的定义高度。有没有办法使用滑块而不必为其定义高度?

我的 CSS 当前如下所示:

.img-holder { background: #EEE; overflow:auto; position:relative; width:100%}
.col { float:left }
.col .img-holder { width:100%; height:auto; margin-bottom:14px; margin-top:5px }

.fades-demo { position:relative; width:100%; height: 100% !important; margin-left:auto; margin-right:auto; -webkit-transition: 0.5s; -moz-transition: 0.5s; -ms-transition: 0.5s; -o-transition: 0.5s; transition: 0.5s; }

我的标记:

<div class="col col-50">
<div class="img-holder">
    <div class="mgtb fades-demo hide" id="fades1">

        <div>
        <img src="/001.jpg" width="" height="" alt="" class="" />
        </div>

        <div>
        <img src="/002.jpg" width="" height="" alt="" class="" />
        </div>

        <div>
        <img src="/003.jpg" width="" height="" alt="" class="" />
        </div>

    </div>

</div>
</div>

JS

<script>
//scripts
$(document).ready(function() {


//initUI
initUI()

//init slider 1
var defaults = {
    speed: 800
    ,timer: 4000
    ,autoSlider: false
    ,hasNav: true
    ,pauseOnHover: true
    ,navLeftTxt: ''
    ,navRightTxt: ''
    ,zIndex:20
}
,as = $('#fades1').fadeSlider(defaults)
,count = 2

//destroy
$('#o-btn-des').click(function() {
    as.destroy()
})

//resize wrapper
$('#o-btn-cs').click(function() {
    $('#fades1').css({
        position:'fixed'
        ,left:0
        ,top:0
        ,width:'100%'
        ,height:'100%'
        ,'z-index': 300
    })
    as.defs.speed = 1000
})

//resize wrapper
$('#o-btn-ns').click(function() {
    var t = '<div class="fades-demo mgtb" id="fades' + ++count +'">' +
    ($('#fades1 .fade-slides').length?$('#fades1 .fade-slides').html():$('#fades1').html()) +
    '</div>'
    $('#wrapper').append(t)
    $('#fades' + count).fadeSlider(defaults)
})
})

</script>

【问题讨论】:

    标签: javascript jquery css responsive-design


    【解决方案1】:

    尽管答案似乎为时已晚。遇到此问题的其他人可能想尝试一下我创建的 jquery-fade-slider 插件。

    文档可以通过http://jqueryfadeslider.com访问,演示可以在http://jqueryfadeslider.com/demo查看

    【讨论】:

      【解决方案2】:

      我认为:

      .fades-demo { height: auto !important; }
      .fades-demo img { max-width: 100%; width: 100%; height: auto; }
      

      会工作得很好。当然,这假设您使用的滑块不会通过浮动/定位从正常流程中删除所有图像,这会导致容器自身塌陷。如果图像的纵横比是恒定的并且您事先知道,则有许多解决方案。或者在容器中隐藏可见的图像:隐藏只是为了保持正确的纵横比是另一种解决方案。在不知道您正在使用哪个推子/滑块的情况下,很难进一步帮助您。如果上述方法不起作用,请尝试设置 jsFiddle。

      【讨论】:

      • 自动高度不起作用,我可能错了为什么,但我认为这与它位于一个浮动元素的 .col 类中有关。
      • 浮动并不重要,但您使用的滑块可能会将图像从正常的 html 流中取出,可能会将它们放在彼此的顶部。如果所有其他方法都失败了,您可以随时尝试将滑块切换到已经响应的滑块:flexslider.woothemes.com
      • 感谢您的澄清。我实际上使用的是在html5beta 找到的滑块。我也会研究一下flexslider。我以前没有遇到过那个。非常感谢!
      猜你喜欢
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      • 2018-03-02
      • 2015-12-12
      • 2017-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多