如果我想让图片在鼠标悬停时淡入,移开时滑动消失,该怎么做?
时间: 2024-09-15 10:13:16 浏览: 43
如果你想给图片添加更平滑的效果,比如淡入淡出以及滑动消失,可以稍微调整JavaScript部分。这里是一个带渐变动画的示例:
首先,更新CSS以添加过渡效果:
```css
.hidden-image {
opacity: 0;
transition: opacity 0.5s ease-in-out; /* 添加渐变动画 */
position: absolute; /* 让图片绝对定位以便于移动 */
transform-origin: center; /* 设置图片变换原点,使移动均匀 */
}
/* 添加滑动消失的样式,如向右滑动 */
.hidden-image.slide-off-right {
right: -100%; /* 初始位置在右侧完全隐藏 */
transition: right 0.5s ease-in-out;
}
```
然后,在JavaScript中添加额外的类以触发滑动消失效果:
```javascript
$(document).ready(function() {
$('.text').on('mouseover', function() {
var index = $(this).index();
$('.hidden-image').eq(index).stop()
.addClass('slide-on')
.one('transitionend', function() { $(this).removeClass('slide-on'); }); // 添加滑入类,并在动画结束时移除
});
$('.text').on('mouseout', function() {
var index = $(this).index();
$('.hidden-image').eq(index)
.addClass('slide-off-right') // 添加滑出类
.one('transitionend', function() { $(this).parent().find('.hidden-image').eq(index).remove(); }); // 移除并删除图片
});
});
// 附加CSS类以控制动画
$('.hidden-image').hover(
function() { $(this).addClass('slide-on'); },
function() { $(this).addClass('slide-off-right'); }
);
// 定义滑动进入和离开类
.slide-on {
opacity: 1;
right: 0%;
}
.slide-off-right {
opacity: 0;
right: -100%;
}
```
现在,当鼠标悬停时,图片会淡入;移开时,图片会向右滑动并从DOM中移除。
阅读全文