使连续的图像只出现在最后一个消失后,而悬停
Making consecutive images only appear after the last disappear while hovering
在我的一个小项目中,我有几个按钮,当悬停时显示另一个div中的图像。悬停第一个按钮后,当悬停第二个时,第一个图像仍然存在,两个图像都显示出来。
如果第二个图像只在第一个图像消失后出现,我该怎么办?
JavaScript代码:
$(".button").hover(function () {
var iN = $(this).attr("id").charAt(6);
$('#img'+ iN).fadeIn('slow');
},function() {
var iN = $(this).attr("id").charAt(6);
$('#img' + iN).fadeOut('slow');
});
我就是这样做的,但在您的用例中可能行不通。(如果没有,请在你的问题中添加更多细节。)
注意,这个例子使用jQuery的"starts with"选择器:^=
来重新隐藏所有ID以字母img
$('img').hide();
$(".button").hover(function () {
var iN = $(this).attr("id").charAt(6);
$('#img'+ iN).fadeIn('slow');
},function() {
$('[id^=img]').fadeOut();
});
div{height:100px;width:200px;border:1px solid orange;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="123456f" class="button">
<img id="imgf" src="http://placeimg.com/200/100/nature" />
</div>
<div id="kittenc" class="button">
<img id="imgc" src="http://placeimg.com/200/100/animals" />
</div>
这个解决方案对我来说非常有效。希望能有所帮助:).
$(document).ready(function(){
$(".button").hover(function(){
var buttonID = $(this).attr("id");
$("#image").attr('src', 'images/pic'+ buttonID+".jpg");
});
});
<script type = "text/javascript" src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<div id = "container">
<button id = "1" class = "button">Button1</button>
<button id = "2" class = "button">Button2</button>
<button id = "3" class = "button">Button3</button>
<button id = "4" class = "button">Button4</button>
</div>
<img id = "image" src="">
在这段代码中我们是:
- 使用
mouseenter
和mouseleave
事件。 - 使用
toggleClass()
控制<img>
的opacity
。 通过使用 - 使用
.eq()
将关联的img与按钮的索引位置匹配。 -
<img>
s的衰落过渡效果是由CSS属性opacity
和transition
完成的,它们被绑定到.on
和.off
类中。
index()
来确定按钮的位置,同步按钮触发的鼠标事件。片段
$('button').on('mouseenter mouseleave', function() {
var position = $(this).index();
$('#gallery').find('img').eq(position).toggleClass('on off');
});
body {
background: #CCC;
}
#gallery {
margin: 0 auto;
}
fieldset {
display: inline-block;
}
img.off {
opacity: 0;
transition: opacity .5s linear;
}
img.on {
opacity: 1;
transition: opacity .5s linear;
}
img:first-of-type {
margin-left: 17px;
}
button {
width: 75px;
line-height: 1.2;
font-size: 14px;
padding: 2px 5px;
border: 3px outset grey;
color: 0ee;
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section id='gallery'>
<img src='http://placehold.it/75x100/000/fff?text=1' class='off'>
<img src='http://placehold.it/75x100/00f/eee?text=2' class='off'>
<img src='http://placehold.it/75x100/0e0/111?text=3' class='off'>
<img src='http://placehold.it/75x100/f00/fff?text=4' class='off'>
<img src='http://placehold.it/75x100/fc0/000?text=5' class='off'>
<img src='http://placehold.it/75x100/fff/000?text=6' class='off'>
</section>
<fieldset>
<button>1</button>
<button>2</button>
<button>3</button>
<button>4</button>
<button>5</button>
<button>6</button>
</fieldset>
相关文章:
- 表追加而不附加最后一个元素
- 无法在Ionic select中预先选择最后一个选项
- 为什么画布形状只在3个画布中的最后一个画布上渲染
- Jquery append oly获取循环Rails中的最后一个elemen
- 如何创建更好的方式来维护基于我的代码访问的最后一个页面
- dataTables-如何自定义分页类型以显示最后一个页码后面的省略号,
- 多维关联数组的最后一个索引
- 无法获取vis.js最后一个或第一个选定的网络节点
- 循环以检查数组中的最后一个图像
- 从输入值中删除最后一个单词
- 尝试使用Javascript正则表达式来获取“&"分隔文本,无论它是否's是最后一个值
- 为什么这个正则表达式不't匹配最后一个字母数字字符
- 如何从多个复选框中获取最后一个值
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- 使用querySelector()获取最后一个td元素
- Foreach循环只返回最后一个值
- 通过将6个月添加到今天来获得最后一个月的日期's日期
- 如何使用JavaScript forloop从JSON中删除最后一个逗号
- 使连续的图像只出现在最后一个消失后,而悬停
- 当我添加最后一个滑块时,所有的jQuery UI效果都会消失