久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

HTML5+CSS3實例 :canvas 模擬實現電子彩票刮刮樂代碼

今天給大家帶來一個刮刮樂的小例子~基于HTML5 canvas的,非常具有使用價值,有興趣的可以了解一下。

今天給大家帶來一個刮刮樂的小例子~基于HTML5 canvas的,有興趣的可以改成Android版本的,或者其他的~

效果圖:

貼一張我中500w的照片,咋辦啊,怎么花呢~

好了,下面開始原理:

1、刮獎區域兩個Canvas,一個是front , 一個back ,front遮蓋住下面的canvas。

2、canvas默認填充了一個矩形,將下面canvas效果圖遮蓋,然后監聽mouse事件,根據mousemove的x,y坐標,進行擦出front canvas上的矩形區域,然后顯示出下面的canvas的效果圖。

很簡單把~嘿嘿~

1、HTML文件內容:

<!DOCTYPE html>  
<html>  
<head>  
    <title></title>  
    <meta charset="utf-8">  
  
    <script type="text/javascript" src="../../jquery-1.8.3.js"></script>  
    <script type="text/javascript" src="canvas2d.js"></script>  
  
    <script type="text/javascript" src="GuaGuaLe2.js"></script>  
  
    <script type="text/javascript">  
  
        $(function ()  
        {  
            var guaguale = new GuaGuaLe("front", "back");  
            guaguale.init({msg: "¥5000000.00"});  
        });  
    </script>  
    <style type="text/css">  
  
  
        body  
        {  
            background: url("s_bd.jpg") repeat 0 0;  
        }  
  
        .container  
        {  
            position: relative;  
            width: 400px;  
            height: 160px;  
            margin: 100px auto 0;  
            background: url(s_title.png) no-repeat 0 0;  
            background-size: 100% 100%;  
        }  
  
        #front, #back  
        {  
            position: absolute;  
            width: 200px;  
            left: 50%;  
            top: 100%;  
            margin-left: -130px;  
            height: 80px;  
            border-radius: 5px;  
            border: 1px solid #444;  
        }  
  
    </style>  
  
</head>  
<body>  
  
<div class="container">  
    <canvas id="back" width="200" height="80"></canvas>  
    <canvas id="front" width="200" height="80"></canvas>  
</div>  
  
  
</body>  
</html>  

2、首先我利用了一個以前寫的canvas輔助類,留下來今天要用的一些方法:

/** 
 * Created with JetBrains WebStorm. 
 * User: zhy 
 * Date: 13-12-17 
 * Time: 下午9:42 
 * To change this template use File | Settings | File Templates. 
 */  
  
function Canvas2D($canvas)  
{  
    var context = $canvas[0].getContext("2d"),  
        width = $canvas[0].width,  
        height = $canvas[0].height,  
        pageOffset = $canvas.offset();  
  
  
    context.font = "24px Verdana, Geneva, sans-serif";  
    context.textBaseline = "top";  
  
  
    /** 
     * 繪制矩形 
     * @param start 
     * @param end 
     * @param isFill 
     */  
    this.drawRect = function (start, end, isFill)  
    {  
        var w = end.x - start.x , h = end.y - start.y;  
        if (isFill)  
        {  
            context.fillRect(start.x, start.y, w, h);  
        }  
        else  
        {  
            context.strokeRect(start.x, start.y, w, h);  
        }  
    };  
  
    /** 
     * 根據書寫的文本,得到該文本在canvas上書寫的中心位置的左上角坐標 
     * @param text 
     * @returns {{x: number, y: number}} 
     */  
    this.caculateTextCenterPos = function (text)  
    {  
        var metrics = context.measureText(text);  
        console.log(metrics);  
//        context.font = fontSize + "px Verdana, Geneva, sans-serif";  
        var textWidth = metrics.width;  
        var textHeight = parseInt(context.font);  
  
        return {  
            x: width / 2 - textWidth / 2,  
            y: height / 2 - textHeight / 2  
        };  
    }  
    this.width = function ()  
    {  
        return width;  
    }  
    this.height = function ()  
    {  
        return height;  
    }  
    this.resetOffset = function ()  
    {  
        pageOffset = $canvas.offset();  
    }  
    /** 
     * 當屏幕大小發生變化,重新計算offset 
     */  
    $(window).resize(function ()  
    {  
        pageOffset = $canvas.offset();  
    });  
  
    /** 
     * 將頁面上的左邊轉化為canvas中的坐標 
     * @param pageX 
     * @param pageY 
     * @returns {{x: number, y: number}} 
     */  
    this.getCanvasPoint = function (pageX, pageY)  
    {  
        return{  
            x: pageX - pageOffset.left,  
            y: pageY - pageOffset.top  
        }  
    }  
    /** 
     * 清除區域,此用戶鼠標擦出刮獎涂層 
     * @param start 
     * @returns {*} 
     */  
    this.clearRect = function (start)  
    {  
        context.clearRect(start.x, start.y, 10, 10);  
        return this;  
    };  
  
    /** 
     *將文本繪制到canvas的中間 
     * @param text 
     * @param fill 
     */  
    this.drawTextInCenter = function (text, fill)  
    {  
        var point = this.caculateTextCenterPos(text);  
        if (fill)  
        {  
            context.fillText(text, point.x, point.y);  
        }  
        else  
        {  
            context.strokeText(text, point.x, point.y);  
        }  
    };  
    /** 
     * 設置畫筆寬度 
     * @param newWidth 
     * @returns {*} 
     */  
    this.penWidth = function (newWidth)  
    {  
        if (arguments.length)  
        {  
            context.lineWidth = newWidth;  
            return this;  
        }  
        return context.lineWidth;  
    };  
  
    /** 
     * 設置畫筆顏色 
     * @param newColor 
     * @returns {*} 
     */  
    this.penColor = function (newColor)  
    {  
        if (arguments.length)  
        {  
            context.strokeStyle = newColor;  
            context.fillStyle = newColor;  
            return this;  
        }  
  
        return context.strokeStyle;  
    };  
  
    /** 
     * 設置字體大小 
     * @param fontSize 
     * @returns {*} 
     */  
    this.fontSize = function (fontSize)  
    {  
        if (arguments.length)  
        {  
            context.font = fontSize + "px Verdana, Geneva, sans-serif";  
  
            return this;  
        }  
  
        return context.fontSize;  
    }  
  
  
}  

這個類也就對Canvas對象進行了簡單的封裝,設置參數,繪制圖形什么的,比較簡單,大家可以完善下這個類~

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

本文給大家分享一個demo基于HTML5+CSS3 實現靈動的動畫 TAB 切換效果,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
最近在做大作業的時候需要做一個彈幕播放器,今天小編給大家分享基于HTML使用canvas實現彈幕功能,需要的的朋友參考下吧
移動前端開發中添加一些webkit專屬的HTML5頭部標簽,幫助瀏覽器更好解析HTML代碼,更好地將移動web前端頁面表現出來。本文整理一些常用的meta標簽,需要的朋友可以參考下
本篇文章主要介紹了html 基于 canvas 實現的一個截圖小demo,具有一定的參考價值,有興趣的可以了解一下
對于css的二維世界,相信大家都不陌生。在二維的世界里,我們可以對元素設置寬高、位置、旋轉、背景等等。在css三維世界里,擴展出了一個z軸,這個z軸垂直于屏幕并指向外面。下面
本篇文章主要介紹了3D立方體旋轉動畫實例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
主站蜘蛛池模板: 午夜日韩精品 | 91精品国产91久久综合桃花 | 欧美在线a | 国产久视频 | 91.xxx.高清在线 | 中文字幕在线中文 | 欧美一级高清片 | 免费国产黄网站在线观看视频 | 免费精品视频在线观看 | 国产精品国产三级国产aⅴ原创 | 日日干天天干 | 亚洲欧美日本国产 | 欧美区日韩区 | 日韩在线精品强乱中文字幕 | 黄色在线免费观看 | 天堂网av在线 | 亚洲国产成人精品女人久久久 | 天天曰夜夜 | 亚洲a视频 | 精品免费国产一区二区三区四区介绍 | 亚洲精品久久 | 国产精品久久久久久久久久妞妞 | 久久精品日产第一区二区三区 | 亚洲精品一二三 | 亚洲国产欧美国产综合一区 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 国产欧美在线 | 久久久青草 | h视频免费在线观看 | 日韩在线观看视频一区 | 国产精品免费一区二区三区四区 | 国产成人精品免高潮在线观看 | 日本视频免费 | 日韩毛片免费视频 | 一区二区三区久久 | av免费网站在线观看 | 日韩欧美理论片 | 一级国产精品一级国产精品片 | 欧美日韩专区 | 一区视频在线免费观看 | 日本午夜免费福利视频 |