防止从周围激活菜单

时间:2015-06-30 05:32:57

标签: javascript jquery html css

我有一个菜单,其中包含一系列动画,可通过单击元素或将鼠标悬停在其上来激活(悬停:更改不透明度,单击:突出显示单击的元素,菜单移动到左侧,分隔符淡入) 。但是,所有这些活动都可以通过点击菜单和任何地方来激活。无论如何要解决它?

JSFIDDLE:https://jsfiddle.net/8740qte8/

HTML:

<div id="logo" class="logo" ><img src="logo.png"/></div>


        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>   
        <div id="menu" class="menu">
        <ul class="headlines">
             <li id="item1"><button>AAAAAAAA</button></li>
            <li id="item2"><button>BBBBBBB</button></li>
            <li id="item3"><button>CCCCCCCC        </button></li>
            <li id="item4"><button>DDDDDDD         </button></li>
            <li id="item5"><button>EEEEEEEE EEE.   </button></li>
            <li id="item6"><button>FFFFFFFFF       </button></li>
            <li id="item7"><button>GGGGGGGGG       </button></li>
<!--                  <li> <input type="button" value="animation" OnClick="checklist(this)"> </input>
  </li>-->
        </ul>
        </div>


      <div id="container">
          <div class='container'>
<div id="first" class="inner-container">
<div class="ism-slider">
  <ol>
    <li>
      <div id="item11" class="item"> <a name="item11"></a>
       <div class="content">

                <img id="image1" src="http://placehold.it/350x150" />
                <img id="image2" src="http://placehold.it/350x150" />
                <img id="image3" src="http://placehold.it/350x150" />
                <img id="image4" src="http://placehold.it/350x150" />
                <img id="image5" src="http://placehold.it/350x150" />
                <img id="image6" src="http://placehold.it/350x150" />
                <img id="image7" src="http://placehold.it/350x150" />
                <img id="image8" src="http://placehold.it/350x150" />
                <img id="image9" src="http://placehold.it/350x150" />
                <img id="image10" src="http://placehold.it/350x150" />
            </div>
        </div>
    </li>
    <li>
      <div id="item11" class="item"> <a name="item11"></a>
       <div class="content">
                <img id="image1" src="http://placehold.it/350x150" />
                <img id="image2" src="http://placehold.it/350x150" />
                <img id="image3" src="http://placehold.it/350x150" />
                <img id="image4" src="http://placehold.it/350x150" />
                <img id="image5" src="http://placehold.it/350x150" />
                <img id="image6" src="http://placehold.it/350x150" />
                <img id="image7" src="http://placehold.it/350x150" />
                <img id="image8" src="http://placehold.it/350x150" />
                <img id="image9" src="http://placehold.it/350x150" />
                <img id="image10" src="http://placehold.it/350x150" />
            </div>
        </div>
    </li>
    <li>
     <div id="item11" class="item"> <a name="item11"></a>
       <div class="content">
                <img id="image1" src="http://placehold.it/350x150" />
                <img id="image2" src="http://placehold.it/350x150" />
                <img id="image3" src="http://placehold.it/350x150" />
                <img id="image4" src="http://placehold.it/350x150" />
                <img id="image5" src="http://placehold.it/350x150" />
                <img id="image6" src="http://placehold.it/350x150" />
                <img id="image7" src="http://placehold.it/350x150" />
                <img id="image8" src="http://placehold.it/350x150" />
                <img id="image9" src="http://placehold.it/350x150" />
                <img id="image10" src="http://placehold.it/350x150" />
            </div>
        </div>
    </li>
  </ol>
</div>
</div>
</div>
</div>

CSS:

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
ol, ul {
    list-style: none;
}
html {
    background-color: #FFFFFF;
    -webkit-font-smoothing: antialiased;

}

body.no-vscroll {
    overflow-y:hidden;
}

body {
    background-color: #ffffff;
    font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 16px;
    line-height: 1.5em;
    color: #545454;
    background-color: #ffffff;
    text-align: center;
    max-width:1600px; 
    overflow-y: scroll;
}
h1, h2, h3, h4, h5, h6 {
    color: #222;
    font-weight: 600;
    line-height: 1.3em;
}
h2 {
    margin-top: 1.3em;
}
.custom-class {
    text-align: right;
    margin-top:-115px;
    margin-right: 26px;
    font-family:"verdana";

}
a {
    color: #000000;
    text-decoration: none;
}
b, strong {
    font-weight: 600;
}
samp {
    display: none;
}
img {
    -webkit-animation: colorize 2s cubic-bezier(0, 0, .78, .36) 1;
    animation: colorize 2s cubic-bezier(0, 0, .78, .36) 1;
    background: transparent;
    border-style:none;
    border-radius: 4px;
    display: block;
    margin: 1.3em auto;
    max-width: 95%;
}
.logo {
    text-align: center;
    margin-top:40px;
}
li {
    list-style-type: none;
    font-size: 1.5em;
    padding-top: 8px;
    text-align:center;
    border-style: none;
}


.menu li {
    position: relative;
    top: 180px;
    left: 0px;
}
#item7 {
    transition: opacity .8s, left .8s ease-out;
    -moz-transition: opacity .8s, left .8s ease-out;
    -webkit-transition: opacity .8s, left .8s ease-out;
    -o-transition: opacity .8s, left .8s ease-out;
    margin-left:105px;
}
#item6 {
    transition: opacity 1s, left 1s ease-out;
    -moz-transition: opacity 1s, left 1s ease-out;
    -webkit-transition: opacity 1s, left 1s ease-out;
    -o-transition: opacity 1s, left 1s ease-out;
    margin-left: 95px;
}
#item5 {
    transition: opacity 1.2s, left 1.2s ease-out;
    -moz-transition: opacity 1.2s, left 1.2s ease-out;
    -webkit-transition: opacity 1.2s, left 1.2s ease-out;
    -o-transition: opacity 1.2s, left 1.2s ease-out;
    margin-left: 60px;
}
#item4 {
    transition: opacity 1.4s, left 1.4s ease-out;
    -moz-transition: opacity 1.4s, left 1.4s ease-out;
    -webkit-transition: opacity 1.4s, left 1.4s ease-out;
    -o-transition: opacity 1.4s, left 1.4s ease-out;
    margin-left: 123px;
}
#item3 {
    transition: opacity 1.6s, left 1.6s ease-out;
    -moz-transition: opacity 1.6s, left 1.6s ease-out;
    -webkit-transition: opacity 1.6s, left 1.6s ease-out;
    -o-transition: opacity 1.6s, left 1.6s ease-out;
    margin-left: 113px;
}
#item2 {
    transition: opacity 1.8s, left 1.8s ease-out;
    -moz-transition: opacity 1.8s, left 1.8s ease-out;
    -webkit-transition: opacity 1.8s, left 1.8s ease-out;
    -o-transition: opacity 1.8s, left 1.8s ease-out;
    margin-left: 130px;
}
#item1 {
    transition: opacity 2s, left 2s ease-out;
    -moz-transition: opacity 2s, left 2s ease-out;
    -webkit-transition: opacity 2s, left 2s ease-out;
    -o-transition: opacity 2s, left 2s ease-out;
    margin-left: 117px;
}

#item1>button{background:none;border:none;outline:none;cursor:pointer;font-size: 1em;}
#item2>button{background:none;border:none;outline:none;cursor:pointer;font-size: 1em;}
#item3>button{background:none;border:none;outline:none;cursor:pointer;font-size: 1em;}
#item4>button{background:none;border:none;outline:none;cursor:pointer;font-size: 1em;}
#item5>button{background:none;border:none;outline:none;cursor:pointer;font-size: 1em;}
#item6>button{background:none;border:none;outline:none;cursor:pointer;font-size: 1em;}
#item7>button{background:none;border:none;outline:none;cursor:pointer;font-size: 1em;}

.permahover li {
    opacity: 1;
    left: -33%;
}

.headlines li {
    font-size:1.5em;
    color:#000000;
    transition: all 0.5s;
    cursor: pointer;
}
.headlines:hover li, .headlines.active li {
    /* PARENT HOVER */
    opacity:0.4;
    cursor: pointer;
    /* Dim all */
}
.headlines li:hover, .headlines li.active {
    /* SINGLE HOVER */
    opacity: 1;
    /* Max one */
    color:#000000;
    cursor: pointer;
}

#first
{   display: none;
    width: 50%;
    height: 220px;
    margin:auto;
    padding-left: 170px;
    margin-top: 2px;

}
#first img 
{
     height: 100px;
    width: 100px;
    float:left;
    margin-right: 5%;
    cursor: pointer;
}

#second
{
    display: none;
    width: 50%;
    height: 220px;
    margin:auto;
    padding-left: 170px;
    margin-top: -215px;

}
#second img 
{
    height: 100px;
    width: 100px;
    float:left;
    margin-right: 5%;
    cursor: pointer;
}

#third
{
    display: none;
    width: 50%;
    height: 220px;
    margin:auto;
    padding-left: 150px;
    margin-top: -215px;

}
#third img 
{
    height: 100px;
    width: 100px;
    float:left;
    margin-right: 5%;
    cursor: pointer;
}



@-webkit-keyframes colorize {
    0% {
        -webkit-filter: grayscale(100%);
    }
    100% {
        -webkit-filter: grayscale(0%);
    }
}

@keyframes colorize {
    0% {
        filter: grayscale(100%);
    }
    100% {
        filter: grayscale(0%);
    }
}

}

<!-- slider css-->

#wrapper {
    width: 10%;
    padding: px 0;

}

#slider-container {
    padding: 20px 50px;
    height: 1350px;
    top:-18%;
    left: -20px;
    width: 600px;
    overflow: hidden;
    position: relative;
}

.slider-view-area {

    max-height: 300px;

}

#nav img {
    position: absolute;
    top: 20px;
    cursor:pointer;
    color:grey;
    width:40px;
    height:30px;


}
#prev {
    margin-left: 540px;
    font-size: 10px;

}
#next {
    right: -40px;
    margin-top: 13px;

}

#mask {
    width: 5000px;
    height: 100%;

}

.item {
    width: 1200px;
    height: 100%;
    float: left;

}
.content img {
    height: 100px;
    width: 17%;
    float:left;
    margin-right:  10px;
    margin-bottom: 10px;
    cursor: pointer;
}
.content {
    width: 50%;
    height: 220px;
    top: 30px;
    left: 
    margin: auto;

    position: relative;
}
.content a {
    position: relative;
    top: -17px;
    left: 170px;
}
.selected {
    background: #fff;
    font-weight: 700;
}
.clear {
    clear:both;
}

.hidden {
    display: none;
}

JQUERY:

  $(document).on('click','#item1', function()
{ 
    $("#container").fadeOut(1000, function(){
        $(".inner-container").hide();
        $("#first").show();
        $("#container").fadeIn(1000);
    });

});


    $(".menu").on("click", function () {
  $(".menu").addClass('permahover');

});


        var $li = $('.headlines li').click(function() {
    var state = !$(this).hasClass('active');
    $(this).parent().toggleClass('active', state);

    $li.removeClass('active');
    $(this).toggleClass('active', state);
});

1 个答案:

答案 0 :(得分:0)

问题在于链接的大小。我没有看到原因(主要是因为我不打算阅读所有的CSS),但是如果你能找到导致词语填充的内容,你将解决问题。