【发布时间】:2017-07-18 16:50:46
【问题描述】:
我有一个包含免责声明的 div,我想确保有人已经滚动到免责声明的底部,然后才能选中确认您已阅读免责声明的复选框。法务部 这是一个示例标记:
<div id="step2Disclaimer" style="height:50px;overflow-y:scroll">
<p class="l-twelve l-mb1 t-base t-left">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptate temporibus commodi sapiente culpa sunt iure veniam harum impedit architecto dolorem quam facilis, odio blanditiis beatae similique non voluptatibus at dolorum?</p>
<p class="l-twelve l-mb1 t-base t-left">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptate temporibus commodi sapiente culpa sunt iure veniam harum impedit architecto dolorem quam facilis, odio blanditiis beatae similique non voluptatibus at dolorum?</p>
</div>
<input type="checkbox" id="acknowledge" name="acknowledge" value="true">
<label class="styled" for="acknowledge">I acknowledge</label>
当有人像这样滚动到#acknowledge 的底部时,我可以检测到:
$('#step2Disclaimer').on('scroll', function() {
if($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight) {
alert('end reached');
}
});
我需要做的并且不知何故缺少的是更改“确认”检查以查看是否有人滚动。条件不起作用->澄清一下,如果有人选中“确认”复选框并且没有滚动到“step2Disclaimer”的底部,我需要运行一个函数。
$(function() {
$('input[name="acknowledge"]').change(function(){
if ($(this).is(':checked') && ($('#step2Disclaimer').scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight)) {
alert('checked but not scrolled');
}
});
});
【问题讨论】:
-
我可以为你提供一个这样的例子。它将利用被称为出现的 jQuery 库。我刚刚做了一个最终被废弃的项目,但我对滚动的了解比我应该的要多。游戏公司暴雪通常会在允许您玩他们的游戏之前执行此操作。
-
请做,将不胜感激。当你选中该框时,我需要检查 div 的滚动位置。
-
不,暴雪所做的(您应该将其纳入最佳实践)是禁用复选框直到用户滚动到协议底部。
标签: jquery css checkbox scroll onchange