2017-06-14 71 views
0

我正在使用transform:translateY();將文本懸停在兩張圖像上。使用CSS轉換屬性將文本懸停在圖像上

問題是這種方法不允許我將文本放置在圖像的特定部分上。

理想情況下,我希望能夠將文本更多地移動到左側或右側。目前我只能上下移動文本。

替代方法建議始終歡迎。

代碼在下面,這裏是一個codepen - (將圖像懸停在屏幕上,因爲我沒有包含媒體查詢)。

HTML

<div class="projects"> 

      <div class="art-project1"> 
      <img class="img-img" src="https://static.standard.co.uk/s3fs-public/thumbnails/image/2014/12/16/08/138188934.png" width="600" height="400" /> 
      <p class="project-description1">Get Involved</p> 
      </div> 

      <div class="art-project2"> 
      <img class="img-img" src="http://i.huffpost.com/gadgets/slideshows/343100/slide_343100_3557153_free.jpg" width="600"height="500" /> 
      <p class="project-description2">Be Apart</p> 
      </div> 
     </div> 

CSS

body { 
background-color:#f5f5dc; 
} 

* { 
    box-sizing: border-box; 
} 

p { 
    color: #3232CD; 
    font-weight:bold; 
    font-size: 2rem; 
} 

.projects { 
    margin-left: auto; 
    margin-right: auto; 
    display: inline-block; 
} 
/* Images -------------------*/ 
.img-img { 
    padding-top: 80px; 
    display: block; 
    margin-left: auto; 
    margin-right: auto; 
    max-width: 100%; 
    height: auto; 
} 

.art-project1 { 
    display: inline-block; 
    vertical-align: middle; 
    margin-left: 20%; 
    margin-right: auto; 
    max-width: 100%; 
    height: auto; 
} 

.art-project2 { 
    display: inline-block; 
    vertical-align: middle; 
    margin-left: -20%; 
    margin-right: auto; 
    margin-top:10%; 
    max-width: 100%; 
    height: auto; 
} 

.project-description1 { 
    position:absolute; 
    color: #3232CD; 
    visibility: hidden; 
    opacity: 0; 
    transform:translateY(-1000%); 
} 
.art-project1:hover .project-description1 { 
    visibility: visible; 
    opacity: 1; 
    -o-transition:.5s; 
    -ms-transition:.5s; 
    -moz-transition:.5s; 
    -webkit-transition:.5s; 
    /* ...and now for the proper property */ 
    transition:.70s; 
} 

.project-description2 { 
    position:absolute; 
    color: #3232CD; 
    visibility: hidden; 
    opacity: 0; 
    transform:translateY(-400%); 
} 

.art-project2:hover .project-description2 { 
    visibility: visible; 
    opacity: 1; 
    -o-transition:.5s; 
    -ms-transition:.5s; 
    -moz-transition:.5s; 
    -webkit-transition:.5s; 
    /* ...and now for the proper property */ 
    transition:.70s; 
} 
+0

_「理想情況下,我希望能夠將文本向左或向右移動的自由度,此刻我只能上下移動文本。」_ - 並且您是否嘗試過想想'translateY'中的'Y'代表第二個...? – CBroe

+0

@CBroe是的,我有。你是否想要hel p或只是添加一個居高臨下的評論? –

+0

那麼你的實際問題是什麼?與'translateY'相同,您可以將元素「移動」到Y軸,'translateX'允許您在X軸上執行相同的操作,或者使用'translate'同時在兩個方向上執行操作。如果你知道這一點,那麼請解釋一下如何不適合你。 – CBroe

回答

2

嘗試使用translate();)

希望這有助於!

+1

謝謝,我的印象是,只有'translateY()'或'translateX()' 才能完成工作:) –

0

如果您在某個元素上使用position: absolute,則首先需要給它的父容器position relative。然後,你可以簡單地使用topleft(或bottomright參數絕對元素位置,用百分比或像素值 - 無需transform: translate在所有的(除非你需要準確定心)

body { 
 
background-color:#f5f5dc; 
 
} 
 

 
* { 
 
    box-sizing: border-box; 
 
} 
 

 
p { 
 
    color: #3232CD; 
 
    font-weight:bold; 
 
    font-size: 2rem; 
 
} 
 

 
.projects { 
 
    margin-left: auto; 
 
    margin-right: auto; 
 
    display: inline-block; 
 
} 
 
/* Images -------------------*/ 
 
.img-img { 
 
    padding-top: 80px; 
 
    display: block; 
 
    margin-left: auto; 
 
    margin-right: auto; 
 
    max-width: 100%; 
 
    height: auto; 
 
} 
 

 
.art-project1 { 
 
    position: relative; 
 
    display: inline-block; 
 
    vertical-align: middle; 
 
    left: 20%; 
 
    max-width: 100%; 
 
    height: auto; 
 
} 
 

 

 
.project-description1 { 
 
    position:absolute; 
 
    top: 15%; 
 
    left: 6%; 
 
    color: #3232CD; 
 
    visibility: hidden; 
 
    opacity: 0; 
 
} 
 
.art-project1:hover .project-description1 { 
 
    visibility: visible; 
 
    opacity: 1; 
 
    -o-transition:.5s; 
 
    -ms-transition:.5s; 
 
    -moz-transition:.5s; 
 
    -webkit-transition:.5s; 
 
    /* ...and now for the proper property */ 
 
    transition:.70s; 
 
} 
 

 
    -moz-transition:.5s; 
 
    -webkit-transition:.5s; 
 
    /* ...and now for the proper property */ 
 
    transition:.70s; 
 
}
<div class="projects"> 
 

 
      <div class="art-project1"> 
 
      <img class="img-img" src="https://static.standard.co.uk/s3fs-public/thumbnails/image/2014/12/16/08/138188934.png" width="600" height="400" /> 
 
      <p class="project-description1">Get Involved</p> 
 
      </div>