javascript - 如何使操作员在不重新加载页面的情况下工作?JS
问题描述
我正在学习 jQuery,试图制作滑块,我几乎做到了,但我遇到了问题,在 2 次滑块通过图像后,第一个图像没有出现。我正在使用 margin-left 使图像移动。
$(document).ready(function() {
$('#btn').on('click', function() {
if ($('.slides').css('margin-left') === '-3600px') {
$('.slides').animate({
'margin-left': -0.05
});
} else {
$('.slides').animate({
'margin-left': '-=720'
});
}
});
});
解决方案
你好 Aslan,欢迎来到 Stack Overflow。由于我没有该问题的视觉演示,我假设您的所有图像的图像宽度为 720 像素,并且您希望显示 5 张图片并排显示。
在您的第一次迭代中,您的 amargin-left
为 0。
- 按钮点击 1 ->
margin-left: 720px;
- 按钮点击 2 ->
margin-left: 1440px;
- 按钮点击 3 ->
margin-left: 2160px;
- 按钮点击 4 ->
margin-left: 2880px;
- 按钮点击 5 ->
margin-left: 3600px;
现在您再次单击该按钮并将滚动条移回其位置,该位置现在不是margin: 0
,而是margin: -0.05
。我们开始迭代 2:
- 按钮点击 1 ->
margin-left: 719.95px;
- 按钮点击 2 ->
margin-left: 1439.95px;
- 按钮点击 3 ->
margin-left: 2159.95px;
- 按钮点击 4 ->
margin-left: 2879.95px;
- 按钮点击 5 ->
margin-left: 3599.95px;
但是您检查了 3600而不是 3599.95 的确切边距。
您要么需要margin-left: 0
在向后滚动时设置,要么查询左边距为 3599 或更大:
if ($('.slides').css('margin-left') >= '3599px') {
$('.slides').animate({
'margin-left': -0.05
});
}
推荐阅读
- angularjs-ng-repeat - 这是关于 AngularJS $data
- hyperledger-fabric - 如何在超级账本作曲家中保护参与者卡?
- google-cloud-stackdriver - Stackdriver 监控 - 指标缺失
- css - 显示链接部分的另一种样式
- java - 如何控制 Java 类的 Json 输出
- mysql - 在laravel 5中以sql格式下载数据库备份而不使用包
- python - 如何避免 Windows AWS CLI S3 中的警告消息
- android - 可扩展列表视图不在相对布局内滚动
- node.js - Mongoose 必须有一个解决方案,只更新具有值的字段,即使您传递了更多字段
- bash - Linux CRON:在寻找匹配的 ``' 时出现意外的 EOF