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实现页面打印的三种方法
Mar 05 Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
Sep 14 Javascript
通过js动态操作table(新增,删除相关列信息)
May 23 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
Apr 08 Javascript
Jquery 实现grid绑定模板
Jan 28 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
Sep 22 Javascript
JavaScript你不知道的一些数组方法
Aug 18 Javascript
vue短信验证性能优化如何写入localstorage中
Apr 25 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
Sep 25 Javascript
微信小程序webview实现长按点击识别二维码功能示例
Jan 24 Javascript
ES6小技巧之代替lodash
Jun 07 Javascript
Vue组件跨层级获取组件操作
Jul 27 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制作静态网站的模板框架(三)
2006/10/09 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
javascript document.execCommand() 常用解析
2009/12/14 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
2013/09/21 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
JavaScript的Date()方法使用详解
2015/06/09 Javascript
Javascript中函数名.length属性用法分析(对比arguments.length)
2016/09/16 Javascript
关于javascript sort()排序你可能忽略的一点理解
2017/07/18 Javascript
angularjs2 ng2 密码隐藏显示的实例代码
2017/08/01 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
jQuery中图片展示插件highslide.js的简单dom
2018/04/22 jQuery
Vue混入mixins滚动触底的方法
2019/11/22 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
用python编写第一个IDA插件的实例
2018/05/29 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
利用Python产生加密表和解密表的实现方法
2019/10/15 Python
基于python实现雪花算法过程详解
2019/11/16 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
Perfumetrader荷兰:香水、化妆品和护肤品在线商店
2017/09/15 全球购物
介绍一下你对SOA的认识
2016/04/24 面试题
桥梁与隧道工程专业本科生求职信
2013/10/08 职场文书
保险专业大专生求职信
2013/10/26 职场文书
大学生实习感言
2014/01/16 职场文书
社区庆中秋节活动方案
2014/02/07 职场文书
创建文明学校实施方案
2014/03/11 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
个人纪律作风整改措施思想汇报
2014/10/12 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
婚礼答谢礼品
2015/01/20 职场文书
仓库保管员岗位职责
2015/02/09 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android