jQuery - Как анимировать функцию щелчка без нажатия (например, слайд-шоу) - Возможно ли это?
-
20-09-2019 - |
Вопрос
Я создал скрипт jQuery (со справкой), который отлично работает, однако мне нужно, чтобы он автоматизировал / анимировал себя без использования функции click, я просто хочу знать, возможно ли это, и если да, то как?Похоже на слайд-шоу.
В принципе, код позволяет мне щелкнуть по изображению и скрыть / показать DIV, одновременно изменяя список элементов, таких как имя класса / идентификатора.
Вот мой код:
JQUERY - JQUERY - ЗАПРОС:
jQuery(document).ready(function(){
//if this is not the first tab, hide it
jQuery(".imgs:not(:first)").hide();
//to fix u know who
jQuery(".imgs:first").show();
//when we click one of the tabs
jQuery(".img_selection a").click(function(){
//get the ID of the element we need to show
stringref = jQuery(this).attr("href").split('#')[1];
// adjust css on tabs to show active tab
$('.img_selection a').removeAttr('id'); // remove all ids
$(this).attr('id', this.className + "_on") // create class+_on as this id.
//hide the tabs that doesn't match the ID
jQuery('.imgs:not(#'+stringref+')').hide();
//fix
if (jQuery.browser.msie && jQuery.browser.version.substr(0,3) == "6.0") {
jQuery('.imgs#' + stringref).show();
} else
//display our tab fading it in
jQuery('.imgs#' + stringref).show();
//stay with me
return false;
});
});
Решение
Это должно сработать.Он получает все "вкладки" и нажимает im в циклическом порядке с паузой в 2 секунды (2000 мс) между каждым нажатием
var tabs = jQuery(".img_selection a");
var len = tabs.size();
var index = 1;
function automate() {
tabs.eq((index%len)).trigger('click');
index++;
}
var robot = setInterval(automate, 2000);
//if at some point you want to stop the automation just call
clearInterval(robot);
Сделал демо-версию
http://jsbin.com/urulo/2/ (http://jsbin.com/urulo/2/edit для кода)
Другие советы
Ограничение по времени выполнения функции в Javascript невозможно.
Но HTML5 включает в себя веб-работников, которые в основном являются фоновыми рабочий Ветки.Это возможно для приостановить веб-работник через определенное время.