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 相关文章推荐
一个不错的应用,用于提交获取文章内容,不推荐用
Mar 03 Javascript
document.onreadystatechange事件的用法分析
Oct 17 Javascript
Javascript笔记一 js以及json基础使用说明
May 22 Javascript
解析页面加载与js函数的执行 onload or ready
Dec 12 Javascript
javascript中replace( )方法的使用
Apr 24 Javascript
JS实现适合于后台使用的动画折叠菜单效果
Sep 21 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
Mar 11 Javascript
jQuery 判断是否包含在数组中Array[]的方法
Aug 03 Javascript
浅谈js中StringBuffer类的实现方法及使用
Sep 02 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
Jan 15 Javascript
微信小程序 定位到当前城市实现实例代码
Feb 23 Javascript
JS中的两种数据类型及实现引用类型的深拷贝的方法
Aug 12 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 curl获取301或302转向的网址问题的解决方法
2011/06/02 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
jQuery的实现原理的模拟代码 -3 事件处理
2010/08/03 Javascript
Js+Flash实现访问剪切板操作
2012/11/20 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
2013/07/09 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
jQuery动态产生select option下拉列表
2017/03/15 Javascript
Angular2中select用法之设置默认值与事件详解
2017/05/07 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
微信小程序动态显示项目倒计时
2019/06/20 Javascript
js实现详情页放大镜效果
2020/10/28 Javascript
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
教大家使用Python SqlAlchemy
2016/02/12 Python
Python处理json字符串转化为字典的简单实现
2016/07/07 Python
Python打包可执行文件的方法详解
2016/09/19 Python
Python中查看文件名和文件路径
2017/03/31 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
Python3标准库总结
2019/02/19 Python
python sorted函数的小练习及解答
2019/09/18 Python
pytorch实现MNIST手写体识别
2020/02/14 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
快速一键生成Python爬虫请求头
2021/03/04 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
美国最古老的精致书写工具制造商:A.T. Cross(高仕)
2018/01/30 全球购物
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
全球领先的中国制造商品在线批发平台:DHgate
2020/01/28 全球购物
大学生求职中的自我评价
2013/10/01 职场文书
公司授权委托书范文
2014/09/21 职场文书
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS
Golang中channel的原理解读(推荐)
2021/10/16 Golang