일부 HTML, CSS 및 jQuery 코드가 있습니다. 아이디어는 라디오 버튼이 체크되었을 때, div는 그 라디오 버튼의 왼쪽 위치로 수평으로 스크롤되어야한다는 것입니다.jQuery와 div가 정확한 위치로 스크롤 될 때 라디오 버튼 확인
문제가 있습니다. div가 radio8의 왼쪽 위치로 스크롤되면 라디오 버튼 radio8이 선택되어야하고 경고가 표시되어야합니다. 이것은 일어나지 않습니다.
var container = $('div'),
scrollTo = $('#td9');
container.animate({
scrollLeft: scrollTo.offset().left - container.offset().left + container.scrollLeft()
});
$('div > input').each(function() {
var radioInput = $(this);
if(radioInput.is(':checked')) {
$('div').animate({
scrollLeft: radioInput.offset().left - $('div').offset().left + $('div').scrollLeft()
}, 2000);
}
});
$('input[type=radio]').on('change', function() {
if($(this).is(':checked')) {
$('div').animate({
scrollLeft: $(this).offset().left - $('div').offset().left + $('div').scrollLeft()
}, 2000);
}
});
// the following does not work
container.scroll(function() {
if(container.scrollLeft() + container.width() == $('#td8').width()) {
$("#radio8").prop("checked", true)
alert("reached 8!");
}
});
div {
width: 100px;
height: 70px;
border: 1px solid blue;
overflow: auto;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<table id="my_table">
<tr>
<td id='td1'><input type="radio" name="distance" value="1" />111111</td>
<td id='td2'><input type="radio" name="distance" value="2" />222222</td>
<td id='td3'><input type="radio" name="distance" value="3" />333333</td>
<td id='td4'><input type="radio" name="distance" value="4" />444444</td>
<td id='td5'><input type="radio" name="distance" value="5" />555555</td>
<td id='td6'><input type="radio" name="distance" value="6" />666666</td>
<td id='td7'><input type="radio" name="distance" value="7" />777777</td>
<td id='td8'><input id="radio8" type="radio" name="distance" value="8" />888888</td>
<td id='td9'><input type="radio" name="distance" value="9" checked="checked" />999999</td>
</tr>
</table>
</div>
하지만 td8의 왼쪽 위치보다 스크롤바의 가로 위치가 더 큰지 어떻게 알 수 있습니까? – xms
@xms, 방금 대답했습니다! 위치가 **'td8'의 위치 이상인지 알고 싶다면'=='이 아닌'> = '비교 연산자를 사용해야합니다. 또한 수정 된 답변과 * ScrollSpy * 섹션을 확인하십시오. –