• 玩转CSS3旋转3D(transform)


    不支持opera =-=~!

    HTML

    <div class="contaner">
        <div class="box buddycloud">
            <h1>Pack</h1>
            <div class="stream" style="transform:rotateY(-3deg) rotateX(0deg);">
                <article class="topic" >
                     <img src="images/ds.jpg">
                </article >
            </div>
        </div>
    </div>

    CSS

    /*折叠*/
    .contaner{602px; height:auto; bottom:0; left:0; position:absolute;top:0; transform-style:preserve-3d; }
    .buddycloud{ font:13px/19px "Helvetica Neue", Helvetica, Arial, sans-serif;transform-style: preserve-3d; }
    .buddycloud h1{text-align:center}
    .box{502px; height:auto; margin:0 auto; position:relative}
    .box > h1{font-size:20px; color:rgba(123,123,123,0.5); text-shadow:0 1px rgba(255,255,255,.67); font-weight:bold;margin-top:40px}
    .buddycloud .stream{margin:8px 0 21px 0; 502px; border-radius:5px;  position:relative; transform-style:preserve-3d;}


    JS,这里用到两个插件modernizr.custom和prefixfree.min(自动添加前缀)

    <script type="text/javascript" src="js/prefixfree.min.js" language="javascript"></script>
    <script type="text/javascript" src="js/modernizr.custom.js" language="javascript"></script>

    var mouse={startX:0,stratY:0};//定义初试坐标
    var innerElement = $('.buddycloud .stream');//定义全局变量
    var transformString = Modernizr.prefixed('transform');//引用插件,自动添加前缀
    var inputDown, inputMove, inputUp;//定义全局变量
    
    if (window.Touch) {//触摸模式
    	inputDown = "touchstart";
    	inputMove = "touchmove";
    	inputUp = "touchend";
    	//console.log("1");
    }
    else {
    	//console.log("2");
    	inputDown = "mousedown";
    	inputMove = "mousemove";
    	inputUp = "mouseup";
    }
    
    
    
    function normalizedX(event){//判断模式
    	return window.Touch ? event.originalEvent.touches[0].pageX : event.pageX;
    }	
    
    function normalizedY(event){
    	return window.Touch ? event.originalEvent.touches[0].pageY : event.pageY;
    }
    
    $(document).bind(inputDown, function(event){
    	
      event.preventDefault();//防冒泡
      if(event.button === 2) return true; // right-click判断按键
      mouse.startX = normalizedX(event);
      mouse.startY = normalizedY(event);
      $(document)
       .bind(inputMove, move)
       .one(inputUp, function(){ $(document).unbind(inputMove); });
    });
    
    function move(event){
    	//console.log("99");
      event.preventDefault();
      var offsetX = normalizedX(event) - mouse.startX;
      var offsetY = normalizedY(event) - mouse.startY;
      if(event.shiftKey){
    	 // console.log("999")
       offsetX = roundToMultiple(offsetX, 15);
       offsetY = roundToMultiple(offsetY, 15);
      }
     // console.log(offsetX)
      $('.buddycloud .stream').css(transformString, 'rotateY('+offsetX+'deg) rotateX('+-offsetY+'deg)');//写入
    }
    function roundToMultiple(number, multiple){
      var value = number/multiple
      ,   integer = Math.floor(value)
      ,   rest = value - integer;
      return rest > 0.5 ? (integer+1)*multiple : integer*multiple;
    }
    
  • 相关阅读:
    springmvc生成文件(excel、pdf...)和文件上传
    mybatis association 关联查询只返回一条记录
    架构web服务-Nginx07-动静分离
    架构WEB服务-Nginx之六-四层负载均衡
    LVS之三---健康检查
    LVS之2---基于LVS负载均衡集群架构实现
    架构web服务-Nginx之八-nginx实现Rewrite重写
    架构WEB服务-Nginx之五-七层负载均衡
    架构web-Nginx之四-反向代理
    WEB服务-Nginx之三-LNMP架构
  • 原文地址:https://www.cnblogs.com/dean5277/p/2682062.html
Copyright © 2020-2023  润新知