悬停时更改 div 宽度的最佳方法
Best way to change div width on hover
这个作品集网站的创建者是如何制作出如此炫酷的图像效果的?
http://www.adhamdannaway.com/
我目前正在训练自己学习更高级的东西,但我遇到了这种效果。
我的做法是制作一个宽度为1280px的容器(1280px是img的宽度)。制作了 2 张图像,一张是彩色的,另一张是黑白的。 2 divs width a width 50% and float left, float fight.正确的看起来不正确,所以我使用了这个:background-position: top right 并且它起作用了。即使在更大的屏幕尺寸上,它们也能完美居中。但问题就出在这里。当我将鼠标悬停在左侧 div 时,我该如何做到这一点 div 的宽度变为 100%。另一个 div 也是如此。
我知道我可以通过#div:hover 然后将宽度设置为 100% 并修复图像在 z-index 上方的问题,但这只会在我悬停时发生,但不会在我悬停时发生。很明显,因为它在 :hover 上。但我目前不知道如何以 better/right 方式执行此操作。
我已将代码放在 jsfiddle 上。net/aLyde6pa/ 但由于某些原因它不起作用。
我可能解释得太多了,但我希望你们能帮助我。
提前致谢!
ps: 英语不是我的主要语言。 :)
好吧,学习更多技能总是很棒,但是您甚至可以不使用 JS,通过使用 CSS 悬停效果来添加悬停效果。
大体看起来像这样:
#img1 {
width: 50px;
height: 50px;
}
#img1:hover {
width: 75px;
height: 75px;
}
有点懒惰或 hacky 的方式,但它工作正常,并且在学习开发的早期阶段更容易。
您也可以使用像这样的 jquery 插件(只需更改图像的文本并编辑属性)
http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_event_hover
http://www.geekality.net/2010/08/26/jquery-nice-and-smooth-hover-effect/
是的,使用 CSS 您可以使用 "Transition" 执行类似的操作,但不像示例中那样动画,因为您受限于 CSS 在悬停时可以更改的内容。
据我所知,您不能在悬停元素之前更改元素(如果我错了请纠正我)
这是一个简单的例子(https://jsfiddle.net/9510a6kj/):
HTML
<div class="left"></div>
<div class="right"></div>
CSS
.left, .right{
float:left;
}
.left{
background: red;
width: 200px;
height: 300px;
transition: width 1s ;
}
.right{
background: blue;
width: 300px;
height: 300px;
transition: width 1s;
}
.left:hover{
width: 300px;
}
.left:hover + .right{
width: 100px;
}
也许这有帮助
Transiton 将 "animate"(更多延迟)宽度从 A 变为 B
干杯
这个作品集网站的创建者是如何制作出如此炫酷的图像效果的? http://www.adhamdannaway.com/
我目前正在训练自己学习更高级的东西,但我遇到了这种效果。
我的做法是制作一个宽度为1280px的容器(1280px是img的宽度)。制作了 2 张图像,一张是彩色的,另一张是黑白的。 2 divs width a width 50% and float left, float fight.正确的看起来不正确,所以我使用了这个:background-position: top right 并且它起作用了。即使在更大的屏幕尺寸上,它们也能完美居中。但问题就出在这里。当我将鼠标悬停在左侧 div 时,我该如何做到这一点 div 的宽度变为 100%。另一个 div 也是如此。
我知道我可以通过#div:hover 然后将宽度设置为 100% 并修复图像在 z-index 上方的问题,但这只会在我悬停时发生,但不会在我悬停时发生。很明显,因为它在 :hover 上。但我目前不知道如何以 better/right 方式执行此操作。
我已将代码放在 jsfiddle 上。net/aLyde6pa/ 但由于某些原因它不起作用。
我可能解释得太多了,但我希望你们能帮助我。
提前致谢!
ps: 英语不是我的主要语言。 :)
好吧,学习更多技能总是很棒,但是您甚至可以不使用 JS,通过使用 CSS 悬停效果来添加悬停效果。
大体看起来像这样:
#img1 {
width: 50px;
height: 50px;
}
#img1:hover {
width: 75px;
height: 75px;
}
有点懒惰或 hacky 的方式,但它工作正常,并且在学习开发的早期阶段更容易。 您也可以使用像这样的 jquery 插件(只需更改图像的文本并编辑属性)
http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_event_hover http://www.geekality.net/2010/08/26/jquery-nice-and-smooth-hover-effect/
是的,使用 CSS 您可以使用 "Transition" 执行类似的操作,但不像示例中那样动画,因为您受限于 CSS 在悬停时可以更改的内容。 据我所知,您不能在悬停元素之前更改元素(如果我错了请纠正我)
这是一个简单的例子(https://jsfiddle.net/9510a6kj/):
HTML
<div class="left"></div>
<div class="right"></div>
CSS
.left, .right{
float:left;
}
.left{
background: red;
width: 200px;
height: 300px;
transition: width 1s ;
}
.right{
background: blue;
width: 300px;
height: 300px;
transition: width 1s;
}
.left:hover{
width: 300px;
}
.left:hover + .right{
width: 100px;
}
也许这有帮助
Transiton 将 "animate"(更多延迟)宽度从 A 变为 B
干杯