HTML Onclick不适用于负z-index

时间:2015-05-24 03:10:32

标签: javascript jquery html css

我在我的图片部分放置了negative z-index属性,以防止它与导航栏重叠,导致hyperlinks无法正常运行。解决了这个问题之后,我意识到我幻灯片的左右按钮不起作用。是否有任何帮助使按钮能够即使使用negative z-index ?我在下面粘贴的所有代码都是必要的。

HTML

<div id="container">
    <header>
        <h1><b>Seattle</b>&Metropolitan</h1>
        <nav>
            <ul>
                <li><a href="about.html">About</a></li>
                <li>Buildings</li>
                <li id="contact">Contact Us</li>
            </ul>
        </nav>
    </header>
</div>
<div class="image-section">
    <img src="img/seattleskyline.jpg" alt="Seattle Skyline" id="center-image" />
    <div id="caption"><div id="caption-text">A panoramic view of 1201 Third Avenue at night</div></div>
    <button id="sliderLeft" onclick="left();"></button>
    <button id="sliderRight" onclick="right();"></button>
</div>
<br><br>
<div class="content">
    Seattle's history can be traced back to the 1850s, when pioneers and natives started building a great city filled with a diverse culure, beautiful scenery, and a vibrant enviornment. The metropolitan area of Seattle now is a high-tech hub, in which four Fortune 500 companies reside: <a href="http://www.amazon.com/" alt="Amazon Website"><b>Amazon.com (#49)</b></a>, <a href="http://www.starbucks.com" alt="Starbucks Website"><b>Starbucks (#208)</b></a>, <a href="http://shop.nordstrom.com" alt="Nordstrom Website"><b>Nordstrom (#227)</b></a>, and <a href="http://www.expeditors.com" alt="Expeditors Website"><b>Expeditors International (#428)</b></a>. 
</div>

CSS

@charset "utf-8";

#container
{
    width: 75%;
    margin-left: auto;
    margin-right: auto;
}

header h1
{
    font-size: 38px;
    float: left;
    font-weight: 100;
}

header nav ul
{
    list-style-type: none;
    margin: 0;
    vertical-align: middle;
    line-height: normal;
    float: right;
    z-index: 999;
}

header nav ul li
{
    line-height: 105px;
    display: inline;
    padding: 45px;
    font-size: 22px;
    font-weight: 100;
}

header nav ul li a
{
    color: black;
    text-decoration: none;
}

#center-image
{
    width: 100%;
    height: 480px;
}

#contact
{
    padding-right: 0;
}

.image-section
{
    margin-left: auto;
    margin-right: auto;
    width: 75%;
    position: relative;
    text-align: center;

}

.image-section #caption
{
    position: absolute;
    display: none;
    bottom: 4px;
    width: 100%;
    text-align: center;
    color: white;
    background: #474747;
    height: 50px;
    line-height: 50px;
    opacity: 0.8;
    font-size: 20px;
}

.image-section button
{
    outline: 0;
}

.image-section #sliderLeft
{
    position: absolute;
    display: none;
    width: 25px;
    height: 100px;
    top: 50%;
    margin-bottom: 50px;
    left: 0;
    opacity: 0.7;
    filter: alpha(opacity=70);
    border: 0;
}

.image-section #sliderRight
{
    position: absolute;
    display: none;
    width: 25px;
    height: 100px;
    top: 50%;
    margin-bottom: 50px;
    right: 0;
    opacity: 0.7;
    filter: alpha(opacity=70);
    border: 0;
}

JS

var images = ["img/seattleskyline.jpg", "img/spaceneedle.jpg", "img/ferriswheel.jpg"]
var captions = ["A panoramic view of 1201 Third Avenue at night", "The Seattle's landmark Space Needle", "The Iconic Great Wheel"]
var index = 0;

function left() {
    index -= 2;

    if (index < 0) {
        index = images.length;
    }

    changeImage();
}

function right() {
    changeImage();
}

function changeImage() {
    index++;
    if (index > images.length - 1) {
        index = 0;
    }
    var targetImage = document.getElementById("center-image");
    var caption = document.getElementById("caption-text");

    $("#center-image").fadeOut(1000, function() {
        targetImage.src = images[index];
        $("#center-image").fadeIn(1000);
    });

    $("#caption-text").fadeOut(1000, function() {
        caption.innerHTML = captions[index];
        $("#caption-text").fadeIn(1000);
    });
}

$(document).ready(function() {
    $("#sliderRight").fadeIn(1000);
    $("#sliderLeft").fadeIn(1000);
    $("#caption").fadeIn(1000);
    setInterval(changeImage, 7000);
});

2 个答案:

答案 0 :(得分:3)

z-indexpositionrelativeabsolute时生效,因此如果您想将其与css

一起使用

按以下方式添加position: relative;,以便z-index生效

header nav ul
{
    position: relative;
    z-index: 9999;
}

.image-section
{
    position: relative;
}
.image-section #sliderLeft
{
    z-index: 999;
}

.image-section #sliderRight
    z-index: 999;
}

Correct CodePen

答案 1 :(得分:1)

CSS的{​​{1}}更改为:

header nav ul

Working jSfiddle