下拉选项在一段时间后以浅色显示

时间:2016-06-08 09:20:52

标签: javascript jquery html css magento

如果您访问右上角的here,我们可以看到र - INR.

一旦我们悬停在它上面,它将以正常颜色显示选项。没关系。

enter image description here

如果您将鼠标移开并再次悬停一段时间,如果您有时会重复此操作,

将显示浅色选项:

enter image description here

PHTML

<div class="form-language">
    <ul id="select-language" title="<?php echo $this->__('Currency') ?>" class="dropDownMenu">
        <li><a href=""><?php echo $selCurrency ?></a>
        <ul>
            <?php echo $lis ?>
        </ul>
        </li>
    </ul>
</div>
<?php endif; ?>

js

jQuery(document).ready(function () {
        jQuery('#select-language li').hover(function() {
            jQuery(this).children('ul').stop(true, false, true).fadeToggle(300);
        });
    });

CSS

.menuBackground {
    background: brown;
    text-align: center;
}
.dropDownMenu a {
    color: #FFF;
}
.dropDownMenu,
.dropDownMenu ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.dropDownMenu li {
    position: relative;
    width: 120px;
    text-align:left;
}
.dropDownMenu a {
    padding: 10px 20px;
    display: block;
    text-decoration: none;
}
.dropDownMenu a:first-child { 
color: #000; 
font-weight:bold;
}

.dropDownMenu > li {
    display: inline-block;
    vertical-align: top;
    margin-left: -4px; /* solve the 4 pixels spacing between list-items */
}
.dropDownMenu > li:first-child {
    margin-left: 0;
}
.dropDownMenu ul {
    box-shadow: 2px 2px 15px 0 rgba(0,0,0, 0.5);
}
.dropDownMenu > li > ul {
    text-align: left;
    display: none;
    background: #FFFFFF;
    position: absolute;
    top: 100%;
    left: 0;
    width: 120px;
    z-index: 999999;
}

.dropDownMenu li a:hover {
    background: #ff7704; /*Your color*/
    color: #000; /*Your color*/
}

2 个答案:

答案 0 :(得分:1)

看看发生的事情是当你将鼠标悬停在它上面,你的功能运行以及谁正在使用fadeToggle(300)这会降低功能的速度。因此,如果您将鼠标悬停在元素上并稍后轻轻移除它,则不会出现此错误。

但你不应该这样做,所以你应该尝试使用这个

jQuery(document).ready(function () {
    jQuery('#select-language li').hover(function() {
        jQuery(this).children('ul').fadeIn();
    }, function(){
        jQuery(this).children('ul').fadeOut();
    });
});

答案 1 :(得分:1)

我认为你必须以这种方式改变这一行:

jQuery(this).children('ul').stop(true, true).fadeToggle(300);