[英]How to change the function of top level links on small screens with Foundaton 6?
[英]Change hover function to click on small screens
我有一些文本內容出現在圖像的 hover 上。 但是在手機版中,我需要改為點擊打開function。
<div class="program prog-image" style="background-image: url(https://imagevars.gulfnews.com/2019/07/23/Timberwolf_16c1de35555_base.jpg)">
<div class="more-details">
<ul>
<li>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Odit, voluptates.</li>
<li>Lorem ipsum dolor sit amet.</li>
</ul>
</div>
</div>
<style>
.program{
height: 400px;
width: 700px;
position: relative;
}
.more-details{
opacity: 0;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
ul{
list-style: none;
}
.program:hover .more-details{
opacity: 1;
}
</style>
我的意思是我希望它看起來像帶箭頭的手風琴。 任何人都可以幫忙嗎?
使用:focus
。 確保帶有.program
class 的元素支持:focus
偽 class。 您可能需要使用<a>
標簽而不是<div>
。 不確定<div>
是否有:focus
state。
.program:hover .more-details,
.program:focus .more-details {
opacity: 1;
}
或者你可以使用js
var elements = document.querySelectorAll(".program");
elements.forEach((el) => {
el.addEventListener('click', function(event) {
el.classList.toggle('open')
})
})
並稍微修改你styles
.program:hover .more-details,
.program.open .more-details {
opacity: 1;
}
我認為你應該使用 JavaScript。 這是我的解決方案:
const temp = document.querySelector(".prog-image"); const details = document.querySelector(".more-details"); const showText = () =>{ console.log("W"); details.classList.toggle("detail"); } temp.addEventListener("click",showText); temp.addEventListener("mouseover",showText); temp.addEventListener("mouseout",showText);
<div class="program prog-image" style="background-image: url(https://imagevars.gulfnews.com/2019/07/23/Timberwolf_16c1de35555_base.jpg)"> <div class="more-details"> <ul> <li>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Odit, voluptates.</li> <li>Lorem ipsum dolor sit amet.</li> </ul> </div> </div>
.detail{
opacity: 1;
}
請按照上面的代碼..
HTML
<div class="program">
<div class="prog-image" style="background-image: url(https://imagevars.gulfnews.com/2019/07/23/Timberwolf_16c1de35555_base.jpg)">
<div class="more-details">
<ul>
<li>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Odit, voluptates.</li>
<li>Lorem ipsum dolor sit amet.</li>
</ul>
</div>
</div>
</div>
css
.program{
height: 400px;
width: 700px;
position: relative;
}
.prog-image {
background-size: cover;
height: 100%;
}
ul{
list-style: none;
}
.more-details {
opacity: 0;
position: absolute;
left: 0px;
right: 0px;
top: 50%;
}
@media only screen and (min-width: 768px) {
.more-details{
left: 50%;
transform: translate(-50%, -50%);
}
.program:hover .more-details{
opacity: 1;
}
}
@media only screen and (max-width: 767px) {
.program{
width: 100%;
}
.prog-image.content-show .more-details {
opacity: 1;
}
}
JQuery
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('.prog-image').click(function() {
jQuery(this).toggleClass("content-show");
});
});
</script>
將 jquery 添加到您的代碼中:
$(".program").click(function () {
$(".more-details").css("opacity", 1);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.