自定义生成SVG背景图案js插件特效代码

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

以下是 自定义生成SVG背景图案js插件特效代码 的示例演示效果:

当前平台(PC电脑)
  • 平台:

部分效果截图1:

自定义生成SVG背景图案js插件特效代码

部分效果截图2:

自定义生成SVG背景图案js插件特效代码

HTML代码(index.html):

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>自定义生成SVG背景图案js插件</title>
<link rel="stylesheet" type="text/css" href="css/zzsc-demo.css">
<link rel="stylesheet" type="text/css" href="css/demo2.css">
<!--[if IE 9]>
	<script src="js/base64.min.js"></script>
	<script src="js/typedarray.js"></script>
<![endif]-->
</head>
<body>
<div class="zzsc-container">
	<header class="zzsc-header">
		<h1>自定义生成SVG背景图案js插件</h1><br><br>
		<div class="zzsc-demo center">
		  <a href="index.html" class="current">DEMO1</a>
		  <a href="index2.html">在线生成图案</a>
		</div>
	</header>
	<div class="container">
		<div class="row">
			<div class="col-12"><div id="bg-0" class="js-geopattern"></div></div>
			
		</div>
		<div class="row">
			<div class="col-6"><div id="bg-1" class="js-geopattern"></div></div>
			<div class="col-6"><div id="bg-2" class="js-geopattern"></div></div>
			
		</div>
		<div class="row">
			<div class="col-6"><div id="bg-3" class="js-geopattern"></div></div>
			<div class="col-6"><div id="bg-4" class="js-geopattern"></div></div>
			
		</div>
		<div class="row">
			<div class="col-6"><div id="bg-5" class="js-geopattern"></div></div>
			<div class="col-6"><div id="bg-6" class="js-geopattern"></div></div>
		</div>
		<div class="row">
			<div class="col-6"><div id="bg-7" class="js-geopattern"></div></div>
			<div class="col-6"><div id="bg-8" class="js-geopattern"></div></div>
		</div>
	</div>

</div>

<script src="js/jquery-1.11.0.min.js" type="text/javascript"></script>
<script src="js/geopattern.min.js"></script>
<script type="text/javascript">
	var pattern1 = GeoPattern.generate('GitHub');
	var pattern2 = GeoPattern.generate('zzsc');
	var pattern3 = GeoPattern.generate('abcdefghji');
	var pattern4 = GeoPattern.generate('makeinchina');
	var pattern5 = GeoPattern.generate('sjfksdlfjlsdajflsa');
	var pattern6 = GeoPattern.generate('sjkdkerwlncjdfhds');
	var pattern7 = GeoPattern.generate('rngrjgkrjgkrg');
	var pattern8 = GeoPattern.generate('cklzkcklasjdikasjdfois');
	var pattern9 = GeoPattern.generate('12345678910abcdefg');
	$('#bg-0').css('background-image', pattern1.toDataUrl());
	$('#bg-1').css('background-image', pattern2.toDataUrl());
	$('#bg-2').css('background-image', pattern3.toDataUrl());
	$('#bg-3').css('background-image', pattern4.toDataUrl());
	$('#bg-4').css('background-image', pattern5.toDataUrl());
	$('#bg-5').css('background-image', pattern6.toDataUrl());
	$('#bg-6').css('background-image', pattern7.toDataUrl());
	$('#bg-7').css('background-image', pattern8.toDataUrl());
	$('#bg-8').css('background-image', pattern9.toDataUrl());
</script>
</body>
</html>

HTML代码(index2.html):

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>自定义生成SVG背景图案js插件</title>
<link rel="stylesheet" type="text/css" href="css/zzsc-demo.css">
<link rel="stylesheet" type="text/css" href="css/demo1.css">
<!--[if IE 9]>
	<script src="js/base64.min.js"></script>
	<script src="js/typedarray.js"></script>
<![endif]-->
</head>
<body>
<div class="zzsc-container">
	<header class="zzsc-header">
		<h1>自定义生成SVG背景图案js插件</h1><br><br>
		<div class="zzsc-demo center">
		  <a href="index.html">DEMO1</a>
		  <a href="index2.html" class="current">在线生成图案</a>
		</div>
	</header>
	<div id="bg-0" class="js-geopattern"></div>
	<div id="bg-1" class="js-geopattern"></div>
	<input type="text" id="string" value="  在这里输入文字...  " autocomplete="off" />
	<a id="save" href="#">保存图案...</a>
</div>

<script src="js/jquery-1.11.0.min.js" type="text/javascript"></script>
<script src="js/geopattern.min.js"></script>
<script src="js/demo.js"></script>
</body>
</html>

JS代码(demo.js):

var next = (function (){
	var which = 0;
	return function (){
	return{
	prev:which,next:which = (which + 1) % 2}
;
}
;
}
());
	// Hook and debounce input eventfunction onChange($el,cb){
	var last = $el.val();
	$el.on('input',function (){
	var val = $el.val();
	var oldVal;
	if (last !== val){
	oldVal = last;
	last = val;
	typeof cb === 'function' && cb.call($el,val,oldVal);
}
}
);
	return{
	trigger:function (){
	typeof cb === 'function' && cb.call($el,$el.val(),last);
}
}
;
}
var fadeOptions ={
	duration:100,queue:false}
;
	var canvas = document.createElement('canvas');
	var saveButton = document.getElementById('save');
	function prepareDownload(string,pattern){
	if (!canvas){
	canvas = document.createElement('canvas');
}
var ctx = canvas.getContext('2d');
	var img = new Image();
	img.onload = function(){
	canvas.width = this.width;
	canvas.height = this.height;
	ctx.drawImage(img,0,0);
	saveButton.download = string + '.png';
	try{
	saveButton.href = canvas.toDataURL('image/png');
}
catch (err){
	// The above is a security error in IE,so hide the save buttonsaveButton.style.display = 'none';
}
}
;
	img.src = pattern.toDataUri();
}
var changeEvent = onChange($('#string'),function (val){
	var pattern = GeoPattern.generate(val);
	var bg = next();
	$('#bg-' + bg.next).css('background-image',pattern.toDataUrl()).stop().fadeIn(fadeOptions);
	$('#bg-' + bg.prev).stop().fadeOut(fadeOptions);
	prepareDownload(val,pattern);
}
);
	// Some browsers persist field values between refresh$(function (){
	$('#string').val(' 在这里输入文字... ').focus();
	changeEvent.trigger();
}
);
	

JS代码(svg.js):

'use strict';
	var extend = require('extend');
	var XMLNode = require('./xml');
	function SVG(){
	this.width = 100;
	this.height = 100;
	this.svg = new XMLNode('svg');
	this.context = [];
	// Track nested nodesthis.setAttributes(this.svg,{
	xmlns:'http://www.w3.org/2000/svg',width:this.width,height:this.height}
);
	return this;
}
module.exports = SVG;
	// This is a hack so groups work.SVG.prototype.currentContext = function (){
	return this.context[this.context.length - 1] || this.svg;
}
;
	// This is a hack so groups work.SVG.prototype.end = function (){
	this.context.pop();
	return this;
}
;
	SVG.prototype.currentNode = function (){
	var context = this.currentContext();
	return context.lastChild || context;
}
;
	SVG.prototype.transform = function (transformations){
	this.currentNode().setAttribute('transform',Object.keys(transformations).map(function (transformation){
	return transformation + '(' + transformations[transformation].join(',') + ')';
}
).join(' '));
	return this;
}
;
	SVG.prototype.setAttributes = function (el,attrs){
	Object.keys(attrs).forEach(function (attr){
	el.setAttribute(attr,attrs[attr]);
}
);
}
;
	SVG.prototype.setWidth = function (width){
	this.svg.setAttribute('width',Math.floor(width));
}
;
	SVG.prototype.setHeight = function (height){
	this.svg.setAttribute('height',Math.floor(height));
}
;
	SVG.prototype.toString = function (){
	return this.svg.toString();
}
;
	SVG.prototype.rect = function (x,y,width,height,args){
	// Accept array first argumentvar self = this;
	if (Array.isArray(x)){
	x.forEach(function (a){
	self.rect.apply(self,a.concat(args));
}
);
	return this;
}
var rect = new XMLNode('rect');
	this.currentContext().appendChild(rect);
	this.setAttributes(rect,extend({
	x:x,y:y,width:width,height:height}
,args));
	return this;
}
;
	SVG.prototype.circle = function (cx,cy,r,args){
	var circle = new XMLNode('circle');
	this.currentContext().appendChild(circle);
	this.setAttributes(circle,extend({
	cx:cx,cy:cy,r:r}
,args));
	return this;
}
;
	SVG.prototype.path = function (str,args){
	var path = new XMLNode('path');
	this.currentContext().appendChild(path);
	this.setAttributes(path,extend({
	d:str}
,args));
	return this;
}
;
	SVG.prototype.polyline = function (str,args){
	// Accept array first argumentvar self = this;
	if (Array.isArray(str)){
	str.forEach(function (s){
	self.polyline(s,args);
}
);
	return this;
}
var polyline = new XMLNode('polyline');
	this.currentContext().appendChild(polyline);
	this.setAttributes(polyline,extend({
	points:str}
,args));
	return this;
}
;
	// group and context are hacksSVG.prototype.group = function (args){
	var group = new XMLNode('g');
	this.currentContext().appendChild(group);
	this.context.push(group);
	this.setAttributes(group,extend({
}
,args));
	return this;
}
;
	

JS代码(xml.js):

'use strict';
	var XMLNode = module.exports = function (tagName){
	if (!(this instanceof XMLNode)){
	return new XMLNode(tagName);
}
this.tagName = tagName;
	this.attributes = Object.create(null);
	this.children = [];
	this.lastChild = null;
	return this;
}
;
	XMLNode.prototype.appendChild = function (child){
	this.children.push(child);
	this.lastChild = child;
	return this;
}
;
	XMLNode.prototype.setAttribute = function (name,value){
	this.attributes[name] = value;
	return this;
}
;
	XMLNode.prototype.toString = function (){
	var self = this;
	return ['<',self.tagName,Object.keys(self.attributes).map(function (attr){
	return [' ',attr,'="',self.attributes[attr],'"'].join('');
}
).join(''),'>',self.children.map(function (child){
	return child.toString();
}
).join(''),'</',self.tagName,'>'].join('');
}
;
	

CSS代码(demo1.css):

body,html{margin:0;padding:0;width:100%;height:100%;background:#7f7f7f;}
.js-geopattern,#string{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;z-index:5;}
input{text-align:center;color:#f7f7f7;background:rgba(0,0,0,0);border:0;outline:0;text-shadow:0 0 5px rgba(255,255,255,0.75);font-size:30pt;}
input::-ms-clear{display:none;}
#save{position:absolute;bottom:0;width:100%;text-align:center;text-decoration:none;color:white;font-size:18px;line-height:36px;font-weight:200;background:rgba(255,255,255,0.1);z-index:8;}
#save:hover{background:rgba(255,255,255,0.75);color:black;}

CSS代码(demo2.css):

body,html{height:100%;width:100%;margin:0;padding:0;left:0;top:0;font-size:100%}
.center,.container{margin-left:auto;margin-right:auto}
*{font-family:Lato,Helvetica,sans-serif;line-height:1.5}
h1{font-size:2.5rem}
h2{font-size:2rem}
h3{font-size:1.375rem}
h4{font-size:1.125rem}
h5{font-size:1rem}
h6{font-size:.875rem}
p{font-size:1.125rem;font-weight:200;line-height:1.8}
.font-light{font-weight:300}
.font-regular{font-weight:400}
.font-heavy{font-weight:700}
.left{text-align:left}
.right{text-align:right}
.center{text-align:center}
.justify{text-align:justify}
.container{width:90%}
.row{position:relative;width:100%}
.row [class^=col]{float:left;margin:.5rem 2%;min-height:.125rem}
.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9{width:96%}
.col-1-sm{width:4.33%}
.col-2-sm{width:12.66%}
.col-3-sm{width:21%}
.col-4-sm{width:29.33%}
.col-5-sm{width:37.66%}
.col-6-sm{width:46%}
.col-7-sm{width:54.33%}
.col-8-sm{width:62.66%}
.col-9-sm{width:71%}
.col-10-sm{width:79.33%}
.col-11-sm{width:87.66%}
.col-12-sm{width:96%}
.row::after{content:"";display:table;clear:both}
.hidden-sm{display:none}
@media only screen and (min-width:33.75em){.container{width:80%}
}
@media only screen and (min-width:45em){.col-1{width:4.33%}
.col-2{width:12.66%}
.col-3{width:21%}
.col-4{width:29.33%}
.col-5{width:37.66%}
.col-6{width:46%}
.col-7{width:54.33%}
.col-8{width:62.66%}
.col-9{width:71%}
.col-10{width:79.33%}
.col-11{width:87.66%}
.col-12{width:96%}
.hidden-sm{display:block}
}
@media only screen and (min-width:60em){.container{width:75%;max-width:60rem}
}
.js-geopattern{height:300px;}
/*body,html{margin:0;padding:0;width:100%;height:100%;font-family:sans-serif;background:#7f7f7f;}
.js-geopattern,#string{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;}
input{text-align:center;color:#f7f7f7;background:rgba(0,0,0,0);border:0;outline:0;text-shadow:0 0 5px rgba(255,255,255,0.75);font-size:30pt;}
input::-ms-clear{display:none;}
#save{position:absolute;bottom:0;width:100%;text-align:center;text-decoration:none;color:white;font-size:18px;line-height:36px;font-weight:200;background:rgba(255,255,255,0.1);}
#save:hover{background:rgba(255,255,255,0.75);color:black;}
*/

CSS代码(zzsc-demo.css):

@font-face{font-family:'icomoon';src:url('../fonts/icomoon.eot?rretjt');src:url('../fonts/icomoon.eot?#iefixrretjt') format('embedded-opentype'),url('../fonts/icomoon.woff?rretjt') format('woff'),url('../fonts/icomoon.ttf?rretjt') format('truetype'),url('../fonts/icomoon.svg?rretjt#icomoon') format('svg');font-weight:normal;font-style:normal;}
[class^="icon-"],[class*=" icon-"]{font-family:'icomoon';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;/* Better Font Rendering =========== */
-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
body,html{font-size:100%;padding:0;margin:0;}
/* Reset */
*,*:after,*:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
/* Clearfix hack by Nicolas Gallagher:http://nicolasgallagher.com/micro-clearfix-hack/ */
.clearfix:before,.clearfix:after{content:" ";display:table;}
.clearfix:after{clear:both;}
body{background:#494A5F;color:#D5D6E2;font-weight:500;font-size:1.05em;font-family:"Microsoft YaHei","宋体","Segoe UI","Lucida Grande",Helvetica,Arial,sans-serif,FreeSans,Arimo;}
a{color:#2fa0ec;text-decoration:none;outline:none;}
a:hover,a:focus{color:#74777b;}
.zzsc-container{margin:0 auto;}
.bgcolor-1{background:#f0efee;}
.bgcolor-2{background:#f9f9f9;}
.bgcolor-3{background:#e8e8e8;}
/*light grey*/
.bgcolor-4{background:#2f3238;color:#fff;}
/*Dark grey*/
.bgcolor-5{background:#df6659;color:#521e18;}
/*pink1*/
.bgcolor-6{background:#2fa8ec;}
/*sky blue*/
.bgcolor-7{background:#d0d6d6;}
/*White tea*/
.bgcolor-8{background:#3d4444;color:#fff;}
/*Dark grey2*/
.bgcolor-9{background:#ef3f52;color:#fff;}
/*pink2*/
.bgcolor-10{background:#64448f;color:#fff;}
/*Violet*/
.bgcolor-11{background:#3755ad;color:#fff;}
/*dark blue*/
.bgcolor-12{background:#3498DB;color:#fff;}
/*light blue*/
.bgcolor-20{background:#494A5F;color:#D5D6E2;}
/* Header */
.zzsc-header{position:absolute;top:0;left:0;width:100%;padding:1em 190px 1em;letter-spacing:-1px;text-align:center;z-index:10;}
.zzsc-header h1{color:#D5D6E2;font-weight:600;font-size:2em;line-height:1;margin-bottom:0;font-family:"Microsoft YaHei","宋体","Segoe UI","Lucida Grande",Helvetica,Arial,sans-serif,FreeSans,Arimo;}
.zzsc-header h1 span{font-family:"Microsoft YaHei","宋体","Segoe UI","Lucida Grande",Helvetica,Arial,sans-serif,FreeSans,Arimo;display:block;font-size:60%;font-weight:400;padding:0.8em 0 0.5em 0;color:#c3c8cd;}
/*nav*/
.zzsc-demo a{color:#fff;text-decoration:none;}
.zzsc-demo{width:100%;padding-bottom:1.2em;}
.zzsc-demo a{display:inline-block;margin:0.5em;padding:0.6em 1em;border:3px solid #fff;font-weight:700;}
.zzsc-demo a:hover{opacity:0.6;}
.zzsc-demo a.current{background:#1d7db1;color:#fff;}
/* Top Navigation Style */
.zzsc-links{position:relative;display:inline-block;white-space:nowrap;font-size:1.5em;text-align:center;}
.zzsc-links::after{position:absolute;top:0;left:50%;margin-left:-1px;width:2px;height:100%;background:#dbdbdb;content:'';-webkit-transform:rotate3d(0,0,1,22.5deg);transform:rotate3d(0,0,1,22.5deg);}
.zzsc-icon{display:inline-block;margin:0.5em;padding:0em 0;width:1.5em;text-decoration:none;}
.zzsc-icon span{display:none;}
.zzsc-icon:before{margin:0 5px;text-transform:none;font-weight:normal;font-style:normal;font-variant:normal;font-family:'icomoon';line-height:1;speak:none;-webkit-font-smoothing:antialiased;}
/* footer */
.zzsc-footer{width:100%;padding-top:10px;}
.zzsc-small{font-size:0.8em;}
.center{text-align:center;}
/****/
.related{color:#fff;background:#494A5F;text-align:center;font-size:1.25em;padding:0.5em 0;overflow:hidden;}
.related > a{vertical-align:top;width:calc(100% - 20px);max-width:340px;display:inline-block;text-align:center;margin:20px 10px;padding:25px;font-family:"Microsoft YaHei","宋体","Segoe UI","Lucida Grande",Helvetica,Arial,sans-serif,FreeSans,Arimo;}
.related a{display:inline-block;text-align:left;margin:20px auto;padding:10px 20px;opacity:0.8;-webkit-transition:opacity 0.3s;transition:opacity 0.3s;-webkit-backface-visibility:hidden;}
.related a:hover,.related a:active{opacity:1;}
.related a img{max-width:100%;opacity:0.8;border-radius:4px;}
.related a:hover img,.related a:active img{opacity:1;}
.related h3{font-family:"Microsoft YaHei",sans-serif;}
.related a h3{font-weight:300;margin-top:0.15em;color:#fff;}
/* icomoon */
.icon-zzsc-home-outline:before{content:"\e5000";}
.icon-zzsc-arrow-forward-outline:before{content:"\e5001";}
@media screen and (max-width:50em){.zzsc-header{padding:3em 10% 4em;}
.zzsc-header h1{font-size:2em;}
}
@media screen and (max-width:40em){.zzsc-header h1{font-size:1.5em;}
}
@media screen and (max-width:30em){.zzsc-header h1{font-size:1.2em;}
}
附件:下载该文件资源,减少时间成本(增值服务)
留言
该资源可下载
File Source
.rar
54.25 KB
html5特效
最新结算
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
HTML5实现CSS滤镜图片切换特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery+css3实现信封效果
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章