jquery - 当我单击并按住 fotorama 上的箭头时,如何使图像连续滑动?
问题描述
我现在正在制作一个 fotorama 画廊,我们想添加这个新功能,当我单击并按住箭头时,图像将连续滚动,直到 mouseup。
我尝试如下,但是滑动运动并不理想:
const imgnum = 26; // 26 images on this page
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
//slide function
function slideNextFast(){
while(parseInt(fotorama.activeIndex) < imgnum){
fotorama.show(">");
sleep(100);
}
}
$(document).ready(function(){
var timeoutId = 0;
$(".fotorama__arr--next").on("mousedown", function(){
timeoutId = setTimeout(slideNextFast, 500);
}).on("mouseup mouseleave", function(){
clearTimeout(timeoutId);
});
});
HTML是这样的:
<div id="fotorama" class="fotorama" data-width="700" data-width="700" data-ratio="700/467" data-fit="cover" data-max-width="100%" data-nav="thumbs" data-arrows="always" data-click="false" data-swipe="false" data-auto="false" data-hash="true" data-thumbwidth="110" data-thumbheight="85">
<div data-thumb="pictures/na1.jpeg">
<div id="map-canvas" data-fit="contain"></div>
</div>
<div data-img="mturn/coolidgehwy.jpg" data-caption="One">
<a href="http://www.google.com/maps/@?api=1&map_action=map&basemap=satellite&zoom=19¢er=42.543214,-83.186111" target="_blank" data-fit="contain"></a>
</div>
<div data-img="mturn/northwesternhwy.mi.jpg">
<a href="http://www.google.com/maps/@?api=1&map_action=map&basemap=satellite&zoom=19¢er=42.500573,-83.308173" target="_blank" data-fit="contain"></a>
</div>
<div data-img="mturn/rt29.universityblvd.md.jpg">
<a href="http://www.google.com/maps/@?api=1&map_action=map&basemap=satellite&zoom=19¢er=39.020215,-77.012860" target="_blank" data-fit="contain"></a>
</div>
问题是我真的不知道如何改进 slideNextFast()。
解决方案
推荐阅读
- javascript - 过渡期间的 CSS 转换更改导致当前状态丢失并跳转到开头(Chrome 错误)
- eclipse - 如何使用 Jenkins 通过电子邮件发送 Eclipse 测试代码的输出。动态输出应该在电子邮件的消息正文中
- javascript - 如何在 DynamoDB 查询操作中指定多个条件?
- php - 验证公式中的选择类型
- bootstrap-4 - 使居中的自动溢出 div 在引导程序 4.1.3 中占用剩余空间
- git - GIT 与 JIRA 集成的私有存储库
- javascript - 如何使用javascript将复选框添加到列表中
- jquery - 'string | 类型的参数 号码 | string[]' 不能分配给“string |”类型的参数 号码 |
- node.js - 使用 Sequelize 中的计算值进行更新
- javascript - 当使用 Javascript 到达指定的 url 时,在登录后关闭弹出窗口