jq自定义插件—$.fn的使用之(打字机)

原理:
  1.         把html里的代码读进来,
  2.          然后跳过“<”和“>”之间的代码,
  3.          顺便保存了内容的格式,
  4.          然后一个定时器,逐个输出。

     用到的基础知识:
jQuery为开发插件提拱了两个方法,分别是:
                jQuery.fn.extend(object);
                jQuery.extend(object);

                jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法。
                jQuery.fn.extend(object);给jQuery对象添加方法。
        
                $.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。 
                如扩展$.fn.abc() 
                那么你可以这样子:$("#div").abc(); 

                $.fx是指jquery的特效。 
                如使用显示、滑动、淡入淡出、动画等。 

                $.fx.off可以关闭动画,其实是直接显示结果。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="keyword" content="">
<meta name="description" content="">
</head>
<body>
<div class="autotype" id="autotype">
<p>一场雨把我困在这里</p>
<br/>
<p>你温柔的表情</p>
<p>会让我伤心</p>
<br/>
<p>六月的雨,只是无情的你~</p>
</div>
<script src="http://file2.ci123.com/ast/js/jquery_172.js"></script>
<script>


$.fn.autotype = function(){
var $text = $(this);
console.log('this',this);

var str = $text.html();//返回被选 元素的内容

var index = 0;
var x = $text.html('');
//$text.html()和$(this).html('')有区别

var timer = setInterval(function(){
//substr(index, 1) 方法在字符串中抽取从index下标开始的一个的字符
var current = str.substr(index, 1);

if(current == '<'){
//indexOf() 方法返回">"在字符串中首次出现的位置。
index = str.indexOf('>', index) + 1;
}else{
index ++ ;
}

//console.log(["0到index下标下的字符",str.substring(0, index)],["符号",index & 1 ? '_': '']);
//substring() 方法用于提取字符串中介于两个指定下标之间的字符
$text.html(str.substring(0, index) + (index & 1 ? '_': ''));
if(index >= str.length){
clearInterval(timer);
}
},100);
};

$("#autotype").autotype();
</script>
</body>
</html>

再简单介绍下jQuery的$.extend:
$.extend
扩展jQuery对象本身。
用来在jQuery命名空间上增加新函数。

如下:在jQuery命名空间上增加两个函数。

<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script src="http://file2.ci123.com/ast/js/jquery_172.js"></script>
<script>

jQuery.extend({
min:function(a, b){return a < b ? a : b;},
max:function(a, b){return a < b ? a : b}
});

alert("min" + "——" + jQuery.min(1, 2));
alert("max" + "——" + jQuery.max(6, 8));
</script>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值