css background动态图片,如何动态更新CSS background属性中的SVG图形

JavaScript

语言:

JaveScriptBabelCoffeeScript

确定

var iStart = new Date();

var fast = 10,

slow = 1;

var bg = "url(\"data:image/svg+xml;utf8,\")";

var bgs = " %w% %h%";

var w = 99,

h = 80,

cw = 99,

ch = 80,

_bg, _bgs, rx, ry, last;

var r = 45;

var bLocked = false;

var $actionboard = $(".actionboard");

var $log = $(".log");

$actionboard.on("mousemove", function(e) {

if (!bLocked) {

var _x = e.offsetX;

var _y = e.offsetY;

w = _x;

h = _y;

}

draw();

});

$(document).on("click", function() {

var i = new Date() - iStart;

var s = " {\nbackground: " + _bg + ";\nbackground-size: " + _bgs + ";\n}";

if (last !== s) {

$log.val(".rep" + i + s + "\n\n" + $log.val());

last = s;

} else {

$log.toggleClass("blink");

}

})

function draw() {

_bg = bg.replace(/%r%/g, r).replace(/%cw%/g, cw).replace(/%w%/g, w).replace(/%ch%/g, ch).replace(/%h%/g, h);

_bgs = bgs.replace(/%w%/g, w + "px").replace(/%h%/g, h + "px");

$actionboard.css({

"background": _bg,

"background-size": _bgs

});

};

$(window).on("keydown", function(e) {

var code = e.keyCode ? e.keyCode : e.which;

var bShift = !!e.shiftKey;

var bAlt = !!e.altKey;

switch (code) {

case 38: // up. move up

cw += (bShift) ? fast : slow;

break;

case 40: // down. move down

cw -= (bShift) ? fast : slow;

break;

case 39: // right. rotate with clockvise, move to right

(bAlt) ? (r += 5) : (bShift) ? ch += fast: ch += slow;

break;

case 37: // left. rotate anti-clockvise, move to left

(bAlt) ? (r -= 5) : (bShift) ? ch -= fast: ch -= slow;

break;

case 32: // left. rotate anti-clockvise, move to left

bLocked = !bLocked;

if (bLocked) {

rx = w;

ry = h;

}

break;

}

draw();

e.preventDefault();

return false;

});

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值