0

こんにちは、jquery で目覚めました。jqueryで問題に直面しています。15 枚以上の画像を配置すると、15 枚の画像の後に空白のように表示されます。

これが私のコードです。

.html

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <!--  <link href="css/default.css" rel="stylesheet" type="text/css" media="screen,projection" />-->
    <link href="css/jquery.ennui.contentslider.css" rel="stylesheet" type="text/css"
        media="screen,projection" />
    <title></title>
</head>
<body>
    <div id="one" class="contentslider">
        <div class="cs_wrapper">
            <div class="cs_slider">
                <div class="cs_article">
                    <img src="images/11.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/12.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/13.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/14.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/15.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/11.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/12.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/13.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/14.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/15.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/11.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/12.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/13.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/14.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/15.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/11.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/12.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/13.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/14.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/15.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/16.jpg" alt="Artist's interpretation of article headline" />
                </div>
                <div class="cs_article">
                    <img src="images/17.jpg" alt="Artist's interpretation of article headline" />
                </div>
            </div>
        </div>
    </div>

    <script type="text/javascript" src="js/jquery.min.js"></script>

    <script type="text/javascript" src="js/jquery.easing.1.3.js"></script>

    <script type="text/javascript" src="js/jquery.ennui.contentslider.js"></script>

    <script type="text/javascript">
        $(function () {
            $('#one').ContentSlider({
                width: '700px',
                height: '530px',
                speed: 500,
                easing: 'easeInOutBack'
            });
        });
    </script>

</body>
</html>

.js ファイル

(function($) {
  $.fn.ContentSlider = function(options)
  {
    var defaults = {
      leftBtn : 'images/cs_leftImg.png',
      rightBtn : 'images/cs_rightImg.png',
      width : '700px',
      height : '530px',
      speed : 400,
      easing : 'easeOutQuad',
      textResize : false,
      IE_h2 : '26px',
      IE_p : '11px'
    }
    var defaultWidth = defaults.width;
    var o = $.extend(defaults, options);
    var w = parseInt(o.width);
    var n = this.children('.cs_wrapper').children('.cs_slider').children('.cs_article').length;
    var x = -1*w*n+w; // Minimum left value
    var p = parseInt(o.width)/parseInt(defaultWidth);
    var thisInstance = this.attr('id');
    var inuse = false; // Prevents colliding animations

    function moveSlider(d, b)
    {
      var l = parseInt(b.siblings('.cs_wrapper').children('.cs_slider').css('left'));
      if(isNaN(l)) {
        var l = 0;
      }
      var m = (d=='left') ? l-w : l+w;
      if(m<=0&&m>=x) {
        b
          .siblings('.cs_wrapper')
            .children('.cs_slider')
              .animate({ 'left':m+'px' }, o.speed, o.easing, function() {
                inuse=false;
              });

        if(b.attr('class')=='cs_leftBtn') {
          var thisBtn = $('#'+thisInstance+' .cs_leftBtn');
          var otherBtn = $('#'+thisInstance+' .cs_rightBtn');
        } else {
          var thisBtn = $('#'+thisInstance+' .cs_rightBtn');
          var otherBtn = $('#'+thisInstance+' .cs_leftBtn');
        }
        if(m==0||m==x) {
          thisBtn.animate({ 'opacity':'0' }, o.speed, o.easing, function() { thisBtn.hide(); });
        }
        if(otherBtn.css('opacity')=='0') {
          otherBtn.show().animate({ 'opacity':'1' }, { duration:o.speed, easing:o.easing });
        }
      }
    }

    function vCenterBtns(b)
    {
      // Safari and IE don't seem to like the CSS used to vertically center
      // the buttons, so we'll force it with this function
      var mid = parseInt(o.height)/2;
      b
        .find('.cs_leftBtn img').css({ 'top':mid+'px', 'padding':0 }).end()
        .find('.cs_rightBtn img').css({ 'top':mid+'px', 'padding':0 });
    }

    return this.each(function() {
      $(this)
        // Set the width and height of the div to the defined size
        .css({
          width:o.width,
          height:o.height
        })
        // Add the buttons to move left and right
        .prepend('<a href="#" class="cs_leftBtn"><img src="'+o.leftBtn+'" /></a>')
        .append('<a href="#" class="cs_rightBtn"><img src="'+o.rightBtn+'" /></a>')
        // Dig down to the article div elements
        .find('.cs_article')
          // Set the width and height of the div to the defined size
          .css({
            width:o.width,
            height:o.height
          })
          .end()
        // Animate the entrance of the buttons
        .find('.cs_leftBtn')
          .css('opacity','0')
          .hide()
          .end()
        .find('.cs_rightBtn')
          .hide()
          .animate({ 'width':'show' });

      // Resize the font to match the bounding box
      if(o.textResize===true) {
        var h2FontSize = $(this).find('h2').css('font-size');
        var pFontSize = $(this).find('p').css('font-size');
        $.each(jQuery.browser, function(i) {
          if($.browser.msie) {
             h2FontSize = o.IE_h2;
             pFontSize = o.IE_p;
          }
        });
        $(this).find('h2').css({ 'font-size' : parseFloat(h2FontSize)*p+'px', 'margin-left' : '66%' });
        $(this).find('p').css({ 'font-size' : parseFloat(pFontSize)*p+'px', 'margin-left' : '66%' });
        $(this).find('.readmore').css({ 'font-size' : parseFloat(pFontSize)*p+'px', 'margin-left' : '66%' });
      }

      // Store a copy of the button in a variable to pass to moveSlider()
      var leftBtn = $(this).children('.cs_leftBtn');
      leftBtn.bind('click', function() {
        if(inuse===false) {
          inuse = true;
          moveSlider('right', leftBtn);
        }
        return false; // Keep the link from firing
      });

      // Store a copy of the button in a variable to pass to moveSlider()
      var rightBtn = $(this).children('.cs_rightBtn');
      rightBtn.bind('click', function() {
        if(inuse===false) {
          inuse=true;
          moveSlider('left', rightBtn);
        }
        return false; // Keep the link from firing
      });

      vCenterBtns($(this)); // This is a CSS fix function.
    });
  }
})(jQuery)

誰かがそれについて解決策を持っているなら、私を助けてください。

4

1 に答える 1

1

行番号22を機能させた後にこれらの2行を追加します

var newSb = parseInt(defaultWidth)*n+"px";  
$(".cs_slider").css("width", newSb);

これはうまくいきます!

于 2012-10-20T08:55:17.140 に答える