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 相关文章推荐
基于jquery的回到页面顶部按钮
Jun 27 Javascript
seajs中模块的解析规则详解和模块使用总结
Mar 12 Javascript
JavaScript对象的property属性详解
Apr 01 Javascript
javascript强制点击广告的方法
Feb 06 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
Feb 11 Javascript
jQuery实现新消息闪烁标题提示的方法
Mar 11 Javascript
一系列Bootstrap导航条使用方法分享
Apr 29 Javascript
JS只能输入正整数的简单实例
Oct 07 Javascript
原生js实现旋转木马轮播图效果
Feb 27 Javascript
vuejs如何配置less
Apr 25 Javascript
js实现图片实时时钟
Jan 15 Javascript
微信小程序实现电子签名并导出图片
May 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/12/21 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
PHP查询网站的PR值
2013/10/30 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
分享php多功能图片处理类
2016/05/15 PHP
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
jquery实现漂亮的二级下拉菜单代码
2015/08/26 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
使用jquery datatable和bootsrap创建表格实例代码
2017/03/17 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
通过命令行创建vue项目的方法
2017/07/20 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
JS实现简单的文字无缝上下滚动功能示例
2019/06/22 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
详解Python发送邮件实例
2016/01/10 Python
Python3 处理JSON的实例详解
2017/10/29 Python
python3 反射的四种基本方法解析
2019/08/26 Python
手机使用python操作图片文件(pydroid3)过程详解
2019/09/25 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
python上传时包含boundary时的解决方法
2020/04/08 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
企业项目策划书
2014/01/11 职场文书
优秀部门获奖感言
2014/02/14 职场文书
2014年党委工作总结
2014/11/22 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
2016年“世界环境日”校园广播稿
2015/12/18 职场文书
vue项目两种方式实现竖向表格的思路分析
2021/04/28 Vue.js