我做了一个网站http://www.chitarrastudio.com/,你可以在顶部看到两把吉他,一把经典吉他和一把吉布森吉他。
我想实现一个效果:当鼠标悬停时,一把吉他或其他的滑下来,向上完全出现(点击它,有一个链接)。
简而言之,它与网站上许多菜单的效果相同:就像这里一样,传递“Perhier”。 http://www.onextrapixel.com/examples/cool-menu/。
我做了一个网站http://www.chitarrastudio.com/,你可以在顶部看到两把吉他,一把经典吉他和一把吉布森吉他。
我想实现一个效果:当鼠标悬停时,一把吉他或其他的滑下来,向上完全出现(点击它,有一个链接)。
简而言之,它与网站上许多菜单的效果相同:就像这里一样,传递“Perhier”。 http://www.onextrapixel.com/examples/cool-menu/。
我不同意这里的所有答案,因为这只能用 CSS 来完成。
img {
position:relative;
top:-100px;
-webkit-transition: all 0.5s;
-moz-transition: all 0.5s;
-ms-transition: all 0.5s;
-o-transition: all 0.5s;
transition: all 0.5s;
}
img:hover {
top:0;
}
小提琴:
您可以简单地使用转换属性。看看这个codepen.io 笔
/* Extra */
body{
width: 100vw;
height: 100vh;
font-family: sans-serif;
}
.center{
width:100%;
height:100%;
display:flex;
justify-content:center;
align-items:center;
gap: 25px;
}
.frame{
padding: 5px;
border: 1px solid #ff1;
border-radius: 5px;
}
.card .title{
text-align:center;
}
/* Hover Scroll Effect */
.frame{
width:300px;
height:300px;
overflow: hidden;
}
.frame img{
object-fit: cover;
width:100%;
transform: translateY(0);
transition: 2s ease-out;
}
.frame:hover img {
object-fit: cover;
width:100%;
/* Considering frame height */
transform: translateY(calc(-100% + 300px));
transition: 2s ease-out;
}
/*OR */
/* .frameimg:hover{
object-fit: cover;
width:100%;
transform: translateY(-100%);
transition: 2s ease-out;
} */
/* With background image */
.bg-image{
width: 100%;
height: 100%;
background-repeat: no-repeat;
background-size: cover;
background-image: url(https://source.unsplash.com/500x1500/);
transition: background-position 2s ease-out;
}
.frame:hover .bg-image{
background-position: 0 100%;
}
<div class="center">
<div class="card">
<div class="frame">
<img src="https://source.unsplash.com/500x1500/" alt="">
</div>
<div class="title">
<h3>Made with img tag</h3>
<p>You need to consider frame height</p>
</div>
</div>
<div class="card">
<div class="frame">
<div class="bg-image"></div>
</div>
<div class="title">
<h3>made with background image</h3>
<p>Make <code/>background-position: 0 100%</code> on hover</p>
</div>
</div>
</div>
用 jquery 尝试这样的事情:
示例:小提琴
JS:
$(document).ready(function() {
$("img").hover(
function () {
$(this).stop().animate({
top: '0px'
}, 'slow');
},
function () {
$(this).stop().animate({
top: '-100'
}, 'slow');
});
});