妖蓝君
js+html几种不同的抽奖大转盘,转来看看

组织办活动,到了抽题答题的环节我想用这么一个转盘选题,总比拿箱子放纸条要高端大气多了

找个差不多的自己改一下P点图片就OK了其实,有什么更好的方案么

第一种是JS+HTML的:

[mw_shl_code=javascript,true]<!DOCTYPE HTML>

*本站禁止HTML标签噢*

*本站禁止HTML标签噢*

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

*本站禁止HTML标签噢* flash抽奖转盘通用模板</title>

<style type="text/css">

#flashContent { width:510px; height:510px; }

#layer { background:#f5f5f5; border:#000 solid 1px; padding:20px; position:absolute; left:50%; top:50%; display:none; }

</style>

</head>

*本站禁止HTML标签噢*

<div id="flashContent"></div>

*本站禁止HTML标签噢*

flashHoler = "flashContent" //加载flash的容器ID

autoPlay = "yes" //初始化时是否自动旋转,"yes" or "no"

setPointer="no" //初始化时是否设置鼠标指针,"yes" or "no"

url_bg = "bg.png"; //转盘背景图片

url_prize = "prize.png"; //奖品图片

url_pointer = "pointer.png"; //指针图片

url_btnStart = "btnStart.swf"; //开始按钮图片,可以是图片或flash

url_btnOver = "btnOver.gif"; //鼠标经过图片

url_btnWait = "btnWait.gif"; //旋转过程中按钮图片

url_btnSuc = "btnSuc.gif"; //旋转结束后按钮图片

W_bg = "510"; //背景图片尺寸

W_btn = "124"; //按钮图片尺寸

W_pointer = "150"; //指针图片宽度

H_pointer = "255"; //指针图片高度

totleNum = 10; //奖品个数

turns = 10; //旋转圈数

stopNum = Math.floor(Math.random()*10)+1; //中奖奖品

</script>

<script src="loadFlash.js"></script>

<script src="jquery-1.7.min.js"></script>

</body>

</html>[/mw_shl_code]

上面中奖奖品的地方是我自己改了个随机数,附件里面的demo3.html是这个

第二种是HTML5的:

图片看起来很渣对吧,页面没有用图片,就一个HTML,这个圈全是canvas里面画出来的,转的很平稳,最后还是慢慢停下的

[mw_shl_code=javascript,true]<input type="button" value="开始旋转" style="float: left;" />

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

<canvas id="wheelcanvas" width="500" height="500"></canvas>

<script type="application/javascript">

var colors = ["#B8D430", "#3AB745", "#029990", "#3501CB",

"#2E2C75", "#673A7E", "#CC0071", "#F80120",

"#F35B20", "#FB9A00", "#FFCC00", "#FEF200"];

var restaraunts = ["北京", "上海", "天津", "南京",

"杭州", "深圳", "武汉", "济南",

"重庆", "大连", "合肥", "郑洲"];

var startAngle = 0;

var arc = Math.PI / 6;

var spinTimeout = null;

var spinArcStart = 10;

var spinTime = 0;

var spinTimeTotal = 0;

var ctx;

function draw() {

drawRouletteWheel();

}

function drawRouletteWheel() {

var canvas = document.getElementById("wheelcanvas");

if (canvas.getContext) {

var outsideRadius = 200;

var textRadius = 160;

var insideRadius = 125;

ctx = canvas.getContext("2d");

ctx.clearRect(0,0,500,500);

ctx.strokeStyle = "black";

ctx.lineWidth = 2;

ctx.font = 'bold 12px sans-serif';

for(var i = 0; i < 12; i++) {

var angle = startAngle + i * arc;

ctx.fillStyle = colors;

ctx.beginPath();

ctx.arc(250, 250, outsideRadius, angle, angle + arc, false);

ctx.arc(250, 250, insideRadius, angle + arc, angle, true);

ctx.stroke();

ctx.fill();

ctx.save();

ctx.shadowOffsetX = -1;

ctx.shadowOffsetY = -1;

ctx.shadowBlur = 0;

ctx.shadowColor = "rgb(220,220,220)";

ctx.fillStyle = "black";

ctx.translate(250 + Math.cos(angle + arc / 2) * textRadius, 250 + Math.sin(angle + arc / 2) * textRadius);

ctx.rotate(angle + arc / 2 + Math.PI / 2);

var text = restaraunts;

ctx.fillText(text, -ctx.measureText(text).width / 2, 0);

ctx.restore();

}

//Arrow

ctx.fillStyle = "black";

ctx.beginPath();

ctx.moveTo(250 - 4, 250 - (outsideRadius + 5));

ctx.lineTo(250 + 4, 250 - (outsideRadius + 5));

ctx.lineTo(250 + 4, 250 - (outsideRadius - 5));

ctx.lineTo(250 + 9, 250 - (outsideRadius - 5));

ctx.lineTo(250 + 0, 250 - (outsideRadius - 13));

ctx.lineTo(250 - 9, 250 - (outsideRadius - 5));

ctx.lineTo(250 - 4, 250 - (outsideRadius - 5));

ctx.lineTo(250 - 4, 250 - (outsideRadius + 5));

ctx.fill();

}

}

function spin() {

spinAngleStart = Math.random() * 10 + 10;

spinTime = 0;

spinTimeTotal = Math.random() * 3 + 4 * 1000;

rotateWheel();

}

function rotateWheel() {

spinTime += 30;

if(spinTime >= spinTimeTotal) {

stopRotateWheel();

return;

}

var spinAngle = spinAngleStart - easeOut(spinTime, 0, spinAngleStart, spinTimeTotal);

startAngle += (spinAngle * Math.PI / 180);

drawRouletteWheel();

spinTimeout = setTimeout('rotateWheel()', 30);

}

function stopRotateWheel() {

clearTimeout(spinTimeout);

var degrees = startAngle * 180 / Math.PI + 90;

var arcd = arc * 180 / Math.PI;

var index = Math.floor((360 - degrees % 360) / arcd);

ctx.save();

ctx.font = 'bold 30px sans-serif';

var text = restaraunts[index]

ctx.fillText(text, 250 - ctx.measureText(text).width / 2, 250 + 10);

ctx.restore();

}

function easeOut(t, b, c, d) {

var ts = (t/=d)*t;

var tc = ts*t;

return b+c*(tc + -3*ts + 3*t);

}

draw();

</script>[/mw_shl_code]

哥脫ㄋ,你随意
完全看不懂哈
展开Biu

完全看不懂哈!

[查看全文]
妖蓝君
引入全局变量
展开Biu

[mw_shl_code=php,true]//引入全局变量

session_start();

//设置时间

date_default_timezone_set('Asia/Shanghai');

// 定义ThinkPHP框架路徂(相对亍入口文件)

define('THINK_PATH', './ThinkPHP/');

define('NO_CACHE_RUNTIME',true);

define('APP_DEBUG',true);

//定义项目名称和路徂

define('APP_NAME', 'index');

define('APP_PATH', './index/');

// 加载框架入口文件

require(THINK_PATH."ThinkPHP.php");

//实例化一个网站应用实例[/mw_shl_code]

[查看全文]
Sekt
我去你也大二啊
展开Biu

妖蓝君 发表于 2013-10-9 16:42

我去你也大二啊,在哪上呢

大连理工的大水比╮( ̄▽ ̄")╭

[查看全文]
妖蓝君
同大二没做过项目
展开Biu

Sekt 发表于 2013-10-9 10:43

噗(/≧▽≦)/

同大二没做过项目

还是渣废╮( ̄▽ ̄")╭

我去你也大二啊,在哪上呢

[查看全文]
Sekt
我刚大二
展开Biu

妖蓝君 发表于 2013-10-9 01:00

我刚大二,还没做过项目

噗(/≧▽≦)/

同大二没做过项目

还是渣废╮( ̄▽ ̄")╭

[查看全文]
妖蓝君
快来勾搭一下
展开Biu

Sekt 发表于 2013-10-7 12:10

碉堡了!

快来勾搭一下!!!(¯﹃¯)口水

我刚大二,还没做过项目

[查看全文]
Sekt
业余艹网站
展开Biu

妖蓝君 发表于 2013-10-7 01:36

我是做PHP的,业余艹网站

碉堡了!@@9!!

快来勾搭一下!!!(¯﹃¯)口水

[查看全文]
妖蓝君
真心是体力活儿
展开Biu

Sekt 发表于 2013-10-6 21:23

恩 赶紧写web真心是体力活儿

记得我第一个特别水的页面坐在自习室调了整整两天

大大是写web的么 ...

我是做PHP的,业余艹网站

[查看全文]