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 文件传参及处理技巧分析
May 13 Javascript
javascript下高性能字符串连接StringBuffer类
Aug 16 Javascript
js中传递特殊字符(+,&amp;)的方法
Jan 16 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
Oct 31 Javascript
js鼠标移动时禁止选中文字
Feb 19 Javascript
angular 用拦截器统一处理http请求和响应的方法
Jun 08 Javascript
vue2.0.js的多级联动选择器实现方法
Feb 09 Javascript
详解vue-router 命名路由和命名视图
Jun 01 Javascript
js+SVG实现动态时钟效果
Jul 14 Javascript
解决vue的过渡动画无法正常实现问题
Oct 31 Javascript
jQuery实现简易QQ聊天框
Feb 10 jQuery
javascript设计模式 ? 状态模式原理与用法实例分析
Apr 22 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
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
2016/03/02 PHP
php微信开发接入
2016/08/27 PHP
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
angular-ui-sortable实现可拖拽排序列表
2016/12/28 Javascript
详解JS去重及字符串奇数位小写转大写
2016/12/29 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
JS验证不重复验证码
2017/02/10 Javascript
详解如何使用 vue-cli 开发多页应用
2017/12/16 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
Vue 实现一个命令式弹窗组件功能
2019/09/25 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
[02:47]3.19DOTA2发布会 国服成长历程回顾
2014/03/25 DOTA
python不带重复的全排列代码
2013/08/13 Python
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
Django Rest framework频率原理与限制
2019/07/26 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
Python csv模块使用方法代码实例
2019/08/29 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
python 如何将office文件转换为PDF
2020/09/22 Python
extern在函数声明中是什么意思
2014/01/19 面试题
保护环境的建议书
2014/03/12 职场文书
会计学习心得体会
2014/09/09 职场文书
追讨欠款律师函
2015/06/24 职场文书