jQuery ベースのカルーセルを作成する必要があります。カルーセル アイテムにカーソルを合わせると、そのすぐ上に関連するポップアップ div が表示されます。
このポップアップ div は、カルーセル ラッパーの外側に表示されるように配置する必要がありますが、ホバーされたカルーセル アイテムの上の x 軸に沿った位置を維持します。その結果、ポップアップ div をカルーセル アイテム内に配置したので、CSS のトップ属性をマイナスにして絶対に配置できますが、カルーセル アイテムに対して相対的です。
ページの読み込み時にすべてのカルーセル アイテムが表示されないように、オーバーフロー:hidden をカルーセルに適用する必要があるという問題に遭遇しましたが、ホバー時に表示する必要があるときにポップアップ div が切り取られます。
カルーセル ラッパーの CSS で次を使用してみましたが、これは機能しませんでした。オーバーフローのように動作するだけでした。
overflow-x: hidden;
overflow-y: auto;
また
overflow-x: hidden;
overflow-y: visible;
caroufredsel プラグインを使用した JSFiddle の例を提供しました。この例では、わかりやすいように、ホバーするのではなく、ポップアップ div の例を常に表示するようにしています。テキストが表示され、赤い div の上部が切り取られます。
http://jsfiddle.net/melon/jRp2r/9/
頭に浮かんだ 1 つの解決策は、ポップアップ div をカルーセル ラッパーの外側にマークアップすることでした。しかし、ホバリングされているカルーセル アイテムとどのアイテムがホバリングされていたかを基準にして、どこに配置/表示するかを理解する際に問題が発生します。この道をたどる前に、他のアイデア、おそらくもっと良いアイデアがあるかどうかを確認したかった.
誰かが私が概説した目標を達成するための方向性を私に与えることができれば、CSS またはおそらくいくつかのカスタム JS を介して素晴らしいでしょう.
ありがとうございます。
アップデート:
受け入れられた解決策は、カルーセルがページの中央にある場合、ページをスクロールするときにポップアップ div が Y 軸に沿って同じ位置にとどまらないことを意味していました。
私は最初の解決策を受け入れられた答えと融合させました。カルーセルの外側に別の div を作成し、そこにホバーしたカルーセル アイテムのポップアップ HTML を入力しました。次に、Jquery を使用してこれを完全に再配置します。次のコード例は、私の問題を解決しました。
$('.carousel_item').mouseenter(function() {
var $this = $(this);
var posLeft = ($this.offset().left);
var posTop = ($this.offset().top);
//Pop up height
var popHeight = ($('.popup', this).height());
//Turn into negative number
posTop = Math.abs(popHeight) * -1;;
var popup_html = $('.popup', $this).html();
$('#outside_popup').html(popup_html).css({
top: posTop,
left: posLeft
}).fadeIn('fast');
}).mouseleave(function() {
$('#outside_popup').fadeOut('fast');
});