0
我嘗試使用Javascript來實現CSS3轉換,以便在鼠標未結束時灰顯圖像<img>
並在鼠標位於其上時用顏色呈現。CSS3轉換在div或圖像上效果不佳
這裏是我的代碼片段:
// Create container for image of simulation
var containerImage = document.createElement('div');
containerImage.className = 'wrap';
elementBodyContent.appendChild(containerImage);
// Create text for imageElement
var textElement = document.createElement('div');
textElement.className = 'text-over-image';
textElement.innerHTML = 'Click to raise simulation';
containerImage.appendChild(textElement);
// Create image of simulation
var imageElement = document.createElement('img');
imageElement.className = 'contrast';
imageElement.width = 700;
imageElement.height = 381;
imageElement.style.cursor = 'pointer'
imageElement.cursor = 'hand';
imageElement.src = 'http://ghujisl.com/Scene.png';
imageElement.onload = function() {
containerImage.insertBefore(imageElement, textElement);
};
及相關的CSS:
img.contrast
{
filter: contrast(0.3);
-webkit-filter: contrast(0.3);
-moz-filter: contrast(0.3);
-o-filter: contrast(0.3);
-ms-filter: contrast(0.3);
-webkit-transition: all 0.3s ease-in-out;
-moz-transition: all 0.3s ease-in-out;
-o-transition: all 0.3s ease-in-out;
-ms-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
}
img.contrast:hover
{
filter: contrast(1);
-webkit-filter: contrast(1);
-moz-filter: contrast(1);
-o-filter: contrast(1);
-ms-filter: contrast(1);
-webkit-transform: scale(1.1);
-moz-transform: scale(1.1);
-o-transform: scale(1.1);
transform: scale(1.1);
}
.wrap {
height:auto;
margin: auto;
text-align:center;
position:relative;
}
.text-over-image {
position: absolute;
margin: auto;
cursor: pointer;
top: 0;
left:0;
right:0;
bottom:0;
color:#fff;
height:100px;
}
但不幸的是,轉變工作不正常。一旦我在圖像上,有時會使用contrast filter
,有時候不會。此外,當鼠標停留在圖像上時,如果我停下並重新開始移動鼠標,總是在圖像上方,起始圖像渲染返回(我再次獲得灰色圖像,而鼠標仍在圖像上)。
您可以在[下一個鏈接] [1]上測試這種奇怪的行爲。
我在Firefox 52和Chrome Version 57.0.2987.133上做過這些測試。
如果有人可以看到有什麼問題,最好給我看看。
非常感謝,這是訣竅! – youpilat13