PHP & JavaScript Room :: 設置サンプル

実行結果

Image Cross Fade Transition | 設置サンプル

▼画像にマウスオーバーするとCSSで背景にしていたもう一枚の画像が表示され、元画像と交じり合いながら消えて息、元の画像に戻ります。

Who we are Who we are Who we are

設置サンプルのソース

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <meta http-equiv="Content-Language" content="ja" />
      <meta http-equiv="Content-Script-Type" content="text/javascript" />
      <meta http-equiv="Content-Style-Type" content="text/css" />
      <meta http-equiv="imagetoolbar" content="no" />
      <title>CSS Tooltips - loadaverageZero | 設置サンプル</title>
      <link rel="stylesheet" type="text/css" href="/content/lib/global.css" media="all" />
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
       <script type="text/javascript">
          // wrap as a jQuery plugin and pass jQuery in to our anoymous function
          (function ($) {
              $.fn.cross = function (options) {
                  return this.each(function (i) { 
                      // cache the copy of jQuery(this) - the start image
                      var $$ = $(this);
                      
                      // get the target from the backgroundImage + regexp
                      var target = $$.css('backgroundImage').replace(/^url|[\(\)'"]/g, '');

                      // nice long chain: wrap img element in span
                      $$.wrap('<span style="position: relative;"></span>')
                          // change selector to parent - i.e. newly created span
                          .parent()
                          // prepend a new image inside the span
                          .prepend('<img>')
                          // change the selector to the newly created image
                          .find(':first-child')
                          // set the image to the target
                          .attr('src', target);

                      // the CSS styling of the start image needs to be handled
                      // differently for different browsers
                      if ($.browser.msie || $.browser.mozilla) {
                          $$.css({
                              'position' : 'absolute', 
                              'left' : 0,
                              'background' : '',
                              'top' : this.offsetTop
                          });
                      } else if ($.browser.opera && $.browser.version < 9.5) {
                          // Browser sniffing is bad - however opera < 9.5 has a render bug 
                          // so this is required to get around it we can't apply the 'top' : 0 
                          // separately because Mozilla strips the style set originally somehow...                    
                          $$.css({
                              'position' : 'absolute', 
                              'left' : 0,
                              'background' : '',
                              'top' : "0"
                          });
                      } else { // Safari
                          $$.css({
                              'position' : 'absolute', 
                              'left' : 0,
                              'background' : ''
                          });
                      }

                      // similar effect as single image technique, except using .animate 
                      // which will handle the fading up from the right opacity for us
                      $$.hover(function () {
                          $$.stop().animate({
                              opacity: 0
                          }, 250);
                      }, function () {
                          $$.stop().animate({
                              opacity: 1
                          }, 250);
                      });
                  });
              };
              
          })(jQuery);
          
          // note that this uses the .bind('load') on the window object, rather than $(document).ready() 
          // because .ready() fires before the images have loaded, but we need to fire *after* because
          // our code relies on the dimensions of the images already in place.
          $(window).bind('load', function () {
              $('img.fade').cross();
          });
      </script>
      <style type="text/css">
         body{ margin:20px; padding:0; font:12px/1.5 verdana,sans-seif; }
         h1 { font-size:150%; }
         img { border:0; }
      </style>
   <link rel="stylesheet" type="text/css" href="/common/css/example.css"></head>
   <body id='example3' class='example'><div class="ads" style="margin:32px auto;text-align:center;"></div><h1 class='h'><a href='/'>PHP &amp; JavaScript Room</a> :: 設置サンプル</h1>
<h3 class='h'>実行結果</h3>
      <h1><a href='http://jqueryfordesigners.com/image-cross-fade-transition/'>Image Cross Fade Transition</a> | 設置サンプル</h1>
      <p>▼画像にマウスオーバーするとCSSで背景にしていたもう一枚の画像が表示され、元画像と交じり合いながら消えて息、元の画像に戻ります。</p>
       <div>
           <img class="fade" src="/content/img/ajax/start.png"  style="background:url(/content/img/ajax/end.png);"  alt="Who we are" />
           <img class="fade" src="/content/img/ajax/start2.png" style="background:url(/content/img/ajax/end2.png);" alt="Who we are" />
           <img class="fade" src="/content/img/ajax/start3.png" style="background:url(/content/img/ajax/end3.png);" alt="Who we are" />
       </div>
   </body>
</html>