私は、ホバー上に表示されるオーバーレイを使用して円の形の画像を作成しようとしています。ただし、以下のスニペットに示すように、ホバー(およびクリック)の「ヒットボックス」は間違っています。オーバーフロー:Chromeのborder-radiusで非表示になっています
この問題はChromeでのみ発生するようです(Safariについてはわからない)。 私はsomefixesがインターネット上に見つかりましたが、どれも働いていませんでした。JSFiddle for testing
$(document).ready(function() {
\t $(".circle").click(function() {
\t \t alert($(this).attr("id"));
\t });
});
#canvas {
\t width: 100%;
\t padding-bottom: 75%;
\t position: relative;
\t overflow: hidden;
\t background-color: #eee;
}
.circle {
\t position: absolute;
\t width: 25%;
\t padding-bottom: 25%;
\t border-radius: 50%;
\t top: 50%;
\t left: 50%;
\t transform: translate(-50%, -50%);
\t overflow: hidden;
\t cursor: pointer;
\t /*https://stackoverflow.com/a/32987370/5532169*/
\t -webkit-backface-visibility: hidden;
\t -moz-backface-visibility: hidden;
\t /*https://stackoverflow.com/a/25206004/5532169*/
\t z-index: 1;
\t /*https://stackoverflow.com/a/10296258/5532169*/
\t -webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);
\t /*https://stackoverflow.com/a/16878347/5532169*/
\t -webkit-mask-image: -webkit-radial-gradient(circle, white, black);
}
.mid {
\t width: 100%;
\t height: 100%;
\t position: absolute;
}
.inner {
\t width: 100%;
\t height: 100%;
\t position: relative;
}
.inner>* {
\t position: absolute;
\t top: 0;
\t bottom: 0;
\t left: 0;
\t right: 0;
\t width: 100%;
\t height: 100%;
}
.hover {
\t background-color: rgba(255, 255, 255, 0.6);
\t opacity: 0;
\t transition: opacity 0.5s;
}
.hover:hover {
\t opacity: 100;
\t transition: opacity 0.5s;
}
span {
\t position: absolute;
\t top: 50%;
\t left: 50%;
\t transform: translate(-50%, -50%);
\t width: 72%;
\t text-align: center;
\t font-family: monospace;
\t font-size: 2em;
\t font-weight: bold;
\t color: #08f;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="canvas">
\t <div id="div1" class="circle">
\t \t <div class="mid">
\t \t <div class="inner">
\t \t \t <img src="https://dummyimage.com/320x320/000/fff" alt="">
\t \t \t <div class="hover">
\t \t \t \t <span>Hello World!</span>
\t \t \t </div>
\t \t </div>
\t \t </div>
\t </div>
</div>
編集:は、Firefox 57でテストは、問題なく動作します。 IEとEdgeはすでにテストされているので、Chrome/Webkit固有の問題です。
しかし、その後、なぜFirefoxは、IEは、エッジはこれを正しく処理できますか?私は実際にこれをWebKit固有のバグと主張する[multiple](https://stackoverflow.com/q/3248734/5532169)[sources](https://stackoverflow.com/q/9760692#comment16648543_9760859)を見つけました(とChrome)私は本当にJavaScriptでスタイリングの問題を解決する必要がありますか?可能であれば、いくつかのCSS修正を好むだろう。 – zypA13510