エラー コンテナーを動的に作成し、本文に追加して、エラーが発生した要素に配置します。ユーザーがスクロールするまで、これはうまく機能します。エラー コンテナーは同じ固定位置にとどまり、要素はバックグラウンドで画面からスクロールします。スクロールイベント中にエラー要素を再配置して、スクロールするようにするにはどうすればよいですか?
エラーコンテナがどのように見えるかを示すスクリーンショット。ユーザーがスクロールするときにコンテナを再配置してスクロールし、目的の要素にとどまるようにする必要があります。現在、固定位置に留まっています。
さて、エラーがスクロールできる位置にあるとき。正しく表示されることに注目してください。
ページがスクロールされた後、エラーが元の要素にとどまらなくなったことに注意してください。スクロール中に要素の新しい位置でこの要素を正しく再配置する必要があります。
前もって感謝します!
コードなしで質問に答えるのが難しいことはわかっていますが、これは会社のものなので注意する必要があります。
ここでは、使用しているテンプレートの jsViews パッケージの一部として、「validation.js」ライブラリ内にコンテナーをビルドします。
buildContainer: function(ev)
{
var $targetElem = $(ev.target),
leftX = $targetElem.offset().left,
topY = $targetElem.offset().top,
widthY = $targetElem.outerWidth(),
heightX = $targetElem.outerHeight();
var msg = $targetElem.closest("label").val();
var appendingContainer = null;
$targetElem.closest("label").val('');
return $('<div/>', {
html: '<ul>' + this.isValid + '</ul><span></span>',
'class': 'validation-tooltip-error',
css: {
top: topY - heightX,
left: leftX + widthY - 20
}
}).appendTo("body");
}
エラー コンテナの CSS は次のとおりです。
.validation-tooltip-error { 位置: 絶対; 幅: 自動; Z インデックス: 9999999999; }
.validation-tooltip-error ul
{
padding: 0;
margin: 0;
font-family: Helvetica, Arial, sans-serif;
font-size: 12px;
font-weight: bold;
text-align: left;
color: #eeeeee;
background: #a9502a;
padding: 10px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
list-style: none;
line-height: 16px;
-moz-box-shadow: 0 -2px 4px #666666;
-webkitbox-shadow: 0 -2px 4px #666666;
box-shadow: 0 -2px 4px #666666;
}
.validation-tooltip-error span
{
display: block;
width: 0;
height: 0;
border-left: 0 solid transparent;
border-right: 15px solid transparent;
border-top: 10px solid #a9502a;
border-top: 10px solid #a9502a;
border-bottom: 0;
margin-left: 10px;
}
うまくいけば、それは少し役立ちます。