jquery实现可旋转可拖拽的文字效果代码


Posted in Javascript onJanuary 27, 2016

本文实例讲述了jquery实现可旋转可拖拽的文字效果代码。分享给大家供大家参考,具体如下:

运行效果截图如下:

jquery实现可旋转可拖拽的文字效果代码

具体代码如下:

<html>
 <head>
  <title>test</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <script type="text/javascript" src="jquery.js"></script>
  <script type="text/javascript" >
   function scaleXBlock(blocker, scaleX){
    blocker.css({
     "-moz-transform": 'scaleX(' + scaleX + ')' ,
     "-webkit-transform": 'scaleX(' + scaleX + ')' ,
     "-o-transform": 'scaleX(' + scaleX + ')',
     "-ms-transform": 'scaleX(' + scaleX + ')',
     "transform": 'scaleX(' + scaleX + ')'
    });
   }
   function getPosition(event){
    return {
     x: parseInt(event.pageX || event.X),
     y: parseInt(event.pageY || event.Y)
    }
   }
   function cancelEvent(event){
    if(event.preventDefault ) {
     event.preventDefault(); 
    } else {
     //IE中阻止函数器默认动作的方式 
     event.returnValue = false; 
    }
    return false;
   }
   function stopDrag(blocker){
    blocker.data('draginfo', {
     isDrag: false
    });
    blocker.css('cursor', "arrow");
   }
   function drag(blocker){
    blocker.data('draginfo', {
     isDrag: false
    });
    blocker.css("position", "absolute");
    blocker.mousedown(function(event){
     event = event || window.event;
     var position = getPosition(event),
      offset = blocker.offset(),
      offsetX = position.x - parseInt(offset.left),
      offsetY = position.y - parseInt(offset.top);
     blocker.css('cursor', "move");
     blocker.data('draginfo', {
      isDrag: true,
      offsetX: offsetX,
      offsetY: offsetY 
     });
     cancelEvent(event);
    });
    blocker.mouseup(function(){
     stopDrag($(this));
    });
    $(document).mousemove(function(event){
     var dragInfo = blocker.data('draginfo');
     if(!dragInfo.isDrag) { 
      return;
     }
     event = event || window.event;
     var position = getPosition(event),
      x = position.x - dragInfo.offsetX,
      y = position.y - dragInfo.offsetY;
     blocker.css({
      "left": x + "px",
      "top": y + "px"
     });
     cancelEvent(event);
    }).mouseup(function(){
     stopDrag(blocker);
    });
   }
   function loopScaleXBlock(timeout, mode, blocker, scaleX){
    scaleXBlock(blocker, scaleX);
    setTimeout(function(){
     if(mode == "bigger") {
      if(scaleX < 1) {
       scaleX += 0.05;
      } else {
       mode = "smaller";
       scaleX = 1;
      }
     } else {
      if(scaleX > 0) {
       scaleX -= 0.05;
      } else {
       mode = "bigger";
       scaleX = 0.05;
      }
     }
     loopScaleXBlock(timeout, mode, blocker, scaleX);
    }, timeout);
   }
   function initDrag(){
    var dragList = $(".drag");
    for(var i=0,length=dragList.length; i<length; i++) {
     drag($(dragList[i]));
    }
   }
   function initScaleX(){
    var scaleXList = $(".scale");
    for(var i=0,length=scaleXList.length; i<length; i++) {
     loopScaleXBlock(10 * i + 10, "smaller", $(scaleXList[i]), 1);
    }
   }
   $(document).ready(function(){
    initScaleX();
    initDrag();
   });
  </script>
  <style type="text/css" >
   body 
   { 
    margin:0;
    background:black;
   }
   .block 
   { 
    position: absolute;
    text-align: center; 
    display: block; 
    width: 250px; 
    height: 250px; 
    background: #494949;
    font-size: 80px;
    color: #fff;
    line-height: 125px;
    text-shadow: 2px 2px 2px #fff;
    box-shadow: 2px 2px 2px #fff;
    cursor: pointer;
    opacity: 0.6;
    filter: alpha(opacity=60);
   }
   #scale
   {
    left:0;
    top:0;
   }
   #scale2
   {
    left:300px;
    top:0;
    background: #F2F2F2;
    color: orange;
   }
   #scale3
   {
    left:600px;
    top:0;
    background: orange;
    color: #494949;
   }
   #scale4
   {
    left:900px;
    top:0;
    background: green;
    color: gray;
   }
   #scale5
   {
    left:1200px;
    top:0;
    background: #494949;
    color: orange;
   }
  </style>
 </head>
 <body>
  <div class="block scale drag" id="scale">
   欢迎来看咧
  </div>
  <div class="block scale drag" id="scale2">
   欢迎来看咧
  </div>
  <div class="block scale drag" id="scale3">
   欢迎来看咧
  </div>
  <div class="block scale drag" id="scale4">
   欢迎来看咧
  </div>
  <div class="block scale drag" id="scale5">
   欢迎来看咧
  </div>
 </body>
</html>

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

Javascript 相关文章推荐
JS获取地址栏参数的几种方法小结
Feb 28 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
Jun 12 Javascript
js绘制圆形和矩形的方法
Aug 05 Javascript
JS上传组件FileUpload自定义模板的使用方法
May 10 Javascript
html5+canvas实现支持触屏的签名插件教程
May 08 Javascript
JS实现点击Radio动态更新table数据
Jul 18 Javascript
jQuery实现表格冻结顶栏效果
Aug 20 jQuery
Angularjs渲染的 using 指令的星级评分系统示例
Nov 09 Javascript
常见的浏览器存储方式(cookie、localStorage、sessionStorage)
May 07 Javascript
JS异步处理的进化史深入讲解
Aug 25 Javascript
微信小程序拼接图片链接无底洞深入探究
Sep 03 Javascript
vue自定义switch开关组件,实现样式可自行更改
Nov 01 Javascript
jquery+css3实现会动的小圆圈效果
Jan 27 #Javascript
再谈JavaScript异步编程
Jan 27 #Javascript
简单介绍jsonp 使用小结
Jan 27 #Javascript
理解javascript异步编程
Jan 27 #Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
Jan 27 #Javascript
AngularJS转换响应内容
Jan 27 #Javascript
jQuery+css实现的切换图片功能代码
Jan 27 #Javascript
You might like
PHP跨时区(UTC时间)应用解决方案
2013/01/11 PHP
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
jquery自动将form表单封装成json的具体实现
2014/03/17 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
原生js实现水平方向无缝滚动
2017/01/10 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
Angular4自制一个市县二级联动组件示例
2017/11/21 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
JavaScript将数组转换为链表的方法
2020/02/16 Javascript
5个你不知道的JavaScript字符串处理库(小结)
2020/06/01 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
2014/08/15 Python
python之pexpect实现自动交互的例子
2019/07/25 Python
python如何求100以内的素数
2020/05/27 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
西班牙电子产品购物网站:Electronicamente
2018/07/26 全球购物
求职简历自荐信
2013/10/20 职场文书
公司培训欢迎词
2014/01/10 职场文书
房地产营销策划方案
2014/02/08 职场文书
客服专员岗位职责
2014/02/28 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
党的群众路线教育实践活动查摆问题及整改措施
2014/10/10 职场文书
初二学生评语大全
2014/12/26 职场文书
团组织推优材料
2014/12/29 职场文书
2015年度物业公司工作总结
2015/04/27 职场文书
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android