iOS中的jquery打开/关闭div背景(不应该)适用于所有桌面浏览器

时间:2013-06-19 01:42:30

标签: jquery css3 mobile

在我正在处理的网站上,我有按钮“.page-about”和“.page-contact”展开div以显示内容。如果div已展开并且您单击另一个按钮,则会淡入和淡出内容。这很简单。

这适用于台式机。在我的iPhone上,div最初会很好地扩展,但是如果它已经展开并且另一个按钮被点击,它会关闭div背景颜色,然后在内容转换时立即重新开启(它是渐变)。内容完美地淡入淡出,这只是出于某种原因给我带来麻烦的背景。这是javascript:

$('.page-about').click(function(e) {
    e.preventDefault();
    if ($('#bb').hasClass('expand')) {
        if (contactvisible()){
            $('#contact-p').removeClass().addClass('contact-hid');
            $('#about-p').removeClass().addClass('about-vis');
        } else {
            $('#bb').removeClass('expand');
        }
    } else {
        $('#contact-p').removeClass().addClass('hidden');
        $('#about-p').removeClass().addClass('show');
        $('#bb').addClass('expand');
    }                   
});

$('.page-contact').click(function(e) {
    e.preventDefault();
    if ($('#bb').hasClass('expand')) {
        console.log(aboutvisible());
        if (aboutvisible()){
            $('#about-p').removeClass().addClass('about-hid');
            $('#contact-p').removeClass().addClass('contact-vis');
        } else {
            $('#bb').removeClass('expand');
        }
    } else {
        $('#about-p').removeClass().addClass('hidden');
        $('#contact-p').removeClass().addClass('show');
        $('#bb').addClass('expand');
    }                   
});

function aboutvisible(){
    if ($('#about-p').hasClass('about-vis') || $('#about-p').hasClass('show')) {
        return true;
    } else {
        return false;
    }
}

function contactvisible(){
    if ($('#contact-p').hasClass('contact-vis') || $('#contact-p').hasClass('show')) {
        return true;
    } else {
        return false;
    }
}

正在添加/删除的类只是改变不透明度。它们还附加了CSS3过渡。任何人都可以帮我弄清楚为什么会发生这种情况? CSS都没有触及它。

这是HTML:

<div class="bottom-border" id="bb">
    <h1>Hi, my name is <span>Blank.</span></h1>
<div id="about-p" class="about-vis">
    <p>Filler text here</p>
    <p>more filler text</p>
</div>
<div id="contact-p" class="contact-vis">
    <p>This is how you can contact me</p>
        <div><i class="ss-icon">email</i><i class="ss-icon">dribbble</i><i class="ss-icon">twitter</i></div>
</div>
</div>

为了澄清,内容过渡正常,但由于某种原因,它影响了包含div(#bb)的背景。

这里也是CSS:

#about-p, #contact-p {
position: absolute;
width: 100%;
}

.about-hid, .contact-hid {
opacity: 0;
-webkit-transition: opacity .35s ease;
-moz-transition: opacity .35s ease;
    -ms-transition: opacity .35s ease;
    -o-transition: opacity .35s ease;
transition: opacity .35s ease;
}

.about-vis, .contact-vis {
opacity: 1;
-webkit-transition: opacity .35s ease;
-moz-transition: opacity .35s ease;
    -ms-transition: opacity .35s ease;
    -o-transition: opacity .35s ease;
    transition: opacity .35s ease;
}

.hidden {
    opacity: 0;
}

.show {
    opacity: 1;
}

1 个答案:

答案 0 :(得分:0)

您的课程没有背景颜色,对吧。试试这个css,

.class {
    background-color: transparent !important;
}