GVKun编程网logo

JS实现鼠标拖动分页(js鼠标拖动窗口的做法)

15

如果您想了解JS实现鼠标拖动分页和js鼠标拖动窗口的做法的知识,那么本篇文章将是您的不二之选。我们将深入剖析JS实现鼠标拖动分页的各个方面,并为您解答js鼠标拖动窗口的做法的疑在这篇文章中,我们将为您

如果您想了解JS实现鼠标拖动分页js鼠标拖动窗口的做法的知识,那么本篇文章将是您的不二之选。我们将深入剖析JS实现鼠标拖动分页的各个方面,并为您解答js鼠标拖动窗口的做法的疑在这篇文章中,我们将为您介绍JS实现鼠标拖动分页的相关知识,同时也会详细的解释js鼠标拖动窗口的做法的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

JS实现鼠标拖动分页(js鼠标拖动窗口的做法)

JS实现鼠标拖动分页(js鼠标拖动窗口的做法)

JS实现鼠标拖动分页

本例演示地址:http://www.beijibear.com/myplugins/tuodongfenye.html

源码如下:

<html>
<head>
<title>blog</title>
<meta http-equiv=content-type content="text/html; charset=gb2312">
<style>
body{
        border:0px;
        margin:0px;
        overflow:hidden;
        background-color:transparent;
        font-family:宋体;
}
.page{
        position:absolute;
        width:700px;
        border:1px solid #999;
        background-color:#000;
        left:425px;
        margin-left:-350px;
        cursor:default;
        z-index:0;
}
ul{
        height:320px;
        list-style:none;
        margin:40px 50px 0px;
        padding:0px;
}
li{
        width:100%;
        height:30px;
        line-height:30px;
        font-size:14px;
        text-align:left;
        border-bottom:1px dashed #999;
}
a{
        text-decoration:none;
        color:#999;
}
a:hover{
        font-weight:bold;
}
li span{
        float:right;
        color:#999;
}
.tip{
        display:block;
        width:100%;
        font-size:12px;
        color:#999;
        text-align:center;
        margin:10px 0px 20px;
}
</style>
</head>
<body onselectstart="return false;">
<script>
function id(obj){
        return document.getElementById(obj);
}
var page;
var lm,mx;
var md=false;
var sh=0;
var en=false;
window.onload=function(){
        page=document.getElementsByTagName("div");
        if(page.length>0){
                page[0].style.zIndex=2;
        }
        for(i=0;i<page.length;i++){
                page[i].className="page";
                page[i].innerHTML+="<span class=tip>第 "+(i+1)+"/"+page.length+" 页 提示:左右拖拽翻页</span>";
                page[i].id="page"+i;
                page[i].i=i;
                page[i].onmousedown=function(e){
                        if(!en){
                                if(!e){e=e||window.event;}
                                lm=this.offsetLeft;
                                mx=(e.pageX)?e.pageX:e.x;
                                this.style.cursor="w-resize";
                                md=true;
                                if(document.all){
                                        this.setCapture();
                                }else{
                                        window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
                                }
                        }
                }
                page[i].onmousemove=function(e){
                        if(md){
                                en=true;
                                if(!e){e=e||window.event;}
                                var ex=(e.pageX)?e.pageX:e.x;
                                this.style.left=ex-(mx-lm)+350;
                                if(this.offsetLeft<75){
                                        var cu=(this.i==0)?page.length-1:this.i-1;
                                        page[sh].style.zIndex=0;
                                        page[cu].style.zIndex=1;
                                        this.style.zIndex=2;
                                        sh=cu;
                                }
                                if(this.offsetLeft>75){
                                        var cu=(this.i==page.length-1)?0:this.i+1;
                                        page[sh].style.zIndex=0;
                                        page[cu].style.zIndex=1;
                                        this.style.zIndex=2;
                                        sh=cu;
                                }                            
                        }
                }
                page[i].onmouseup=function(){
                        this.style.cursor="default";
                        md=false;
                        if(document.all){
                                this.releaseCapture();
                        }else{
                                window.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP);
                        }
                        flyout(this);
                }
        }
}
function flyout(obj){
        if(obj.offsetLeft<75){
                if(                (obj.offsetLeft + 350 - 20)        >        -275        ){
                        obj.style.left=obj.offsetLeft + 350 - 20;
                        window.setTimeout("flyout(id(''"+obj.id+"''));",0);
                }else{
                        obj.style.left=-275;
                        obj.style.zIndex=0;
                        flyin(id(obj.id));
                }
        }
        if(obj.offsetLeft>75){
                if(                (obj.offsetLeft + 350 + 20)        <        1125        ){
                        obj.style.left=obj.offsetLeft + 350 + 20;
                        window.setTimeout("flyout(id(''"+obj.id+"''));",0);
                }else{
                        obj.style.left=1125;
                        obj.style.zIndex=0;
                        flyin(id(obj.id));
                }
        }
}
function flyin(obj){
        if(obj.offsetLeft<75){
                if(                (obj.offsetLeft + 350 + 20)        <        425                ){
                        obj.style.left=obj.offsetLeft + 350 + 20;
                        window.setTimeout("flyin(id(''"+obj.id+"''));",0);
                }else{
                        obj.style.left=425;
                        en=false;
                }
        }
        if(obj.offsetLeft>75){
                if(                (obj.offsetLeft + 350 - 20)        >        425                ){
                        obj.style.left=obj.offsetLeft + 350 - 20;
                        window.setTimeout("flyin(id(''"+obj.id+"''));",0);
                }else{
                        obj.style.left=425;
                        en=false;
                }
        }
}
</script>
<div>
        <ul>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>东方之珠</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>啊!停不住的爱人</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>宁静温泉</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>你的样子</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>恋曲1980</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>恋曲1990</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>恋曲2000</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>亚细亚的孤儿</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>伴侣</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>童年</a></li>
        </ul>
</div>
<div>
        <ul>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>爱的箴言</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>爱人同志</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>思念</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>母亲</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>是否</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>牧童</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>青春舞曲</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>蒲公英</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>未来的主人翁</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>如今才是唯一</a></li>
        </ul>
</div>

<div>
        <ul>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>暗恋</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>弹唱词</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>飞车</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>东方之珠</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>滚滚红尘</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>光阴的故事</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.oern.cn>之乎者也</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>现象七十二变</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>乡愁四韵</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>穿过你的黑发我的手</a></li>
        </ul>
</div>
<div>
        <ul>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>大兵歌</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>歌</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>黄色面孔</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>台北红玫瑰</a></li>
                <li><span>2009-4-9 12:35</span><a href=http://www.lanrentuku.com>我所不能了解的事</a></li>
        </ul>
</div>
</body>
</html>

ajax实现鼠标拖动到底部自动加载新的数据的实例

ajax实现鼠标拖动到底部自动加载新的数据的实例

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getcontextpath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!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"> <head> <title></title> <Meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> * { margin: 0; padding: 0; } body { font-size: 12px; } p { margin: 5px; } .Box { padding: 10px; } </style> <!-- 引入jQuery --> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function() { $(window).bind('scroll',function() { show() }); function show() { if ($(window).scrollTop() + $(window).height() >= $(document) .height()) { ajaxRead(); } } function ajaxRead() { var html = ""; $ .ajax({ type : 'get',dataType : 'jsonp',url : 'http://api.flickr.com/services/Feeds/photos_public.gne?tags=car&tagmode=any&format=json&jsoncallback=?',beforeSend : function() { console.log('loading...'); $("#msg").html('loading...'); },success : function(data) { $ .each( data.items,function(i,item) { html += '<divhttps://www.jb51.cc/tag/Box/" target="_blank">Box">'; html += '<h1>' + item.title + '</h1>'; html += '<a hreft="'+item.link+'"><img src="'+item.media.m+'"/></a>' html += '<div>' + item.tags + '</div>'; html += '</div>'; }); $("#resText").append($(html)); },complete : function() { console.log('mission acomplete.') } }); } }) </script> </head> <body> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <p>往下拉</p> <div id="resText"></div> <divid="msg"></div> </body> </html>

AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】

AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】

本文实例讲述了AngularJS实现的鼠标拖动画矩形框。分享给大家供大家参考,具体如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    html {color: #000;overflow-y: scoll;overflow: -moz-scrollbars-vertical}
    body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td {
      margin: 0;
      padding: 0;
      overflow: hidden;
    }
    #longzhoufeng {
      position: relative;
      left: 0;
      top: 0;
      margin: 0 auto;
      padding: 0;
      width: 800px;
      min-height: 800px;
      overflow: auto;
      height: 1000px;
      background-color: #e9e9e9;
    }
    .dashed-box {
      position: absolute;
      border: 1px dashed red;
      width: 0px;
      height: 0px;
      left: 0px;
      top: 0px;
      overflow: hidden;
    }
    #moving_box {
      border: 2px solid red;
    }
    .question-box {
      position: absolute;
      /* older safari/Chrome browsers */
      -webkit-opacity: 0.5;
      /* Netscape and Older than Firefox 0.9 */
      -moz-opacity: 0.5;
      /* Safari 1.x (pre WebKit!) 老式khtml内核的Safari浏览器*/
      -khtml-opacity: 0.5;
      /* IE9 + etc...modern browsers */
      opacity: .5;
      /* IE 4-9 */
      filter: alpha(opacity=50);
      /*This works in IE 8 & 9 too*/
      -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
      /*IE4-IE9*/
      filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
    }
    .question-border {
      border: 2px dashed red;
      overflow: hidden;
      z-index: 1;
    }
    .del-box {
      width: 20px;
      height: 20px;
      float: right;
      color: #fff;
      position: relative;
      margin-top: 1px;
      margin-right: 1px;
      z-index: 99;
      background-color: red;
    }
    .active-border {
      border: 2px solid red;
      -webkit-opacity: 0.5;
      /* Netscape and Older than Firefox 0.9 */
      -moz-opacity: 0.5;
      /* Safari 1.x (pre WebKit!) 老式khtml内核的Safari浏览器*/
      -khtml-opacity: 0.5;
      /* IE9 + etc...modern browsers */
      opacity: .5;
      /* IE 4-9 */
      filter: alpha(opacity=50);
      /*This works in IE 8 & 9 too*/
      -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
      /*IE4-IE9*/
      filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
    }
    .box-background-image {
      position: absolute;
      width: 1000px;
      height: 1600px;
    }
  </style>
  <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
  <script src="https://cdn.bootcss.com/angular.js/1.0.5/angular.min.js"></script>
  <script>
    var app = angular.module(''miniapp'', []);
    function AppController($scope, $timeout) {
      //阻止默认行为
      function stopDefault(e) {
        if(e && e.preventDefault)
          e.preventDefault();
        else
          window.event.returnValue = false;
        return false;
      }
      $scope.bgImg = ''1.jpg'';
      $scope.getBoxPicSize = function() {
        $scope.bgWidth = angular.element(".box-background-image").width();
        $scope.bgHeight = angular.element(".box-background-image").height();
      }
      ///////////////////////////////////////
      var wId = "num";
      var index = 0;
      var target = null;
      var startX = 0, startY = 0;
      var flag = false;
      var startL = 0, startT = 0, boxHeight = 0, boxWidth = 0;
      var boxObj = document.getElementById("longzhoufeng");
      var frame = $("#longzhoufeng");
      var frameBox = {
        "pos": frame.offset(),
        "width": frame.outerWidth(),
        "height": frame.outerHeight()
      }
      var newMarkPos = {
        "left": startL,//按下时鼠标距离的左边的距离
        "top": startT//按下时鼠标距离的上边的距离
      }
      var myEvent = $scope.myEvent = {
        //鼠标点击
        mouseDown: function(e) {
          flag = true;
          var e = window.event || e;
          target = e.target || e.srcElement; //获取document 对象的引用
          //e.pageY,e.pageX兼容
          if(target.src) {
            stopDefault(e)
          }
          var scrollTop = boxObj.scrollTop;
          var scrollLeft = boxObj.scrollLeft;
          var ePageX = e.clientX + scrollLeft;
          var ePageY = e.clientY + scrollTop;
          //按下时鼠标距离页面的距离
          startX = ePageX;
          startY = ePageY;
          //按下时鼠标距离的左边和上边的距离
          startL = startX - frameBox.pos.left;
          startT = startY - frameBox.pos.top;
          index++;
          var div = document.createElement("div");
          div.id = wId + index;
          div.className = "dashed-box";
          boxObj.appendChild(div);
          div = null;
          // 如果鼠标在 box 上被按下
          if(target.className.match(/del-box/i)) {
            // 允许拖动
            flag = false;
            // 设置当前 box 的 id 为 moving_box
            var movingBox = document.getElementById("moving_box")
            if(movingBox !== null) {
              movingBox.removeAttribute("id");
            }
            target.id = "moving_box";
            // removeBox(target);
          } else {
            var div = document.createElement("div");
            div.id = wId + index;
            div.className = "dashed-box";
            boxObj.appendChild(div);
            div = null;
          }
        },
        //鼠标离开
        mouseUp: function(e) {
          var e = window.event || e;
          if(boxWidth >= 1 || boxHeight >= 1) {
            boxObj.removeChild(dragBox(wId + index));
            index++;
            var div = document.createElement("div");
            div.className = "question-box question-border";
            div.style.left = newMarkPos.left + "px";
            div.style.top = newMarkPos.top + "px";
            div.style.width = boxWidth + "px";
            div.style.height = boxHeight + "px";
            boxObj.appendChild(div);
            div = null;
            boxWidth = 0;
            boxHeight = 0;
          } else {
            if(flag) {
              boxObj.removeChild(dragBox(wId + index));
            }
          }
          flag = false;
        },
        //鼠标移动
        mouseMove: function(e) {
          var e = window.event || e;
          stopDefault(e)
          if(flag) {
            var scrollTop = boxObj.scrollTop;
            var scrollLeft = boxObj.scrollLeft;
            var ePX = e.clientX + scrollLeft;
            var ePY = e.clientY + scrollTop;
            var disW = ePX - startX;
            var disH = ePY - startY;
            var L = startL + disW;
            var T = startT + disH;
            if(disW > 0) {
              if(L >= 0) {
                boxWidth = disW
              }
              newMarkPos.left = startL;
            } else {
              if(L <= 0) {
                L = 0;
                boxWidth = startL;
              }
              boxWidth = (startL - L);
              newMarkPos.left = L;
            }
            if(disH > 0) {
              if(T >= 0) {
                boxHeight = disH
              }
              newMarkPos.top = startT;
            } else {
              if(T <= 0) {
                T = 0;
                boxHeight = startT;
              }
              boxHeight = (startT - T)
              newMarkPos.top = T;
            }
            dragBox(wId + index).style.left = newMarkPos.left + "px";
            dragBox(wId + index).style.top = newMarkPos.top + "px";
            dragBox(wId + index).style.width = Math.abs(boxWidth) + "px";
            dragBox(wId + index).style.height = Math.abs(boxHeight) + "px";
            if(e.srcElement.src) {
              stopDefault(e)
            }
          }
        }
      }
      var dragBox = function(id) {
        return document.getElementById(id);
      }
    }
    //等待图片加载完成
    app.directive("loadImage", function() {
      return {
        restrict: ''A'',
        link: function(scope, element, attrs) {
          element.bind(''load'', function() {
            scope.$apply(attrs.loadImage);
          });
        }
      }
    })
  </script>
</head>
<body>
<div ng-app="miniapp" ng-controller="AppController">
  <div>
    <div id="longzhoufeng" ng-mousedown="myEvent.mouseDown($event)" ng-mouseup="myEvent.mouseUp($event)" ng-mousemove="myEvent.mouseMove($event)">
      <img ng-src="{{bgImg}}"load-image="getBoxPicSize()">
    </div>
  </div>
</div>
</body>
</html>

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。

更多关于AngularJS相关内容感兴趣的读者可查看本站专题:《AngularJS指令操作技巧总结》、《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》

希望本文所述对大家AngularJS程序设计有所帮助。

您可能感兴趣的文章:
  • angular使用md5,CryptoJS des加密的方法
  • AngularJs中$cookies简单用法分析
  • 基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
  • angularjs实现table表格td单元格单击变输入框/可编辑状态示例
  • AngularJS 中括号的作用详解

css3 transform及原生js实现鼠标拖动3D立方体旋转的示例介绍

css3 transform及原生js实现鼠标拖动3D立方体旋转的示例介绍

本文通过原生js,点击事件,鼠标按下、鼠标抬起和鼠标移动事件,实现3d立方体的拖动旋转,并将旋转角度实时的反应至界面上显示。

 
实现原理:通过获取鼠标点击屏幕时的坐标和鼠标移动时的坐标,来获得鼠标在X轴、Y轴移动的距离,将距离实时赋值给transform属性。
 
从而通过改变transform:rotate属性值来达到3D立方体旋转的效果:
 
HTML代码块:

<body>
    <input type="button"value="点击散开"/>
    <input type="text"value="0"/>//X轴旋转角度   
    <input type="text"value="0"/>//Y轴旋转角度   
    <input type="text"/>
    <p>
        <p>
            <span>1</span>
            <span>2</span>
            <span>3</span>
            <span>4</span>
            <span>5</span>
            <span>6</span>
        </p>
    </p>
</body>
登录后复制

立即学习“前端免费学习笔记(深入)”;

CSS代码块:

<style>   
 body{cursor: url("img/openhand1.png"),auto;}   
     .big_box{   
            width: 500px;   
            height: 500px;   
            margin: 200px auto;   
        }   

        .box{   
            -webkit-transform-style: preserve-3d;   
            -moz-transform-style: preserve-3d;   
            -ms-transform-style: preserve-3d;   
            transform-style: preserve-3d;   
            transform-origin:100px 100px 00px;   
            position: relative;   
            transform: rotatex(0deg) rotatey(0deg) rotatez(0deg)scale3d(0.7,0.7,0.7);   
        }   
        .box span{   
            transition: all 1s linear;   

        }   
        span{   
            display: block;   
            position: absolute;   
            width: 200px;   
            height: 200px;   
            box-sizing: border-box;   
            border:1px solid #999;   
            /*opacity: 0.7;*/
            text-align: center;   
            line-height: 200px;   
            font-size: 60px;   
            font-weight: 700;   
            border-radius: 12%;   

        }   
        .box span:nth-child(1){   
            background-color: deepskyblue;   
            transform-origin: left;   
            transform: rotatey(-90deg) translatex(-100px);//左   
        }   
        .box span:nth-child(2){   
            background-color: red;   
            transform-origin: rightright;   
            transform: rotatey(90deg) translatex(100px) ;//右   

        }   

        .box span:nth-child(3){   
            background-color: green;   
            transform-origin: top;   
            transform: rotatex(90deg) translatey(-100px) ;//上   

        }   
        .box span:nth-child(4){   
            background-color: #6633FF;   
            transform-origin: bottombottom;   
            transform: rotatex(-90deg) translatey(100px);//下   
        }   
        .box span:nth-child(5){   
            background-color: gold;   
            transform: translatez(-100px);//后   
        }   
        .box span:nth-child(6){   

            background-color: #122b40;   
            transform: translatez(100px);//前   
        }   
        .box:hover span{   

            opacity: 0.3;   
        }   
        .box:hover{   
            animation-play-state:paused;//设置动画暂停   
        }   
</style>
登录后复制

立即学习“前端免费学习笔记(深入)”;

JS代码块:

<script>   
    move();   

    clickBox();   

    //鼠标按下且移动时触发,

    function move(){   
        var body = document.querySelector("body");   
        var box = document.querySelector(".box");   
        var xNum =document.querySelector(".xNum");   
        var yNum =document.querySelector(".yNum");   
        var x = 0,y = 0,z = 0;   
        var xx = 0,yy = 0;   
        var xArr = [],yArr = [];   
        window.onmousedown = function (e) {//鼠标按下事件
            body.style.cursor = &#39;url("img/closedhand1.png"),auto&#39;;   
            xArr[0] = e.clientX/2;//获取鼠标点击屏幕时的坐标
            yArr[0] = e.clientY/2;   
            window.onmousemove = function (e) {//鼠标移动事件————当鼠标按下且移动时触发
                xArr[1] = e.clientX/2;//获取鼠标移动时第一个点的坐标
                yArr[1] = e.clientY/2;   
                yy += xArr[1] - xArr[0];//获得鼠标移动的距离
                xx += yArr[1] - yArr[0];   
                xNum.value = xx+"°";//将所获得距离数字赋值给input显示旋转角度
                yNum.value = yy+"°";   
                //将旋转角度写入transform中
                box.style.transform = "rotatex("+xx+"deg) rotatey("+yy+"deg) rotatez(0deg)scale3d(0.7,0.7,0.7)";   
                xArr[0] = e.clientX/2;   
                yArr[0] = e.clientY/2;   
            }   

        };   
        window.onmouseup = function () {//鼠标抬起事件————用于清除鼠标移动事件,
            body.style.cursor = &#39;url("img/openhand1.png"),auto&#39;;   
            window.onmousemove = null;   
        }   
    }   
    //点击事件、负责立方体盒子的六面伸展
    function clickBox(){   
        var btn = document.querySelector(".open");   
        var box = document.querySelector(".box");   
        var son = box.children;   
        var value = 0;   
        //存储立方体散开时的transform参数
        var arr0 = ["rotatey(-90deg) translatex(-100px)","rotatey(90deg) translatex(100px)","rotatex(90deg) translatey(-100px)",<br>"rotatex(-90deg) translatey(100px)","translatez(-100px)","translatez(100px)"];   
        //存储立方体合并时的transform参数
        var arr1 = ["rotatey(-90deg) translatex(-100px)translatez(100px)","rotatey(90deg) translatex(100px)translatez(100px)",<br>"rotatex(90deg) translatey(-100px)translatez(100px)","rotatex(-90deg) translatey(100px)translatez(100px)","translatez(-200px)","translatez(200px)"];   
        btn.onclick = function(){   
            if(value == 0){   
                value = 1;   
                btn.value = "点击合并";   
                for(var i=0;i<arr1.length;i++){   
                    son[i].style.transform = arr1[i];   
                    console.log(son[i])   
                }   
            }else if(value == 1){   
                value = 0;   
                btn.value = "点击散开";   
                for(var j=0;j<arr0.length;j++){   
                    son[j].style.transform = arr0[j];   
                    console.log(j);   

                }   
            }   
        };   
    }   
</script>
登录后复制

立即学习“前端免费学习笔记(深入)”;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持PHP中文网。

以上就是css3 transform及原生js实现鼠标拖动3D立方体旋转的示例介绍的详细内容,更多请关注php中文网其它相关文章!

Delphi DbgridEh实现鼠标拖动选中列,并使复选框选中

Delphi DbgridEh实现鼠标拖动选中列,并使复选框选中

总结

以上是小编为你收集整理的Delphi DbgridEh实现鼠标拖动选中列,并使复选框选中全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

我们今天的关于JS实现鼠标拖动分页js鼠标拖动窗口的做法的分享已经告一段落,感谢您的关注,如果您想了解更多关于ajax实现鼠标拖动到底部自动加载新的数据的实例、AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】、css3 transform及原生js实现鼠标拖动3D立方体旋转的示例介绍、Delphi DbgridEh实现鼠标拖动选中列,并使复选框选中的相关信息,请在本站查询。

本文标签: