【问题标题】:Flipping effect for html div with background images in IE9IE9中带有背景图像的html div的翻转效果
【发布时间】:2013-08-27 04:40:14
【问题描述】:

我正在开发一个功能,我正在用背景图像翻转一个 div。当我翻转 div 时,另一侧应该有一个新图像。

我尝试了以下 jquery 插件,结果是:

  1. Flippy:它在 IE10、chrome 和 firefox 中运行良好,但在 IE9 中无法正常运行它使图像消失并翻转灰色 div。

  2. 翻转!:它使图像消失并翻转灰色的div。

  3. 图像翻转:2D 翻转

  4. 快速翻转:2D 翻转

  5. rotate3di:3d 翻转,但看起来我们是从某个角度观看。

请建议一种在 IE9 中翻转 div 的方法。任何帮助将不胜感激

【问题讨论】:

  • 请做一个小提琴并显示你的代码:)
  • 我在jsfiddle.net/Akshay2409/r5xMC上添加了代码
  • @AkshayP 你添加了 excanvas.js 文件吗?
  • 是的..我也试过 excanvas.js.. 但同样的问题仍然存在

标签: jquery html css internet-explorer-9


【解决方案1】:

CSS 过渡是您的代码无法在 IE9 中运行的原因。 CSS 过渡用于通过更改 CSS 来为对象设置动画(不需要 JavaScript)。 jQuery.flippy.js 使用它来动画对象。 遗憾的是,CSS 过渡是在 IE9 之后出现的,因此它不支持 CSS 过渡。

我过去也遇到过类似的问题 (http://bitotsav.in/#!/shows),我选择为 IE9 及以下版本提供一些微不足道的动画。

但是,如果您想在 IE9 上使用翻转动画,请访问 Flip card effect for non-webkit browsers

上面的链接可能包含一些解决您问题的方法。

【讨论】:

    【解决方案2】:

    对于 FF 和 Chrome,我在这里摆弄了一下:
    http://jsfiddle.net/RXU84/

    但是,我无法在 IE 上测试它,因为我现在无法访问。
    感谢这里的这个人.. David

    HTML

    <div class="flip-container" ontouchstart="this.classList.toggle('hover');">
        <div class="flipper">
            <div class="front">
                <!-- front content -->
                <img src="http://i.imgur.com/FrJqOAP.jpg"/>
            </div>
            <div class="back">
                <!-- back content -->
                <img src="http://i.imgur.com/eIkgvPL.jpg"/>
            </div>
        </div>
    </div>
    

    CSS

            /* simple */
        .flip-container {
            -webkit-perspective: 1000;
            -moz-perspective: 1000;
            perspective: 1000;
    
            border: 1px solid #ccc;
        }
    
    
            .flip-container:hover .flipper, 
                        .flip-container.hover .flipper, #flip-toggle.flip .flipper {
                -webkit-transform: rotateY(180deg);
                -moz-transform: rotateY(180deg);
                transform: rotateY(180deg);
                filter: FlipH;
                -ms-filter: "FlipH";
            }
    
        .flip-container, .front, .back {
            width: 320px;
            height: 427px;
        }
    
        .flipper {
            -webkit-transition: 0.6s;
            -webkit-transform-style: preserve-3d;
    
            -moz-transition: 0.6s;
            -moz-transform-style: preserve-3d;
    
            transition: 0.6s;
            transform-style: preserve-3d;
    
            position: relative;
        }
    
        .front, .back {
            -webkit-backface-visibility: hidden;
            -moz-backface-visibility: hidden;
            backface-visibility: hidden;
    
            position: absolute;
            top: 0;
            left: 0;
        }
    
        .front {
            background: lightgreen;
            z-index: 2;
        }
    
        .back {
            background: lightblue;
            -webkit-transform: rotateY(180deg);
            -moz-transform: rotateY(180deg);
            transform: rotateY(180deg);
        }
    
        .front .name {
            font-size: 2em;
            display: inline-block;
            background: rgba(33, 33, 33, 0.9);
            color: #f8f8f8;
            font-family: Courier;
            padding: 5px 10px;
            border-radius: 5px;
            bottom: 60px;
            left: 25%;
            position: absolute;
            text-shadow: 0.1em 0.1em 0.05em #333;
    
            -webkit-transform: rotate(-20deg);
            -moz-transform: rotate(-20deg);
            transform: rotate(-20deg);
        }
    

    【讨论】:

      【解决方案3】:

      我认为这就是你需要的,看看这个演示:FLIPPING CIRCLE SLIDESHOW

      它翻转的不仅仅是图像,易于遵循的代码,您可以对其进行自定义,以便拥有所需的内容。

      希望这会有所帮助。

      【讨论】:

      【解决方案4】:

      试试这个...

        #skew {
      

      变换:倾斜(35度); }

      #scale {
      

      变换:比例(1,0.5); }

      #rotate {
      

      变换:旋转(45度); }

      #translate {
      

      transform:translate(10px, 20px); }

      #rotate-skew-scale-translate {
      

      transform:skew(30deg) scale(1.1,1.1) rotate(40deg) translate(10px, 20px); }

      【讨论】:

        【解决方案5】:

        编辑: 这在 IE9 中有效,IE 只是讨厌 jsfiddle 并拒绝使其工作。换句话说,IE的死亡!

        我会推荐使用画布!如果您的画布是 100x100 并且您在画布上加载 100x200 的图片,则一半将在外面。当您翻转图像时,另一部分将显示(虽然它会被翻转,因此必须翻转原始图像)。

        http://jsfiddle.net/H82Tq/1/

        var c = document.getElementById("joker");
        var ctx = c.getContext("2d");
        var img = document.createElement('img');
        img.src = 'http://i.istockimg.com/file_thumbview_approve/7625283/2/stock-illustration-7625283-joker-face-two-playing-card.jpg';
        
        
        var b = false;
        $(c).click(function(){
            if (b) {
                ctx.drawImage(img, -246, 0, 246, 380);
            } else {
                ctx.drawImage(img, 0, 0, 246, 380);
            }
        
            b = !b;
            ctx.scale(-1, 1);
        }).click();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-07
          • 1970-01-01
          • 2015-11-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多