每天学一个jquery插件-文字的特效

每天一个jquery插件-文字的特效

文字的特效

关键词,水

效果如下
在这里插入图片描述

html部分

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>文字的特效</title>
		<script src="js/jquery-3.4.1.min.js"></script>
		<script src="js/wzdtx.js"></script>
		<style>
			*{
     
     
				margin: 0;
				padding: 0;
			}
			#div{
     
     
				border: 1px solid lightgray;
				width:80%;
				margin: 10px auto;
				text-indent: 36px;
				line-height: 36px;
			}
		</style>
	</head>
	<body>
		<div id="div">
			--省略的文字部分--
		</div>
	</body>
</html>
<script>
	var temp = wzdtx("div");
	temp.action();
</script>

js部分

var wzdtx = function(id){
    
    
	var $id = $("#"+id);
	//取得这里面所有的文字,然后全部细分成一个个span标签
	var str = $id.text();
	$id.text("");
	str.split("").forEach(item=>{
    
    
		var $span = $("<span>"+item+"</span>");
		$span.appendTo($id);
	})
	return{
    
    
		$id:$id,
		action:function(){
    
    
			var that = this;
			var $spans = that.$id.find("span");
			var index = 0;
			var length = $spans.length;
			var t = setInterval(function(){
    
    
				var c1 = Math.floor(Math.random()*256);
				var c2 = Math.floor(Math.random()*256);
				var c3 = Math.floor(Math.random()*256);
				$($spans[index]).css("color","rgb("+c1+","+c2+","+c3+")")
				index++;
				if(index>=length){
    
    
					clearInterval(t);
				}
			},50)
		}
	}
}
  • 找到对应容器,留下控制对象
  • 然后把容器里面的文本全部挨个用span包裹起来,当然特殊的字符格式要记得跳过才能增加流畅性
  • 然后在渲染的时候按照标记来逐个延时修改颜色,在这里随机产生rgb的三个数字再修改进对应span标签的行内样式就行了

猜你喜欢

转载自blog.csdn.net/weixin_44142582/article/details/113063327
今日推荐