我想让这个网站徽标向侧面滑动到用户悬停的按钮。所以,当我徘徊联系"面具"滑过那个按钮。
我有5个菜单按钮,中间按钮上有一个图像。我想移动图像,使其位于用户悬停的按钮上。
图片包含课程.logo
和身份#logoID
按钮具有ID #Btn1
,#Btn2
,#Btn3
,#Btn4
,#Btn5
。
按钮包含课程.BtnC1
,.BtnC2
,.BtnC3
,.BtnC4
,.BtnC5
。
我刚开始使用CSS,几乎不知道它。这是我到目前为止,我非常感谢任何帮助或指导......谢谢!
#Btn1:hover ~ #logoID .logo {
position: -100px
}
#Btn2:hover ~ #logoID .logo {
position: -50px;
}
#Btn3:hover ~ #logoID .logo {
position: 0px;
}
#Btn4:hover ~ #logoID .logo {
position: 50px;
}
#Btn5:hover ~ #logoID .logo {
position: 100px;
}
答案 0 :(得分:0)
以下是使用transform: translateX ();
#Btn1:hover #logoID {
transform: translateX(-100px);
}
#Btn2:hover #logoID {
transform: translateX(-50px);
}
#Btn3:hover #logoID {
transform: translateX(0px);
}
#Btn4:hover #logoID {
transform: translateX(50px);
}
#Btn5:hover #logoID {
transform: translateX(100px);
}
以下是translateX
的一些documentation。
当然,您必须将值修复为适合您的任何值。甚至使用百分比值也可能更适合您的响应式布局。
另请注意,您的~
选择器可能没有必要,您也可以使用类似#Btn1:hover #logoID {}
注意:如果您的徽标与按钮的徽标不同,则可能需要使用其他选择器:
#Btn1:hover > #logoID
。#Btn1:hover + #logoID
。#Btn1:hover #logoID
。答案 1 :(得分:0)
如果你想要流畅的动画,我建议你不要使用top。您可能希望使用css转换来实现这一点,因为它在桌面和移动设备上都是硬件加速(非常流畅)。特别是移动。
$(document).ready(function()
{
$('.txt').bind('mousedown touchdown', function()
{
$('.txt').css('transform','scale(1)');
goToMenu($(this));
});
});
function goToMenu(menu)
{
var menuOffset = menu.offset();
var x = menuOffset.left;
$(menu).css('transform','scale(1.4)');
$('.imgContainer').css('transform','translateX(' + x + 'px)');
}

.txt {
float:left;
font-size:20px;
margin-top:60px;
margin-left:30px;
cursor:pointer;
transition:all 0.5s;
user-select: none;
-webkit-user-select: none;
}
.imgContainer {
transform: translateX(30px);
transition:all 0.5s;
position:absolute;
background-image: url('https://cdn2.iconfinder.com/data/icons/windows-8-metro-style/128/car.png');
background-repeat: no-repeat;
background-position: center;
background-size: 50px 50px;
width:50px;
height:50px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='imgContainer'>
</div>
<div class='txt' id='menu1'>
Menu1
</div>
<div class='txt' id='menu2'>
Menu2
</div>
<div class='txt' id='menu3'>
Menu3
</div>
<div class='txt' id='menu4'>
Menu4
</div>
<div class='txt' id='menu5'>
Menu5
</div>
&#13;