简体   繁体   English

淡入淡出 <div> 在收音机上和/或选择选项被选中

[英]fadeIn/fadeOut <div> on radio and/or select option being selected

I cannot find a perfect solution for this. 我找不到完美的解决方案。 Is there a simple way to fadeIn the ".filter_on" div, if I click on a select option and/or radio button? 如果我单击选择选项和/或单选按钮,是否有一种简单的方法可以淡入淡入".filter_on" div?

And by default, get this div to fade out again afterwards? 默认情况下,让此div之后再次消失吗?

My fiddle 我的小提琴

<div class="filter">
Filter <span class="filter_on">active</span>
</div>

<form>
    <p>Vehicle?</p>
     <select name="vehicle" size="2">
        <option>Bike</option>
        <option>Car</option>
     </select>
</form>

<form>
    <p>City?</p>
        <input type="radio" id="all" name="city" value="All" checked>
        <label for="all"> All</label></input>
        <input type="radio" id="ny" name="city" value="New York">
        <label for="ny"> New York</label></input>
        <input type="radio" id="mh" name="city" value="Manhattan">
        <label for="mh"> Manhattan</label></input>
</form>

You don't need to fadeOut since you cannot unselect from drop-down or cannot uncheck the radio button. 由于您无法从下拉菜单中取消选择或无法取消选中单选按钮,因此您无需fadeOut

$('select, :radio').on('change', function() {
    if ($('select option:selected').length === 0 && $(':radio:checked').val() === 'All') {
        $('.filter_on').fadeOut();
    } else {
        $('.filter_on').fadeIn();
    }
}).trigger('change');

trigger will execute this function automatically. trigger将自动执行此功能。 Will fadeIn on the page load. 将在页面加载时fadeIn

Demo: https://jsfiddle.net/tusharj/vyd7a2s8/1/ 演示: https : //jsfiddle.net/tusharj/vyd7a2s8/1/

Demo -> http://jsfiddle.net/vyd7a2s8/4/ 演示-> http://jsfiddle.net/vyd7a2s8/4/

var defaultRadio = $(':radio:checked');
var defaultVehicle = $('[name=vehicle] option:selected');
$('[name=vehicle],[name=city]').on('change', function (e) {
    var currentRadio = $(':radio:checked');
    var currentVehicle = $('[name=vehicle] option:selected');

    if (currentRadio[0].isEqualNode(defaultRadio[0]) && currentVehicle[0].isEqualNode(defaultVehicle[0])) {
        $('.filter_on').fadeOut(500);
    } else {
        $('.filter_on').fadeIn(500);
    }
});

Explanation - This will store the default selected values outside the function and uses them inside the click event to check the newly selected values. 说明 -这会将默认选择的值存储在函数外部,并在click事件中使用它们来检查新选择的值。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM