2014-04-01 7 views
1

좀 슬라이드를 보았다는 왼쪽 또는 오른쪽 키를 눌러 http://www.htmlfivewow.comHTML5 슬라이드 쇼 효과

http://slides.html5rocks.com 추천하고 , 슬라이드 큐브 효과를 볼 수 있습니다 보여줍니다. 나는이 효과들과 함께 간단한 웹 페이지를 만들고 싶다. 소스 코드에서 CSS와 자바 스크립트를 가져 오려고했지만 슬라이드가 동일하게 작동하지 않습니다.

  1. 애니메이션을 적용 할 때 div에는 3D 스타일이 없으며 그냥 움직이고 회전합니다. 사실 http://slides.html5rocks.com은 크롬에있는 동안 내 파이어 폭스에는 3D 효과가 없습니다.
  2. 자습서가 있습니까?
  3. IE 10에서 어떻게 작동합니까? 여기

내 코드의 일부입니다 : HTML :

<div class="container"> 
    <div id="div1" class="main slide current"> ... </div> 
    <div id="div2" class="main slide future"> ... </div> 
    <div id="div3" class="main slide future"> ... </div> 
</div> 

CSS :

.container { 
    height: 100%; 
    margin-left:auto; 
    margin-right:auto; 
    width:800px; 
    overflow: visible; 
    visibility: visible; 
    -webkit-transform-style: preserve-3d; 
    -moz-transform-style: preserve-3d; 
    transform-style: preserve-3d; 
} 
.main{ 
    border: 1px solid; 
    border-color: white; 
    border-radius: 15px 15px 0 0 ; 
    width: 100%; 
    min-height: 450px; 
    text-align: center; 
    padding: 5px; 
} 

.slide { 
    width: 800px; 
    height: 450px; 
    -webkit-transition: -webkit-transform 0.8s ease-in-out, opacity 1.2s ease-in-out; 
    -moz-transition: -moz-transform 0.8s ease-in-out, opacity 1.2s ease-in-out; 
    -webkit-box-orient: vertical; 
    -moz-box-orient: vertical; 
    box-orient: vertical; 
    -webkit-box-sizing: content-box; 
    -moz-box-sizing: content-box; 
    box-sizing: content-box; 
    overflow: hidden; 
    display: none; 
    position: absolute; 
} 
.slide.past { 
    z-index: 8; 
    visibility: visible; 
    display: block; 
    opacity: 0; 
    -webkit-transform: translateZ(-400px) rotateY(-90deg) translateZ(400px); 
    -moz-transform: translateZ(-400px) rotateY(-90deg) translateZ(400px); 
    -o-transform: translateZ(-400px) rotateY(-90deg) translateZ(6400px); 
    transform: translateZ(-400px) rotateY(-90deg) translateZ(400px); 
} 
.slide.current { 
    z-index: 9; 
    visibility: visible; 
    display: block; 
    opacity: 1; 
    -webkit-transform: translateZ(-400px) rotateY(0deg) translateZ(400px); 
    -moz-transform: translateZ(-400px) rotateY(0deg) translateZ(400px); 
    -o-transform: translateZ(-400px) rotateY(0deg) translateZ(400px); 
    transform: translateZ(-400px) rotateY(0deg) translateZ(400px); 
} 
.slide.future { 
    z-index: 8; 
    visibility: visible; 
    display: block; 
    opacity: 0; 
    -webkit-transform: translateZ(-400px) rotateY(90deg) translateZ(400px); 
    -moz-transform: translateZ(-400px) rotateY(90deg) translateZ(400px); 
    -o-transform: translateZ(-400px) rotateY(90deg) translateZ(400px); 
    transform: translateZ(-400px) rotateY(90deg) translateZ(400px); 
} 

스크립트

$("#div1").attr("class", "main slide future"); 
$("#div2").attr("class", "main slide current"); 
+0

사람이 알아? – alzhao

답변

0

HTML

,

CSS

html { 
    border-top: 5px solid #fff; 
    background: #58DDAF; 
    color: #2a2a2a; 
} 

html, body { 
    margin: 0; 
    padding: 0; 
    font-family: 'Open Sans'; 
} 

h1 { 
    color: #fff; 
    text-align: center; 
    font-weight: 300; 
} 

#slider { 
    position: relative; 
    overflow: hidden; 
    margin: 20px auto 0 auto; 
    border-radius: 4px; 
} 

#slider ul { 
    position: relative; 
    margin: 0; 
    padding: 0; 
    height: 200px; 
    list-style: none; 
} 

#slider ul li { 
    position: relative; 
    display: block; 
    float: left; 
    margin: 0; 
    padding: 0; 
    width: 500px; 
    height: 300px; 
    background: #ccc; 
    text-align: center; 
    line-height: 300px; 
} 

a.control_prev, a.control_next { 
    position: absolute; 
    top: 40%; 
    z-index: 999; 
    display: block; 
    padding: 4% 3%; 
    width: auto; 
    height: auto; 
    background: #2a2a2a; 
    color: #fff; 
    text-decoration: none; 
    font-weight: 600; 
    font-size: 18px; 
    opacity: 0.8; 
    cursor: pointer; 
} 

a.control_prev:hover, a.control_next:hover { 
    opacity: 1; 
    -webkit-transition: all 0.2s ease; 
} 

a.control_prev { 
    border-radius: 0 2px 2px 0; 
} 

a.control_next { 
    right: 0; 
    border-radius: 2px 0 0 2px; 
} 

.slider_option { 
    position: relative; 
    margin: 10px auto; 
    width: 160px; 
    font-size: 18px; 
} 

자바 스크립트

jQuery(document).ready(function ($) { 

    $('#checkbox').change(function(){ 
    setInterval(function() { 
     moveRight(); 
    }, 3000); 
    }); 

    var slideCount = $('#slider ul li').length; 
    var slideWidth = $('#slider ul li').width(); 
    var slideHeight = $('#slider ul li').height(); 
    var sliderUlWidth = slideCount * slideWidth; 

    $('#slider').css({ width: slideWidth, height: slideHeight }); 

    $('#slider ul').css({ width: sliderUlWidth, marginLeft: - slideWidth }); 

    $('#slider ul li:last-child').prependTo('#slider ul'); 

    function moveLeft() { 
     $('#slider ul').animate({ 
      left: + slideWidth 
     }, 200, function() { 
      $('#slider ul li:last-child').prependTo('#slider ul'); 
      $('#slider ul').css('left', ''); 
     }); 
    }; 

    function moveRight() { 
     $('#slider ul').animate({ 
      left: - slideWidth 
     }, 200, function() { 
      $('#slider ul li:first-child').appendTo('#slider ul'); 
      $('#slider ul').css('left', ''); 
     }); 
    }; 

    $('a.control_prev').click(function() { 
     moveLeft(); 
    }); 

    $('a.control_next').click(function() { 
     moveRight(); 
    }); 

});  
+0

답장을 보내 주셔서 감사합니다. 그러나 3D 스타일은 없습니다. 특히 슬라이드의 크기를 변경하면서 왼쪽 또는 오른쪽으로 움직일 때 3D가 회전한다는 의미입니다. – alzhao

+0

내가 운동하게 해 .. – 4dgaurav