将 SVG 文件与悬停组合时,链接不起作用
Links don't work when combining SVG files with hovers
我正在努力实现以下目标
- 悬停时文本和 svg 文件移动
- 悬停时颜色反转。
- 打开link
这是我的html:
btn_ol
class 有 <a>
和 <span>
(带有对象 svg)
<div class="btn_ol">
<a href="http://google.com/" target="_blank"></a>
<span>Google<object class=ol_svg data="../assets/images/common/icon_ol.svg" type="image/svg+xml"></object></span>
</div>
这是我的 css:
.btn_ol {
padding: 2.3rem 1.8rem;
border: 2px solid #0c5a9d;
cursor: pointer;
width: 604px;
display: block;
margin: 35px auto;
outline: none;
vertical-align: middle;
text-align: center;
position: relative;
overflow: hidden;
background-color: transparent;
color: #0c5a9d;
transition: background-color 300ms ease-out;
z-index: 1;
}
.btn_ol:hover {
background: #0c5a9d;
border-color: #0c5a9d;
color: #fff;
}
.btn_ol a{
position: absolute;
display: block;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 2;
}
.btn_ol span {
display: inline-block;
position: relative;
font-size: 1.8rem;
margin: 0 auto;
transition: all 300ms ease-out;
will-change: transform;
font-weight: bold;
}
.btn_ol:hover span {
transform: translate3d(-1rem, 0, 0);
}
.btn_ol .ol_svg {
position: absolute;
margin: auto 5px;
top: 25%;
width: 1.1em;
right: -0.5rem;
opacity: 0;
transition: all 300ms ease-out;
will-change: right;
}
.btn_ol .ol_svg * {
stroke-width: 5;
}
.btn_ol:hover .ol_svg {
opacity: 1;
right: -3.5rem;
}
@media screen and (max-width: 720px) {
.btn_ol {
width: 100%;
padding: 2.3rem 1.1rem;
margin: 20px auto;
}
.btn_ol span {
line-height: 1.8rem;
font-size: 1.4rem;
}
.btn_ol .ol_svg {
top: 15%;
right: 0rem;
}
.btn_ol:hover .ol_svg {
right: -2.5rem;
}
}
在这个CSS中,我们正在努力实现以下目标
- 文本和 svg 文件在悬停时移动
- 悬停时颜色反转。
- 打开 link
PC没问题,发现SP站点运行有问题
在平板电脑上操作时,需要点击两次才能跳转link。第一次点击保持悬停,第二次点击打开 window.
显然我能够确认移除
.btn_ol:hover .ol_svg {
opacity: 1;
}
会在第一次点击时打开 link,但我不确定如何在保持 SVG 视图的同时实现它。
请帮助我:)
通常使用图像作为链接。不要忘记将它们附在您的标签中。
<div class="btn_ol">
<a href="http://google.com/" target="_blank">
<span>Google<object class=ol_svg data="../assets/images/common/icon_ol.svg" type="image/svg+xml"></object></span>
</a>
</div>
你可以试试这个代码。
<div class="btn_ol">
<a href="http://google.com/" target="_blank">
<span>
Google<img src="../assets/images/common/icon_ol.svg" type="image/svg+xml">
</span>
</a>
</div>
为我工作。
我正在努力实现以下目标
- 悬停时文本和 svg 文件移动
- 悬停时颜色反转。
- 打开link
这是我的html:
btn_ol
class 有 <a>
和 <span>
(带有对象 svg)
<div class="btn_ol">
<a href="http://google.com/" target="_blank"></a>
<span>Google<object class=ol_svg data="../assets/images/common/icon_ol.svg" type="image/svg+xml"></object></span>
</div>
这是我的 css:
.btn_ol {
padding: 2.3rem 1.8rem;
border: 2px solid #0c5a9d;
cursor: pointer;
width: 604px;
display: block;
margin: 35px auto;
outline: none;
vertical-align: middle;
text-align: center;
position: relative;
overflow: hidden;
background-color: transparent;
color: #0c5a9d;
transition: background-color 300ms ease-out;
z-index: 1;
}
.btn_ol:hover {
background: #0c5a9d;
border-color: #0c5a9d;
color: #fff;
}
.btn_ol a{
position: absolute;
display: block;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 2;
}
.btn_ol span {
display: inline-block;
position: relative;
font-size: 1.8rem;
margin: 0 auto;
transition: all 300ms ease-out;
will-change: transform;
font-weight: bold;
}
.btn_ol:hover span {
transform: translate3d(-1rem, 0, 0);
}
.btn_ol .ol_svg {
position: absolute;
margin: auto 5px;
top: 25%;
width: 1.1em;
right: -0.5rem;
opacity: 0;
transition: all 300ms ease-out;
will-change: right;
}
.btn_ol .ol_svg * {
stroke-width: 5;
}
.btn_ol:hover .ol_svg {
opacity: 1;
right: -3.5rem;
}
@media screen and (max-width: 720px) {
.btn_ol {
width: 100%;
padding: 2.3rem 1.1rem;
margin: 20px auto;
}
.btn_ol span {
line-height: 1.8rem;
font-size: 1.4rem;
}
.btn_ol .ol_svg {
top: 15%;
right: 0rem;
}
.btn_ol:hover .ol_svg {
right: -2.5rem;
}
}
在这个CSS中,我们正在努力实现以下目标 - 文本和 svg 文件在悬停时移动 - 悬停时颜色反转。 - 打开 link
PC没问题,发现SP站点运行有问题
在平板电脑上操作时,需要点击两次才能跳转link。第一次点击保持悬停,第二次点击打开 window.
显然我能够确认移除
.btn_ol:hover .ol_svg {
opacity: 1;
}
会在第一次点击时打开 link,但我不确定如何在保持 SVG 视图的同时实现它。
请帮助我:)
通常使用图像作为链接。不要忘记将它们附在您的标签中。
<div class="btn_ol">
<a href="http://google.com/" target="_blank">
<span>Google<object class=ol_svg data="../assets/images/common/icon_ol.svg" type="image/svg+xml"></object></span>
</a>
</div>
你可以试试这个代码。
<div class="btn_ol">
<a href="http://google.com/" target="_blank">
<span>
Google<img src="../assets/images/common/icon_ol.svg" type="image/svg+xml">
</span>
</a>
</div>
为我工作。