2017-12-05 17 views
0

でのsetInterval機能を追加します自動回転用。は、だから私は、ここから、このコードを持っているjqueryの

私はすでにhtmlにボタンを持っていますが、私はそれ以上の努力をして、画像を画面上にドラッグするだけでなく、それ自体を移動させる機能や何かを作ることはできません。

これは私が今までに持っているコードです。

(function($){ 
$.fn.j360 = function(options) { 
    var defaults = { 
     clicked: false, 
     currImg: 1 
    } 
    var options = jQuery.extend(defaults, options); 
    return this.each(function() { 
     var $obj = jQuery(this); 
     var aImages = {}; 
     $obj.css({ 
      'margin-left' : 'auto', 
      'margin-right' : 'auto', 
      'text-align' : 'center', 
      'overflow' : 'hide' 
     }); 
     $overlay = $obj.clone(true); 
     $overlay.html('<img src="images/loader.gif" class="loader" style="margin-top:' + ($obj.height()/2 - 15) + 'px" />'); 
     $overlay.attr('id', 'view_overlay'); 
     $overlay.css({ 
      'position' : 'absolute', 
      'z-index': '5', 
      'top' : $obj.offset().top, 
      'left' : $obj.offset().left, 
      'background' : '#fff' 
     }); 
     $obj.after($overlay); 
     $obj.after('<div id="colors_ctrls"></div>'); 
     jQuery('#colors_ctrls').css({ 
      'width' : $obj.width(), 
      'position' : 'absolute', 
      'z-index': '5', 
      'top' : $obj.offset().top + $obj.height - 50, 
      'left' : $obj.offset().left 
     }); 
     var imageTotal = 0; 
     jQuery('img', $obj).each(function() { 
      aImages[++imageTotal] = jQuery(this).attr('src'); 
      preload(jQuery(this).attr('src')); 
     }) 
     var imageCount = 0; 
     jQuery('.preload_img').load(function() { 
      if (++imageCount == imageTotal) { 
       $overlay.animate({ 
        'filter' : 'alpha(Opacity=0)', 
        'opacity' : 0 
       }, 100); 
       $obj.html('<img src="' + aImages[1] + '" />'); 
       $overlay.bind('mousedown touchstart', function(e) { 
        if (e.type == "touchstart") { 
         options.currPos = window.event.touches[0].pageX; 
        } else { 
         options.currPos = e.pageX; 
        } 
        options.clicked = true; 
        return false; 
       }); 
       jQuery(document).bind('mouseup touchend', function() { 
        options.clicked = false; 
       }); 
       jQuery(document).bind('mousemove touchmove', function(e) { 
        if (options.clicked) { 
         var pageX; 
         if (e.type == "touchmove") { 
          pageX = window.event.targetTouches[0].pageX; 
         } else { 
          pageX = e.pageX; 
         } 
         var width_step = 50; 
         if (Math.abs(options.currPos - pageX) >= width_step) { 
          if (options.currPos - pageX >= width_step) { 
           options.currImg++; 
           if (options.currImg > imageTotal) { 
            options.currImg = 1; 
           } 
          } else { 
           options.currImg--; 
           if (options.currImg < 1) { 
            options.currImg = imageTotal; 
           } 
          } 
          options.currPos = pageX; 
          $obj.html('<img src="' + aImages[options.currImg] + '" />'); 
         } 
        } 
       }); 
      } 
     }); 
     if (jQuery.browser.msie || jQuery.browser.mozilla || jQuery.browser.opera || jQuery.browser.safari) { 
      jQuery(window).resize(function() { 
       onresizeFunc($obj, $overlay); 
      }); 
     } else { 
      var supportsOrientationChange = "onorientationchange" in window, 
      orientationEvent = supportsOrientationChange ? "orientationchange" : "resize"; 
      window.addEventListener(orientationEvent, function() { 
       onresizeFunc($obj, $overlay); 
      }, false); 
     } 
     onresizeFunc($obj, $overlay) 
    }); 
} 
}) 
(jQuery) 


function onresizeFunc($obj, $overlay){ 

$obj.css({ 
    'margin-top' : $(document).height()/2 
}); 
$overlay.css({ 
    'margin-top' : 200, 
    'top' : $obj.offset().top, 
    'left' : $obj.offset().left 
}); 

jQuery('#colors_ctrls').css({ 
    'top' : $obj.offset().top + $obj.height - 50, 
    'left' : $obj.offset().left 
}) 
} 

function preload(image) { 

if (typeof document.body == "undefined") return; 
try { 
    var div = document.createElement("div"); 
    var s = div.style; 
    s.position = "absolute"; 
    s.top = s.left = 0; 
    s.visibility = "hidden"; 
    document.body.appendChild(div); 
    div.innerHTML = "<img class=\"preload_img\" src=\"" + image + "\" />"; 
} 
catch(e) { 
// Error. Do nothing. 
} 
}; 

私は時間をかけて関数をインクリメントして、自動回転のilusionを作成する方法が必要です。

+1

ようこそを使用していないことができます! [このメタポスト](https://meta.stackoverflow.com/questions/293931/should-one-answer-terribly-poor-questions/293946#293946)からの引用: "*私たちはdebug-my-wall -for-code-for-me質問。期間。[...] * "。そのような質問は下落、閉鎖、および/または削除される可能性が高い。ガイドラインに従って、[最小、完全、および検証可能な例](https://stackoverflow.com/help/mcve)の作成方法を参考にして、コードを特定の問題に減らしてください。 –

+0

はい、あなたはこのような質問をすることはできません(私の仕事をしてください)。あなたがしたことを試してみなければなりません。また、タイトルが正しくない:jQueryで追加された単純なボタンではありません。関数を作成したいとします。 –

+0

Okey、私は今編集しようとしています –

答えて

0

このプラグインは、このオプション(自動再生の一種)を持っていないように見えるので、プラグインするか、他のプラグインを検索する必要があります。それは、画像のリストがあるので

は、あなたは多分プラグインと表示画像にjQueryを使って次々とスタックオーバーフローに.delay()

関連する問題