0

現在、情報ポップアップにスライダーを含むプロジェクトに取り組んでいます。スライドには、タッチ デバイスでのみ必要な情報が含まれています。デスクトップでは、最初のスライドのみを表示する必要があります。だから私がする必要があるのは、デスクトップ上でスライダーを停止することです...私はかなり近づいています:

$('body').on({ 'touchstart' : function(){           
} });       

しかし、私はjqueryを始めたばかりなので、それを「ハッキング」しており、私がしていることは「不安定な」結果を生み出しています。タッチデバイスで表示されている場合にのみスライダーコードを処理する必要があることはわかっていますが、どこでこれを行うべきかわかりません...

これはスライダーのコードです:

var triggers = $('div.triggers div.trigger');
var images = $('div.slides div.slide');
var lastElem = triggers.length-1;
var mask = $('.mask div.slides');
var imgWidth = images.width();
var target;

triggers.first().addClass('selected');
mask.css('width', imgWidth*(lastElem+1) +'px');


function sliderResponse(target) {
    mask.stop(true,false).animate({'left':'-'+ imgWidth*target +'px'},300);
    triggers.removeClass('selected').eq(target).addClass('selected');
}

triggers.click(function() {
    if ( !$(this).hasClass('selected') ) {
        target = $(this).index();
        sliderResponse(target);
        resetTiming();
    }
});

$('.clickSlide.right').click(function() {
    target = $('div.triggers div.selected').index();
    target === lastElem ? target = 0 : target = target+1;
    sliderResponse(target);
    resetTiming();
});
$('.clickSlide.left').click(function() {
    target = $('div.triggers div.selected').index();
    lastElem = triggers.length-1;
    target === 0 ? target = lastElem : target = target-1;
    sliderResponse(target);
    resetTiming();
});

function sliderTiming() {
    target = $('div.triggers div.selected').index();
    target === lastElem ? target = 0 : target = target+1;
    sliderResponse(target);
}
var timingRun = setInterval(function() { sliderTiming(); },5000);
function resetTiming() {
    clearInterval(timingRun);
    timingRun = setInterval(function() { sliderTiming(); },5000);
}

すべての助けを大いに受け取りました!!!! ありがとう:0)

4

0 に答える 0