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 相关文章推荐
javascript URL锚点取值方法
Feb 25 Javascript
JS array 数组详解
Mar 22 Javascript
随鼠标移动的时钟非常漂亮遗憾的是只支持IE
Aug 12 Javascript
AngularJS 模块化详解及实例代码
Sep 14 Javascript
AngularJs 动态加载模块和依赖
Sep 15 Javascript
vue生成随机验证码的示例代码
Sep 29 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
Nov 20 Javascript
angularjs性能优化的方法
Sep 05 Javascript
对vue中v-if的常见使用方法详解
Sep 28 Javascript
Vue插槽原理与用法详解
Mar 05 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
Mar 04 Javascript
npm ci命令的基本使用方法
Sep 20 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
基于mysql的bbs设计(三)
2006/10/09 PHP
PHP+MySQL 手工注入语句大全 推荐
2009/10/30 PHP
php获取本地图片文件并生成xml文件输出具体思路
2013/04/27 PHP
document.documentElement的一些使用技巧
2013/04/18 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
完美JQuery图片切换效果的简单实现
2016/07/21 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
js 获取图像缩放后的实际宽高,位置等信息
2017/03/07 Javascript
详解webpack分离css单独打包
2017/06/21 Javascript
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
js常用正则表达式集锦
2019/05/17 Javascript
vue el-upload上传文件的示例代码
2020/12/21 Vue.js
Python 除法小技巧
2008/09/06 Python
Python中给List添加元素的4种方法分享
2014/11/28 Python
简单讲解Python中的字符串与字符串的输入输出
2016/03/13 Python
Python实现字典的遍历与排序功能示例
2017/12/23 Python
Python实现Event回调机制的方法
2019/02/13 Python
python pandas生成时间列表
2019/06/29 Python
Python3连接Mysql8.0遇到的问题及处理步骤
2020/02/17 Python
python opencv进行图像拼接
2020/03/27 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
python代码实现将列表中重复元素之间的内容全部滤除
2020/05/22 Python
keras中的loss、optimizer、metrics用法
2020/06/15 Python
大数据分析用java还是Python
2020/07/06 Python
特步官方商城:Xtep
2017/03/21 全球购物
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
公司员工活动策划方案
2014/08/20 职场文书
班级活动总结格式
2014/08/30 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
2015年党支部书记工作总结
2015/05/21 职场文书
毕业赠语大全
2015/06/23 职场文书