小知闲闲是哪位大神神可以帮帮忙将jquery下列代码转换成js谢谢!!!!

私活儿神器
MASHUPCLOUD 聚云网
最具价值web全栈课程
只做前端开发培训的好学校,专注于多方向全栈工程师培养。前端名师邵山欢亲自授课,课程涵盖HTML5、CSS3、Node.js、Angular、React诸多课程,免费视频广受学生好评。
跟牛人学前端
跟牛人学前端
妙味大前端自学宝典
妙味课堂2016年JavaScript课程大纲震撼升级、全栈来袭!
前端最新干货
前端最新干货
Nodejs在线课程
智能社就是全栈开发培训,国内正规的JavaScript、HTML5、NodeJS培训机构,专注于让学员获得快乐的学习体验并找到高薪工作的培训
学前端,这套就够了!
传智播客博学谷前端与移动开发学院 - WEB前端培训,HTML5培训,移动开发培训
凡科提供自助建站系统、凡科互动、企业邮箱等多样化的网站建设服务,努力打造成为最全面的服务平台。电脑网站、手机网站和微信网站三合一,助力企业营销,促进企业发展。
您的位置: » 分类:
» 文章: HTML2JS – HTML代码转换为JavaScript字符串
您可能感兴趣的文章
近期最热文章
- 2,692 - 949 - 905 - 336js代码_js特效免费下载_JS特效代码网&&
当前位置: &
jquery+html5 Canvas实现微信大转盘抽奖特效代码
本js特效代码兼容:chrome 、firefox 、opera 、safari 、 等浏览器
var&turnplate={&&&&
restaraunts:[],
//大转盘奖品名称&&&&
colors:[],
//大转盘奖品区块对应背景颜色&&&&
outsideRadius:192,
//大转盘外圆的半径&&&&
textRadius:155,
//大转盘奖品位置距离圆心的距离&&&&
insideRadius:68,
//大转盘内圆的半径&&&&
startAngle:0,
//开始角度&&&&
bRotate:false
//false:停止;ture:旋转&&&&
$(document).ready(function(){&&&&
//动态添加大转盘的奖品与奖品区域背景颜色&&&&
turnplate.restaraunts&=&[&50M免费流量包&,&&10闪币&,&&谢谢参与&,&&5闪币&,&&10M免费流量包&,&&20M免费流量包&,&&20闪币&&,&&30M免费流量包&,&&100M免费流量包&,&&2闪币&];&&&&
turnplate.colors&=&[&#FFF4D6&,&&#FFFFFF&,&&#FFF4D6&,&&#FFFFFF&,&#FFF4D6&,&&#FFFFFF&,&&#FFF4D6&,&&#FFFFFF&,&#FFF4D6&,&&#FFFFFF&];&&&&
var&rotateTimeOut&=&function&(){&&&&
$('#wheelcanvas').rotate({&&&&
angle:0,&&&&
animateTo:2160,&&&&
duration:8000,&&&&
callback:function&(){&&&&
alert('网络超时,请检查您的网络设置!');&&&&
//旋转转盘&item:奖品位置;&txt:提示语;&&&&
var&rotateFn&=&function&(item,&txt){&&&&
var&angles&=&item&*&(360&/&turnplate.restaraunts.length)&-&(360&/&(turnplate.restaraunts.length*2));&&&&
if(angles&270){&&&&
angles&=&270&-&&&&&
}else{&&&&
angles&=&360&-&angles&+&270;&&&&
$('#wheelcanvas').stopRotate();&&&&
$('#wheelcanvas').rotate({&&&&
angle:0,&&&&
animateTo:angles+1800,&&&&
duration:8000,&&&&
callback:function&(){&&&&
alert(txt);&&&&
turnplate.bRotate&=&!turnplate.bR&&&&
$('.pointer').click(function&(){&&&&
if(turnplate.bRotate)&&&&
turnplate.bRotate&=&!turnplate.bR&&&&
//获取随机数(奖品个数范围内)&&&&
var&item&=&rnd(1,turnplate.restaraunts.length);&&&&
//奖品数量等于10,指针落在对应奖品区域的中心角度[252,&216,&180,&144,&108,&72,&36,&360,&324,&288]&&&&
rotateFn(item,&turnplate.restaraunts[item-1]);&&&&
/*&switch&(item)&{&&&&
case&1:&&&&
rotateFn(252,&turnplate.restaraunts[0]);&&&&
case&2:&&&&
rotateFn(216,&turnplate.restaraunts[1]);&&&&
case&3:&&&&
rotateFn(180,&turnplate.restaraunts[2]);&&&&
case&4:&&&&
rotateFn(144,&turnplate.restaraunts[3]);&&&&
case&5:&&&&
rotateFn(108,&turnplate.restaraunts[4]);&&&&
case&6:&&&&
rotateFn(72,&turnplate.restaraunts[5]);&&&&
case&7:&&&&
rotateFn(36,&turnplate.restaraunts[6]);&&&&
case&8:&&&&
rotateFn(360,&turnplate.restaraunts[7]);&&&&
case&9:&&&&
rotateFn(324,&turnplate.restaraunts[8]);&&&&
case&10:&&&&
rotateFn(288,&turnplate.restaraunts[9]);&&&&
console.log(item);&&&&
function&rnd(n,&m){&&&&
var&random&=&Math.floor(Math.random()*(m-n+1)+n);&&&&
return&&&&&
//页面所有元素加载完毕后执行drawRouletteWheel()方法对转盘进行渲染&&&&
window.onload=function(){&&&&
drawRouletteWheel();&&&&
function&drawRouletteWheel()&{&&&&
var&canvas&=&document.getElementById(&wheelcanvas&);&&&&
if&(canvas.getContext)&{&&&&
//根据奖品个数计算圆周角度&&&&
var&arc&=&Math.PI&/&(turnplate.restaraunts.length/2);&&&&
var&ctx&=&canvas.getContext(&2d&);&&&&
//在给定矩形内清空一个矩形&&&&
ctx.clearRect(0,0,422,422);&&&&
//strokeStyle&属性设置或返回用于笔触的颜色、渐变或模式&&&&
ctx.strokeStyle&=&&#FFBE04&;&&&&
//font&属性设置或返回画布上文本内容的当前字体属性&&&&
ctx.font&=&'16px&Microsoft&YaHei';&&&&
for(var&i&=&0;&i&&&turnplate.restaraunts.&i++)&{&&&&
var&angle&=&turnplate.startAngle&+&i&*&&&&&
ctx.fillStyle&=&turnplate.colors[i];&&&&
ctx.beginPath();&&&&
//arc(x,y,r,起始角,结束角,绘制方向)&方法创建弧/曲线(用于创建圆或部分圆)&&&&
ctx.arc(211,&211,&turnplate.outsideRadius,&angle,&angle&+&arc,&false);&&&&
ctx.arc(211,&211,&turnplate.insideRadius,&angle&+&arc,&angle,&true);&&&&
ctx.stroke();&&&&
ctx.fill();&&&&
//锁画布(为了保存之前的画布状态)&&&&
ctx.save();&&&&
//----绘制奖品开始----&&&&
ctx.fillStyle&=&&#E5302F&;&&&&
var&text&=&turnplate.restaraunts[i];&&&&
var&line_height&=&17;&&&&
//translate方法重新映射画布上的&(0,0)&位置&&&&
ctx.translate(211&+&Math.cos(angle&+&arc&/&2)&*&turnplate.textRadius,&211&+&Math.sin(angle&+&arc&/&2)&*&turnplate.textRadius);&&&&
//rotate方法旋转当前的绘图&&&&
ctx.rotate(angle&+&arc&/&2&+&Math.PI&/&2);&&&&
/**&下面代码根据奖品类型、奖品名称长度渲染不同效果,如字体、颜色、图片效果。(具体根据实际情况改变)&**/&&&&
if(text.indexOf(&M&)&0){//流量包&&&&
var&texts&=&text.split(&M&);&&&&
for(var&j&=&0;&j&texts.&j++){&&&&
ctx.font&=&j&==&0?'bold&20px&Microsoft&YaHei':'16px&Microsoft&YaHei';&&&&
if(j&==&0){&&&&
ctx.fillText(texts[j]+&M&,&-ctx.measureText(texts[j]+&M&).width&/&2,&j&*&line_height);&&&&
}else{&&&&
ctx.fillText(texts[j],&-ctx.measureText(texts[j]).width&/&2,&j&*&line_height);&&&&
}else&if(text.indexOf(&M&)&==&-1&&&&text.length&6){//奖品名称长度超过一定范围&&&&
text&=&text.substring(0,6)+&||&+text.substring(6);&&&&
var&texts&=&text.split(&||&);&&&&
for(var&j&=&0;&j&texts.&j++){&&&&
ctx.fillText(texts[j],&-ctx.measureText(texts[j]).width&/&2,&j&*&line_height);&&&&
}else{&&&&
//在画布上绘制填色的文本。文本的默认颜色是黑色&&&&
//measureText()方法返回包含一个对象,该对象包含以像素计的指定字体宽度&&&&
ctx.fillText(text,&-ctx.measureText(text).width&/&2,&0);&&&&
//添加对应图标&&&&
if(text.indexOf(&闪币&)&0){&&&&
var&img=&document.getElementById(&shan-img&);&&&&
img.onload=function(){&&&&
ctx.drawImage(img,-15,10);&&&&
ctx.drawImage(img,-15,10);&&&&
}else&if(text.indexOf(&谢谢参与&)&=0){&&&&
var&img=&document.getElementById(&sorry-img&);&&&&
img.onload=function(){&&&&
ctx.drawImage(img,-15,10);&&&&
ctx.drawImage(img,-15,10);&&&&
//把当前画布返回(调整)到上一个save()状态之前&&&&
ctx.restore();&&&&
//----绘制奖品结束----&&&&
大转盘抽奖
此评论不代表本站观点jQuery Tmpl真是个好东西 - 为程序员服务
jQuery Tmpl真是个好东西
Ajax 横道的今天,我们在页面交互上有了更高的要求,动态生成HTML毫无疑问是其中的一种。动态生成HTML的方式多种多样,其核心不外乎在前段(JS)或者 后端(C#/PHP…)将数据组装成我们想要的模版,最终通过一定的方法输出给用户(innerHTML、documentWrite等方式)。
1)拼接字符串的过程容易出错,常常忘了'/”&等匹配的符号。
2)修改前台模版的同时容易遗忘同步更改动态生成的模版。
3)拼接字符串不直观和美观,不利于查找错误,例如:数据中如果存在HTML内容,会导致种种麻烦。
4)不能满足较高的业务逻辑需求,处理判断较为麻烦,例如:当A情况生成X模版,B情况生成Y模版。
5)复用性低,较为相似的模版难以公用。
1)简单,直观的模版
2)易于维护(方便查找错误,有代码着色等)
3)模版的可复用性
4)处理一定的逻辑判断
基 于以上的缺点,jQuery Tmpl这个插件能够很好的满足了我们的需求。使用这种新型的模版技术仅仅需要引入jQuery Tmpl这个插件而已。该插件十分小巧(5.97KB),对于性能的影响并不大。而且据闻这个插件是Microsoft开发的,对于ASP.NET MVC的友好度是大大的。
通过图片我们能够很直观的看到Tmpl的工作原理,我们仅仅需要提供数据和模版。数据我们能够通过后台的Json方法直接传到前台,而模版则是接下来要讲的东西了。
1)模版代码写在哪里?
&script type="text/x-jquery-tmpl" id="testTemplate"&
/*模版代码*/
我 们可以看到其实模版代码的容器就是我们的&script&标签,不过type类型是'text/x-jquery-tmpl'而不是我们平常 用的'text/javascript'而已,type类型难记?没关系,在Visual Studio2012中已经有了这个类型的智能提示了(没有验证过2010)。
2)模版的语法
我把jQuery Tmpl的语法分为三大类:
1.显示类:
{{html }} / {{= }} / ${ },这三个标签都能够将数据输出到模版中,但是{{html}}不会对数据进行编码,用于输出数据中的HTML代码段的,而{{=}}和${}则会对数据进行编码,防止数据对于模版结构的破坏。
模版代码:
数据及JS代码:
页面效果:
当我们把data里面的name的值换成一段HTML'&a href=""&点击有好玩的东西哟!&/a&'就可以看到{{html }} / {{= }} / ${ }的区别了。
页面效果:
由此我们可以见得使用{{html}}来输出模版里面的内容是带有一定的风险的(),所以在非确定数据的安全性下最好还是使用${}来输出内容既简单又简洁。当然直接输出内容远远不能满足我们的要求,如果能够调用函数来处理一下输出结果就更棒啦!
模版代码:
函数代码:
页面效果:
2.条件判断及循环:
{{if}} / {{else}} / {{/if}} / {{each}} 请注意是没有for / while / switch的,相对于来说jQuery Tmpl只支持较为简单的逻辑判断,当然如果你感觉这些满足不了你的需求的话,可以自己写函数然后再调用。给一个简单的例子来说明一下:
模版代码:
数据及JS代码:
页面输出:
在 代码中我们可以注意到{{each}}是有两种写法的,如果不在each后面加(i, v)时在{{each}}代码块中使用$value特指当前项的值,而你需要项的序号则可以使用{{each(i, v) }}其中i代表当前项的次序、v代表当前项的值。如果你的条件判断比较复杂则可以使用函数来判断(完全和JS一样)
例如:效果是和上面的完全一样。
当分支模版过长(写在一个模版中较为混乱)或者使用已经写好的通用模版,{{temp}}的作用就是调用指定ID模版来显示数据。
模版代码:
这个模版的最终效果和之前的完全一样,不过分别区分独立开来。提高了代码的可阅读性和复用性。在这里只是一次性调用其他模版,如果想循环调用呢?例如在例子当中输出兴趣爱好那样。让我们来看看代码应该如何写。
模版代码:
其中在eachTemplate模版中用$data来特指传进来的遍历项的值。怎么样感觉还是相当方便的吧^_^。
{{wrap}}使用于指定模版来包含当前模版,类似于指定母版页当前模版则属于子页面。
模版代码:
页面效果:
我们可以看出'wrapTemplate'的功效就是作为公共部分,在模版中用{{html $item.html}}来输出子页面的HTML内容。
其中$item.html还具备一定的筛选功能。
模版代码:
页面效果:
可以看到在这里只输出了第二个P。$item.html方法还有一个选项$item.html( filter, textOnly ),textOnly为bool值如果为true则只会输出元素的文字而忽略它原有的元素标签。
模版代码:
页面效果:
可以看到strong元素没有了加粗效果只有文字。
其 实在使用过程当中并不会经常运用到模版的一些高级功能,本文章也仅仅是介绍了一些关于jQuery Tmpl的基础性的东西。使用这个插件能够给我们带来的好处实在不少,之前我在动态输出HTML代码段的时候(在JS文件中拼接字符串)经常修改了前台页 面而忘记修改JS中的拼接字符串,导致经常出些莫名其妙的错误,而且在多个分支判断下拼接字符串的劣处体现的更加明显,现在的话我会把Tmpl模版的代码 就放在前台页面要生成代码的地方,这样就大大减少了错误的发生啦!
网站前端,WEB前端开发,UI设计,HTML5,UE,CSS,html,W3cui以Web前端开发研究门户网站,提供Web前端开发经验分享,被誉为Web前端开发工程师最安心的家。
原文地址:, 感谢原作者分享。
您可能感兴趣的代码

我要回帖

更多关于 哪位大神有岛国的网站 的文章

 

随机推荐